软件工程复习题及答案(完整) 联系客服

发布时间 : 星期三 文章软件工程复习题及答案(完整)更新完毕开始阅读606bf1aaccbff121dc36835e

\一个程序读入3个整数,它们分别代表一个三角形的3个边长。该程序判断所输入的整数是否构成一个三角形,以及该三角形是一般的、等腰的或等边的,并将结果打印出来。\

要求:设三角形的3条边分别为A、B、C,并且 (1) 列出等价类表,格式如下: 输入条件 有效等价类 (1)A>0且B>0且C>0且 是否构成一个三角形 A+B>C且B+C>A且 A+C>B。 是否等腰三角形 是否等边三角形

(2) 设计测试用例,格式如下:

用例n:输入【A,B,C】覆盖等价类……(列出等价类序号),输出结果为……。

用例1:输入【3,4,5】覆盖等价类(1,2,3,4,5,6),输出结果为构成一般三角形。 用例2:三者取一输入【0,1,2】覆盖等价类(2),输出结果为不构成三角形。 输入【1,0,2】覆盖等价类(2),输出结果为不构成三角形。 输入【1,2,0】覆盖等价类(2),输出结果为不构成三角形。 用例3:三者取一输入【1,2,3】覆盖等价类(3),输出结果为不构成三角形。 输入【1,3,2】覆盖等价类(3),输出结果为不构成三角形。 输入【3,1,2】覆盖等价类(3),输出结果为不构成三角形。 用例4:三者取一输入【3,3,4】覆盖等价类(1)(4),输出结果为等腰三角形。 输入【3,4,4】覆盖等价类(1)(4),输出结果为等腰三角形。 输入【3,4,3】覆盖等价类(1)(4),输出结果为等腰三角形。 用例5:输入【3,4,5】覆盖等价类(1)(5),输出结果为不是等腰三角形。 用例6:输入【3,3,3】覆盖等价类(1)(6),输出结果为等边三角形。

用例7:三者取一输入【3,4,4】覆盖等价类(1)(4)(7),输出结果为不是等边三角形。 输入【3,4,3】覆盖等价类(1)(4)(7),输出结果为不是等边三角形。 输入【3,3,4】覆盖等价类(1)(4)(7),输出结果为不是等边三角形。

6、下图显示了配置管理中的存取和控制,请选择合适的答案,将其对应的序号填入( )中。A ① B ⑥ C ⑨ D ⑧

(4)A=B或A=C或B=C (6)A=B且A=C且B=C 无效等价类 (2)A≤0或B≤0或C≤0 (3)A+B≤C或A+C≤B 或B+C≤A (5)A≠B且A≠C且B≠C (7)A≠B或A≠C或B≠C

供选择的答案:A: ① 软件工程人员 ② 配置人员 ③ 质量保证人员B: ④ 异步控制 ⑤ 同步控制 ⑥ 存取控制 C~D: ⑦ 管理 ⑧ 登入 ⑨ 检出 ⑩ 填写变更请求

7、UML关系包括关联、聚合、泛化、实现、依赖等5种类型,请将合适的关系填写在下列描述的( )中。 ① 用例及其协作之间是(实现)关系。

② 在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是(关联)关系。 ③ 类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是(依赖)关系。

④ 在MFC类库中,Window类和DialogBox类之间是(泛化)关系。 ⑤ 森林和树木之间是(聚合)关系。

8、下图显示了某个学校课程管理系统的部分类图,其中一个学生(student)可以知道所有注册课程的教师(instructor),一个教师也可以知道

所有注册课程的学生。

现在提出一个新的需求:\一个教师也可以是某些课程的学生\,那么下面设计A~C中哪一个是最好的?为什么?

设计C最好。 学生和教员均可以从Candidate类继承而来; 抽象出Role类,使Candidate类与Role类之间形成多对多的关联关系,实现了\一个人既是教师又是某门课的学生\这个需求。 设计A:

设计B:

设计C:

一、 选择

1、在软件生存周期的瀑布模型中一般包括计划、(C)、设计、编码、测试、维护等阶段。

A 可行性分析B 需求采集C 需求分析D 问题定义

2、ISO9000是由ISO/TC176制定的关于(B)和质量保证的国际标准。

A 质量控制B 质量管理C 质量策划D 质量改进 3. 软件工程的基本要素包括方法、工具和(A)。 A过程B 软件系统C 硬件环境D 人员

4. 软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。 A 固有的B 人为的C 可消除的D 不可降低的 5. 软件需求分析阶段的测试手段一般采用(C)。 A总结B 阶段性报告C 需求分析评审D 不测试

6. (C)是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。

A多态性 B继承 C 封装D 消息

7. 协作图反映收发消息的对象的结构组织,它与(D)是同构的。 A用例图B类图C 活动图D 时序图

8. 软件测试是为了(B)而执行程序的过程。 A纠正错误B发现错误C 避免错误D 证明正确 9. 面向对象分析是对系统进行(A)的一种方法。 A需求建模B 程序设计C 设计评审D 测试验收

10. 在结构化分析方法中,(C)表达系统内部数据运动的图形化技术。 A 数据字典B 实体关系图C 数据流图D 状态转换图

11、在项目计划发生延迟的情况下,增加更多的程序员一定会加快进度。 错 12、软件错误可能出现在开发过程的早期,越早修改越好。对 13、不完善的系统定义往往是导致软件项目失败的主要原因。对 14、一个成功的项目唯一提交的就是运行程序。错 15、只有质量差的软件产品才需要维护。错

16、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。错 17、一个好的测试用例在于能发现至今未发现的错误。对

18、面向对象的分析是面向计算机系统建立软件系统的对象模型。错 19、软件工作的考虑范围主要是程序设计和实现。 错

20、等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。 对 二、 问答题

1、(共10分)下图显示了McCall质量模型,请选择正确的答案,并将其对应的序号填入图中的括号( 3596)。

供选择的答案: ① 高效性 ② 通用性 ③ 可测试性 ④ 专用性 ⑤ 可复用性 ⑥ 可使用性 ⑦ 应用软件 ⑧ 支撑软件 ⑨ 正确性 ⑩ 硬件环境 2、(共10分)UML关系包括关联、聚合、泛化、实现、依赖等5种类型,请将合适的关系填写在下列描述的( )中。 1. 在学校中,一个导师可以指导多个研究生,一个研究生可以由多个导师指导,那么导师和研究生之间是(关联)关系。 2. 交通工具与卡车之间是(泛化)关系。 3. 公司与部门之间是(聚合)关系。 4. 图形与矩形之间是(泛化)关系。 5. 参数类及其实例类之间是(实现)关系。 3、(共20分)回答下列问题: 1. 软件工程的基本目标是什么?

软件工程旨在开发满足用户需要、及时交付、不超过预算和无故障的软件,其主要目标如下: (1) 合理预算开发成本,付出较低的开发费用;

(2) 实现预期的软件功能,达到较好的软件性能,满足用户的需求; (3) 提高所开发软件的可维护性,降低维护费用; (4) 提高软件开发生产率,及时交付使用。

2. 原型化方法主要用于解决什么问题?试说明这种方法的主要优缺点。

建立原型的主要原因是为了解决在产品开发的早期阶段需求不确定的问题,用户、经理和其他非技术项目风险承担者发现在确定和开发产品时,原型可以使他们的想象更具体化。原型在软件开发过程中可以起到以下主要作用:

(1) 明确并完善需求 原型作为一种需求工具,它初步实现所理解的系统的一部分。用户对原型的评价可以指出需求中的许多问题,在你开发真正产品之前,可以最低的费用来解决这些问题。

(2) 探索设计选择方案 原型作为一种设计工具,用它可以探索不同的用户界面技术,使系统达到最佳的可用性,并且可以评价可能的技术方案。

(3) 发展为最终的产品 原型作为一种构造工具,是产品最初子集的完整功能实现,通过一系列小规模的开发循环,你可以完成整个产品的开发。

3. 在下列用例图中,哪些是系统角色?

Bank network、Manager、Clerk

4、(共20分)下面是一段插入排序的程序,将R[k+1]插入到R[1…k]的适当位置。 R[0] = R[k+1]; j = k;

while (R[j] > R[0]){ R[j+1] = R[j]; j--;} R[j+1] = R[0];

用路径覆盖方法为它设计足够的测试用例(while循环次数为0、1、2次)。

画出该程序的流程图:测试用例设计

循环 次数 j R[i-2] 0 1 2 i - i - i - i - i 1 i 2 输 入 数 据 R[i-1] - - 1 2 3 3 R[i] 1 1 3 3 4 4 R[i+1] 2 1 2 2 2 2 R[0] 2 1 2 2 2 2 j i i i-1 i-1 i-2 i-2 R[i-2] - - - - 1 2 预 期 结 果 R[i-1] - - 1 1 2 2 R[i] 1 1 2 2 3 3 R[i+1] 2 1 3 3 4 4 约束 < = >< >= >>< >>= 覆 盖 路 径 路 径 ①③ ①③ ①②③ ①②③ ①②②③ ① ②③