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