复习题
填空题
1. 在信息处理和计算机领域内,一般认为软件是 _程序____、_文档____ 和_数据____ 。
2. 数据流图的基本组成部分有 _数据的源点与终点____、 数据流_____、 加工_____、 数据文件_____。
3. 数据流图和数据字典共同构成了系统的 _逻辑____模型,是需求规格说明书的主要组成部分。
4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
划分模块时尽量做到__高内聚、低耦合______,保持模块的独立性,尽量使用公共模块。 类的实例化是_对象_______。
人们常用硬件可靠性的定量度量方法来度量软件的可靠性和可用性,常用的度量软件可 靠性的两个指标是_成功地运行的概率_______和_平均故障时间_______。
将待开发的软件细化,分别估算每一个子任务所需要的开发工作量,然后将它们加起来, 将得到软件的总开发量。这种成本估算方法称为_自底向上_______。
如果一个模块被 n 个模块调用,其中直接的上级模块的个数是 m 个( m<=n )那么该模块的扇入数是 ____N_______ 个。
结构化设计以 __数据流图_________ 为基础,按一定的步骤映射成软件结构。
软件的风险分析可包括风险识别、风险预测 和风险驾驭(或风险管理)等3项活动。 软件著作权登记的3种主要类型:(1)著作权登记;(2)著作权延续登记;(3)权利转移备案登记。 软件工程管理的主要内容有:项目经费管理,软件质量管理,项目进度管理和人员管理。 面向对象分析的目的是对客观世界的系统进行 ___建模_______________ 。
软件维护工作的生产性活动包括分析评价、修改设计和 ____编写程序代码_______ 等。
为了使应用软件适应计算机环境的变化而 ___修改软件_______________ 的过程称为适应性维护。 一个进行学生成绩统计的模块其功能是先对学生的成绩进行累加,然后求平均值,则该模块的内聚性是 __________顺序内聚________ 。
19. 投资回收期就是使累计的经济效益等于 __最初的投资费用______________ 所需的时间。 20. 软件生存周期是指一个软件从提出开发要求开始直到 __软件废弃____为止的整个时期。
21. 曾被誉为“程序设计方法的革命”的 结构化 程序设计,使程序设计从主要依赖于程序员个人的自
由活动变成为有章可循的一门科学。
22. 从结构化程序设计到 面向对象程序设计 ,是程序设计方法的又一次飞跃。
23. 在单元测试时,需要为被测模块设计___测试用例_______。
一、判断题(每题2分,共30分)
1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。(对)
2.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。(错) 3.JAVA语言编译器是一个CASE工具。(对)。
4.软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。(错)
5.软件模块之间的耦合性越弱越好。(对) 6.数据库设计说明书是一个软件配置项(对)
7.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模板。(错)
8.过程描述语言可以用于描述软件的系统结构。(错)
9.如果通过软件测试没有发现错误,则说明软件是正确的。(错) 10.快速原型模型可以有效地适应用户需求的动态变化。(对)
11.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。(对) 12.集成测试主要由用户来完成。(错)
13.确认测试计划应该在可行性研究阶段制定(错)
14.白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。(错)
15.软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(对) 16.在可行性研究中最难决断和最关键的问题是经济可行性。( ╳ ) 17.耦合是指一个模块内各个元素彼此结合的紧密程度。( ╳ )
18. 一笔交易、一个动作、甚至操作人员按一个按钮都可以看做是一次事物。( √ ) 19.概要设计阶段完成的主要文档是概要设计说明书。( √ )
20.过大的模块可能是由于分解不充分造成的,即使降低模块独立性也必须继续分解。( ╳ ) 21.程序设计语言中应绝对禁止使用GOTO语句。( ╳ ) 22.类是关于对象性质的描述,由方法和数据组成。( √ )
23.随着软件技术的发展,人们逐渐认识到编码不仅要强调效率还要强调清晰。( √ ) 25.为保证程序的安全,必须做到程序中没有任何错误存在,即容错。( ╳ )
26.如果把软件开发所需的资源画成一个金字塔,人是最基本的资源。( √ )
名词解释
1. 数据词典——是描述数据信息的集合,它对数据流图中的各个元素按规定格式进行详细的描述和确切
的解释,是数据流图的补充工具。
2. 数据流图——他以图形的方式反映系统的数据流程
3. 白盒测试——按照程序内部的结构测试程序,检验程序中的每条路径是否都能按预定要求正确工作。
有两种测试法既逻辑覆盖测试法和路径测试法
4. 黑盒测试——按照程序的功能测试程序,检验与程序功能有关的输入、输出与程序执行是否正确。有
四种方法既等价分类法、边界值分析法、错误猜测法和因果图法
5. 完善性维护——为了适应用户业务和机构的发展变化而对软件的功能、性能进行修改、扩充的过程称
为完善性维护。因为各种用户的业务和机构在相当长的时期内不可能是一成不变的,所以功能、性能的增加是不可避免的,而且这种维护活动在整个维护工作中所占的比重很大 6. 软件可靠性——指在给定的时间内,程序按照规定的条件成功地运行的概率
7. 软件配置——是一个软件在生存周期内,他的各种形式、各种版本的文档与程序的总称
8. 软件再工程——运用逆向工程、重构等技术,在充分理解原有软件的基础上,进行分解、综合、并重
新构建软件,用于提高软件的可理解性、可维护性可复用性或演化性。
9. α测试——是在一个受控的环境下,由用户在开发者的“指导”下进行的的测试,由开发者负责记录
错误和使用中出现的问题。
10. β测试——是由软件的最终用户(多个)在一个或多个用户场所来进行。由用户负责记下遇到的所有
问题,包括主观认定的和真实的问题,定期向开发者报告,开发者在综合用户的报告之后进行修改,最后将软件产品交付给全体用户使用。
11. 聚集关系——表示类或对象之间的整体与部分的关系 12. 泛化关系——表示类或对象之间的一般与特殊的关系
13. 内聚——一个模块内部各个元素彼此结合的紧密程度的度量。 14. 耦合——一一个软件结构内不同模块之间互连程度的度量。
简答题
1.软件工程的七条基本原理是什么? 答:软件工程的七条基本原理是:
(1) 用分阶段的是的生存周期计划严格管理; (2) 坚持进行阶段评审; (3) 严格实施的产品控制; (4) 采用现代程序技术; (5) 结果应能清楚地审查;
(6) 开发小组的成员应该少而精;
(7) 承认不断改进软件工程的必要性。
2.良好的编码风格应具备哪些条件? 答:应具备以下条件:
(1)使用标准的控制结构;
(2)有限制地使用GOTO语句;
(3)源程序的文档化 (应具备以下内容)
①有意义的变量名称 —— “匈牙利命名规则 ”。 ②适当的注释 ——“注释规范”。 ③标准的书写格式:
——用分层缩进的写法显示嵌套结构的层次(锯齿形风格); ——在注释段的周围加上边框;
——在注释段与程序段、以及不同程序段之间插入空行; ——每行只写一条语句;
——书写表达式时,适当使用空格或圆括号等作隔离符。
(4)满足运行工程学的输入输出风格。
3.简述文档在软件工程中的作用。 答:
(1) 提高软件开发过程的能见度 (2) 提高开发效率
(3) 作为开发人员阶段工作成果和结束标志 (4) 记录开发过程的有关信息便于使用与维护; (5) 提供软件运行、维护和培训有关资料; (6) 便于用户了解软件功能、性能。
4.可行性研究包括哪几方面的内容? 答:
(1)经济可行性:是否有经济效益,多长时间可以收回成本;
(2)技术可行性:现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满足; (3)运行可行性:系统操作在用户内部行得通吗?
(4)法律可行性:新系统开发是否会侵犯他人、集体或国家利益,是否违反国家法律。
5.结构化的需求分析描述工具有哪些?
答:有数据流图(DFD)、数据字典(DD)、判定表、判定树、结构化语言(PDL)、层次方框图、Warnier图、IPO图、控制流图(CFD)、控制说明(CSPEC)、状态转换图(STD)和实体—关系图(E—R)等。
6.一般面向对象分析建模的工具(图形)有哪些?
答:用例图、类/对象图、对象关系图、实体—关系图(E—R)、事件轨迹图(时序图)和状态转换图(STD)等
7.UML统一建模语言有哪几种图形?
用例图、类图、对象图、构件(组件)图、部署(配置)图、状态图、活动图、顺序(时序)图、合作(协作)图等九种图。
8.在面向对象分析时类和对象的静态关系主要有哪几种?
答:类和对象的静态关系主要有关联、聚集、泛化、依赖等四种关系。
9. 什么是模块化?模块设计的准则?
模块化是按规定的原则将一个大型软件划分为一个个较小的、相对独立但又相关的模块。 模块设计的准则:
(1) 改进软件结构, 提高模块独立性:在对初步模块进行合并、分解和移动的分析、精化过程中力求提高模块的内聚,降低藕合。
(2) 模块大小要适中:大约50行语句的代码,过大的模块应分解以提高理解性和可维护性;过小的模块,合并到上级模块中。
(3) 软件结构图的深度、宽度、扇入和扇出要适当。一般模块的调用个数不要超过5个。 (4) 尽量降低模块接口的复杂程度; (5) 设计单入口、单出口的模块。 (6) 模块的作用域应在控制域之内。
10.什么是模块独立性?用什么度量?
答:模块独立性概括了把软件划分为模块时要遵守的准则,也是判断模块构造是不是合理的标准。独立性可以从两个方面来度量:即模块本身的内聚和模块之间的耦合。
11. 变换型数据流由哪几部分组成?
变换型结构由三部分组成:传入路径、变换(加工)中心和传出路径。 12. 变换分析设计的步骤?
(1) 区分传入、传出和变换中心三部分,划分DFD图的分界线; (2) 完成第一级分解:建立初始SC图的框架; (3) 完成第二级分解:分解SC图的各个分支; (4) 对初始结构图按照设计准则进行精化与改进。