《软件工程》练习题一答案
一、单选题 1.C 6.C 11.D 16.A 21.A 26.C 31.A 36.A 41.B 46.C 51.A
2.A 7.C 12.A 17.D 22.C 27.B 32.D 37.B 42.D 47.B
3.C 8.C 13.B 18.A 23.C 28.C 33.C 38.C 43.B 48.D
4.D 9.D 14.A 19.D 24.A 29.B 34.B 39.C 44.A 49.D
5.B 10.D 15.A 20.B 25.C 30.C 35.C 40.D 45.D 50.B
二、填空题
1.软件配置管理 2.容错功能 3.11 4.模块 5.F/(1+(n*i)) 6.管理 技术 7.软件工具 软件开发环境 8.数据字典DD 9.可测试性 10.父图 子图 11.数据结构 12.防错程序设计
13.空间 14.可行性研究 15.需求 16.需求建模技术 17.层数
18.经济 19.概率 20.过程 21.IPO 22.资源 23.数学 24.重复 25.模块数 26.系统约束 27.从属 28.软件工程 29.复杂 30.外部 31.风险估算 32.文档 33.数据源 34.动态多变量 35.数据流图
36.三种基本控制结构 37.事务分析设计 38.功能 39.用户组织的管理模式及规范 40.符号表示习惯 41.不可再分解的 42..软件需求明确
43.累计经济效益(折合成现在值) 44.硬件/操作系统 45.差别估算法 三、判断题
1.错2.对3.对4.错5.错6.错7.对 四、名词解释
1.软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。
2.数据字典是用来定义数据流图中的各个成分的具体含义的。它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。
3.内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
4.JSP方法是面向数据结构的设计方法,其定义了一组以数据结构为指导的映射过程,它根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构。 5.软件生存周期包括一个软件从提出开发要求开始直到该软件报废为止的整个时期。包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等。 6.概要设计是在需求分析的基础上通过抽象和分解将系统分解成模块,确定系统功能实现。 7.也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。
8.信息隐蔽是指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。
9.一个模块的作用范围是指受该模块内一个判定影响的所有模块的集合。 10.结构化分析方法(SA)是需求分析中使用最多的方法之一,适用于数据处理类型软件的需求分析。基本思想是采用自顶向下,逐步分解的方法分析整个系统,有效地控制系统开发的复杂性。
11.CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发。CASE把软件开发技术、软件工具和软件开发方法集成到一个统一而一致的框架中,并且吸收了CAD(计算机辅助设计)、软件工程、操作系统、数据库、网络和许多其他计算机领域的原理和技术。因而,CASE领域是一个应用、继承和综合的领域。 12.结构化分析方法是需求分析中使用最多的方法之一,适用于数据处理类型软件的需求分析。基本思想是采用自顶向下、逐步分解的方法分析整个系统,有效地控制系统开发的复杂性。 五、简答题
1.模块的内聚性包括:
(1)偶然内聚(2)逻辑内聚(3)时间内聚(4)通信内聚(5)顺序内聚(6)功能内聚 2.
(1)软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。
(2)软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。
(3)在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。 (4)软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。 (5)软件的开发至今尚未完全摆脱手工的开发方式。 (6)软件的开发费用越来越高,成本相当昂贵。 3.
耦合是对一个软件结构内各个模块之间互连程度的度量。 内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。
4.计算机软件包括与计算机系统操作有关的程序、规程、规则及任何与之有关的文档和数据。
5.需求分析的任务是确定待开发的软件系统“做什么”。具体任务包括确定软件系统的功能需求、性能需求和运行环境约束,编制软件需求规格说明书、软件系统的验收测试准则和初步的用户手册。
6.项目的成本,作为立项和签合同的依据之一,并在软件开发过程中按计划管理经费的使用估算软件。
7.在软件开发的早期,快速开发一个目标软件系统的原型,让用户对其进行评价并提出修改意见,然后开发人员根据用户的意见对原型进行改进。
8.软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。 9.
(1)制定软件质量保证计划。
(2)按照质量评价体系控制软件质量要素。 (3)对阶段性的软件产品进行评审。
(4)对最终软件产品进行确认,确保软件质量。
10.支持需求不明确、特别是大型软件系统的开发,并支持面向规格说明、面向过程、面向
对象等多种软件开发方法,是一种具有广阔前景的模型。
11.软件从定义开始,经过开发、使用和维护,直到最终退役的全过程称为软件生存周期。 12.
(1)风险标识(2)风险估算(3)风险评价(4)风险驾驭和监控。 13.
(1)一致性(2)可理解性(3)可修改性(4)可追踪性 14.
(1)引言。(2)可行性研究前提。(3)对现有系统的分析。(4)所建议系统的技术可行性分析。(5)所建议系统的经济可行性分析。(6)社会因素可行性分析。(7)其他可供选择方案。(8)结论意见。 15.
(1)经费预算经常突破,完成时间一再拖延。(2)开发的软件不能满足用户要求。 (3)开发的软件可维护性差。(4)开发的软件可靠性差。
16.它适合于那些不能预先确切定义需求的软件系统的开发,更适合于那些项目组成员(包括分析员、设计员、程序员和用户)不能很好交流或通信有困难的情况。
17.在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。 18.(1)自顶向下的估算方法(2)自底向上的估算方法(3)差别估算法(4)根据经验估算公式 19.
(1)软件的规模越来越大,结构越来越复杂。(2)软件开发管理困难而复杂。 (3)软件开发费用不断增加。(4)软件开发技术落后。(5)生产方式落后。 (6)开发工具落后,生产率提高缓慢。
20.进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。 21.CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发。CASE把软件开发技术、软件工具和软件开发方法集成到一个统一而一致的框架中,并且吸收了CAD、软件工程、操作系统、数据库、网络和许多其他计算机领域的原理和技术。 22.
(1)规模:总共的指令数或源程序行数。
(2)难度:通常由程序中出现的操作数的数目所决定的量来表示。 (3)结构:通常用与程序结构有关的度量来表示。 (4)智能度:即算法的难易程度。 23.
(1)三种基本结构为:
顺序结构
选择结构
重复结构
(2)顺序结构的图解逻辑 选择结构的图解逻辑 重复结构的图解逻辑
A
seq A select(条件1) A iter while(条件)
A
B B B C A
or (条件2) A
end
D C end A
end
24.软件工程是一门工程性的学科,其目标主要是成功地建造一个大型软件系统。包括:付
出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。 面临的主要问题是:软件费用、软件可靠性、软件维护、软件生产率、软件重用。 25.
(1)采用自顶向下,逐步求精的程序设计方法。
(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环 (3)采用主程序员组的组织形式。 六、理论应用题 1.
2.
3.
(1)3个过程是:软件定义过程、软件开发过程、软件使用与维护过程。
(2)9个阶段有:可行性研究、需求分析、概要设计、详细设计、实现、组装测试、验收测试、使用与维护、退役。 4.
(1)软件开发的生产率P为:
P = L / E = 12.1×103LOC / 24PM = 504 LOC/PM (2)开发每行代码的平均成本C为:
C = S / L = 美元 / 12100LOC=13.9美元/LOC (3)代码出错率EQR为:
EQR = N / L = 29个/12.1KLOC=2.4个/KLOC (4)软件的文档率D为:
D = Pd / L = 365页 / 12.1KLOC = 30页/ KLOC 5.
(1)描述本系统功能的数据流图如下所示:
1 存款单 记录存款信息 2 打印存款单 存款信息 存款存单 储户 存款信息 储户 D1 存款信息 存款信息 3 核对密码 存款信息 4 计算利息 利息值 4 打印利息清单 取款单 (2)描绘计算机储蓄系统中数据对象的实体-联系图。
《软件工程》练习题答案



