《软件工程》课程复习资料
一、单项选择题:
1.下面哪些UML图描述系统行为? [ ] A.用例图 B.类图 C.对象图
2.属于概要设计活动的是 [ ] A.软件结构设计 B.数据结构设计 C.算法设计
3.属行为型设计模式的是 [ ] A.组合模式 B.工厂方法模式 C.观察者模式
4.下列说法正确的是 [ ] A.UML 是软件开发方法 B.UML是系统描述语言 C.UML是软件开发过程
5.根据程序流程图划分的模块通常是 [ ] A.信息内聚的模块 B.过程内聚的模块 C.逻辑内聚的模块
6.如果某程序中的比较个数是m,则其 McCabe环形复杂度为 [ ] A.m-1 B.m C.m+1
7.按ISO9000-3的说明,下列属软件配置项的是 [ ] A.软件开发方法 B.软件开发组织管理制度 C.软件开发合同
8.软件测试的目的是 [ ] A.证明软件无错 B.发现软件中的所有错误 C.尽可能发现软件系统中的错误
9.软件重构关注的是 [ ] A.软件体系结构 B.模块细节 C.软件性能
10.软件项目开发计划的内容有 [ ] A.数据分析 B.风险分析 C.功能分析
11.在UML的类图中,描述整体与部分关系的是 [ ] A.泛化关系 B.聚合关系 C.依赖关系
12.软件过程能力成熟度模型CMM用以评价 [ ] A.软件过程能力 B.组织能力 C.学习能力
13.因计算机硬件和软件环境的变化而作出的修改软件的过程称为 [ ] A.完善性维护 B.改正性维护 C.适应性维护
14.对项目软件而言,软件功能需求信息主要由谁提供 [ ] A.软件用户 B.软件开发人员 C.软件项目管理人员
15.IDEF0 图反映不出 [ ] A.系统做什么 B.系统功能由谁做 C.系统如何做
16.原型模型是一种什么开发过程模型? [ ] A.自顶向上 B.由外至内 C.增量式
17.系统流程图描述 [ ] A.物理系统 B.逻辑系统 C.软件体系结构
18.需求规格说明书的内容不应该包括 [ ] A.软件确认准则 B.软件的性能描述 C.算法过程的详细描述
19.适合需求模糊或需求不确定系统开发的软件开发模型是 [ ] A.瀑布模型 B.RAD 模型 C.原型模型
20.UML 图中描述系统结构的是 [ ] A.组件图 B.顺序图 C.状态图
21.面向对象方法是一种什么软件开发方法? [ ] A.层次化 B.迭代增量式 C.逐步求精
22.不可以用来衡量软件可维护性的是 [ ] A.可靠性 B.可用性 C.可行性
23.系统分析员在需求分析最后负责编写 [ ] A.用户手册 B.概要设计说明书 C.可行性研究报告
24.为了提高软件的可靠性、可维护性等而对软件的修改称为 [ ] A.改正性维护 B.适应性维护 C.预防性维护
25.在结构化方法中,为使需求改变对软件影响较小,应该使软件结构 [ ] A.与问题结构对应 B.与问题结构独立 C.与用户界面对应
26.单元测试的计划应该在什么阶段完成? [ ] A.需求分析 B.概要设计 C.详细设计
1
27.下列属面向对象软件开发方法的是 [ ] A.LCP 方法 B.OMT 方法 C.IDEF0 方法
28.强调信息隐藏的软件工程设计方法是 [ ] A.Jackson 方法 B.Parnas 方法 C.SA/SD 方法
29.描述系统动态行为的模型是 [ ] A.包图 B.软件结构图 C.状态图
30.考虑输入条件组合的测试用例设计方法是 [ ] A.等价分类法 B.语句覆盖法 C.因果图法
31.下列能减少支援性维护活动的是 [ ] A.利用软件包 B.进行配置管理 C.对用户进行适当培训
32.只支持单重继承的程序设计语言是 [ ] A.C++ B.Delphi C.C
33.IDEF0 图的顶层图是 [ ] A.A0 图 B.A-0 图 C.A-1图
34.在UML的用例图中,扩展关系是一种 [ ] A.泛化关系 B.依赖关系 C.关联关系
35.独立测试小组开始介入测试是在 [ ] A.模块测试阶段 B.集成测试阶段 C.确认测试阶段
36.在成本估计中容易低估局部问题的方法是 [ ] A.基于经验模型的估计 B.自底向上估计 C.自顶向下估计
37.在IDEF1X图中,如果子实体与父实体存在联系,则子实体将继承父实体的 [ ] A.全部属性 B.主关键字属性 C.非主关键字属性
38.结构化分析方法使用的工具是 [ ] A.数据流图 B.类图 C.软件结构图
39.白盒测试设计用例的方法是 [ ] A.等价分类法 B.基本路径覆盖法 C.因果图法
40.在衡量软件质量时,最重要的标准是 [ ] A.可维护性好 B.可用性好 C.满足用户功能需求
41.瀑布模型是一种 [ ] A.演化模型 B.顺序模型 C.增量模型
42.模块的独立程度可以由什么定性标准度量? [ ] A.耦合度 B.复杂度 C.可靠性
43.以下选项中,不属于对象的特点有 [ ] A.继承 B.多态 C.封闭
44.面向数据结构的设计方法有 [ ] A.Parnas 方法 B.Jackson 方法 C.IDEF0 方法
45.与UML配合最好的软件开发方法是 [ ] A.RUP 方法 B.Coad/Yourdon方法 C.IDEF4方法
二、填空题:
1.统一建模语言UML提供了两种描述整体/部分关系的方法,分别是 和 。
2.软件是计算机程序、 及 的完整集合,将其统称为软件配置,这些项称为软件配置项。通过正式复审的软件配置项称为 ,只有通过正式的变化控制过程才能改变它。 3.纯收入是指在整个生存周期之内的 与投资之差。
4.瀑布模型是以 驱动的软件生存周期模型,适合需求明确的软件系统开发。
5.在单元测试期间,应该为被测模块编写相应的测试软件,一般地 模块接收测试数据,并把数据传给被测模块,而 模块则模拟实际模块完成少量数据处理。
6.IDEF0方法用严格的自顶向下、逐层分解的方式进行系统的功能描述,其顶层图将 图在建模范围内分解成 个主要部分得到。
7.如果一个模块完成多个逻辑上相近或相关的功能,并且每次调用只选择该模块中的一个功能执行,则称此模块为 内聚的模块。
8.程序静态分析的对象是 。常生成各种引用表,如 列出各模块中出现的全部标号。 9.在数据流图中,每个加工至少有一个 和一个 。
10.两个小组独立地测试同一个程序,第一组发现25个错误,第二组发现30个错误,在两个小组发现的错误中有15个是共同的,那么可以估计程序中的错误总数是 。
2
11.设E为程序图G中边的总数; N 为程序图中结点的总数,则该程序图的环形复杂度为 。 12.汽车有一个发动机。若用UML描述汽车和发动机之间的关系,则它们之间是_____关系。
13.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略,即 策略和 策略。 14.在基本路径测试中,以详细设计为基础,导出控制流程图的拓扑结构: 程序图,在计算了程序图的 之后,确定只包含独立路径的基本路径图,其中独立路径是包括一组 的一条路径。从程序图来看,一条独立路径是至少包含有一条在其他独立路径中未有过的边的路径。
15.在多层次的结构图中,其模块结构的层次数称为结构图的 。结构图中同一层模块的最大模块数称为结构图的 。 16.耦合性是指两个模块之间的 关系,模块之间的联系越复杂,每个模块的独立性就 。 17.可行性研究实质上是进行了一次 过程。 18.需求分析的任务是 。
19.NS图的主要优点是它强制设计人员使用 技术,从而可保证软件设计的质量。
20.结构型模式涉及如何组合类和对象,从而构成更大的对象,一是采用 来组合接口或实现形成更大的结构;另一种方式通过 方式来形成。
21.为了便于对照检查,测试用例应由 和预期的 两部分组成。 22.软件开发时,一个错误发现得越晚,为改正它所付出的代价就 。
23.在UML的用例图中,根据参与者与用例关系的不同,参与者可分为 和次要参与者,参与者之间的关系只有 关系。
24.评价软件质量可以从三个方面进行,即产品或中间产品、 和项目。 25.软件配置管理是一组用于在计算机软件的整个生存周期内管理 的活动。
26.通过抽象,可以确定组成软件的 。通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的 。
27.UML表示法的基础是 ,它描述建模元素的语义。
28.条件覆盖是指设计足够的测试用例,使得 至少出现一次。
29.面向数据流图的结构化分析方法是根据 的原则,按照系统中数据处理的流程,用数据图来建立系统的 模型。
30.评估软件企业的质量管理有两种方法,一种是按照 认证,另外一种是按照CMM认证。 31.风险估计从两个方面来度量,一是估计 ,二是估计与风险相关的问题出现后将会带来的损失。
三、名词解释: 1.集成测试 2.设计模式 3.信息隐藏 4.用例
5.结构化方法 6.MVC
四、判断题:
1.测试计划、测试用例和出错统计等一般不用长期保存。 [ ] 2.在面向对象方法中,需求分析和设计没有差别。 [ ] 3.应用设计模式使得软件灵活,可重用性提高,应该尽量多使用。 [ ] 4.UML 是一种建模语言,可以被任何面向对象方法使用。 [ ] 5.任何系统都需要对数据进行处理,因而数据流图可描述任何系统。 [ ] 6.软件开发就是编写程序代码。 [ ] 7.面向对象软件开发最适合采用迭代、增量式的开发模型。 [ ] 8.设计模式是一种可以重用的面向对象软件设计方案。 [ ] 9.软件测试就是检查程序是否正确。 [ ] 10.软件项目计划在可行性研究阶段就已定稿。 [ ] 11.软件工程认为软件设计的最终目标是要取得最佳方案。 [ ]
3
12.只要对软件进行严格的测试,就能发现软件中的所有错误。 [ ] 13.初级技术人员在编码阶段参与软件项目的程度在各类人员中最高。 [ ] 14.单元测试常常在编码阶段进行。 [ ] 15.CMM 描述和分析了软件过程能力的发展与改进的程度。 [ ] 16.为了加快开发速度,可以一边写程序,一边设计文档。 [ ] 17.没有发现任何错误的测试是无效的测试。 [ ] 18.软件结构图中不能有控制信息流动。 [ ] 19.单元测试常常由独立的测试小组进行。 [ ] 20.用例建模只能用于面向对象软件系统的开发。 [ ] 21.数据流建模方法是一种自顶向下的需求分析方法。 [ ] 22.为了减少程序的长度,最好不要在程序中增加注释。 [ ]
五、简答题:
1.在需求分析和设计阶段建立原型的好处有哪些? 2.什么是模块的扇入和扇出? 3.UML的特点是什么?
4.层次图和层次方框图有何区别? 5.软件测试对象应包括哪些内容?
6.试简要叙述文档在软件工程中的作用。
7.为何螺旋模型主要适合开发人员和用户为同一个组织机构成员的软件项目的开发? 8.软件测试为何需要尽早和不断地进行? 9.简要说明如何实现MVC。
10.试给出一种开源软件框架,并简要说明开源软件存在的问题。 11.IDEF0方法有什么特点?
12.快速原型模型有几种?各有何特点?
六、综合题:
1.某网络学院决定开发一个管理所有学生和教师信息的交互式网络系统,该系统提供如下服务:
(1)浏览学生信息:网络学院的任何人员,包括学生和老师,均可以浏览学院任何学生的信息,包括
姓名、学号和专业名称。
(2)浏览教师信息:网络学院的任何人,包括学生和老师,均可以浏览学院任何教师的信息,包括姓
名、工号和职称。
(3)登录:网络学院给学院每个人一个账号。拥有授权帐号的学生和老师,可以使用系统提供的页面
设置个人密码,并使用该账号和密码向系统注册。
(4)修改个人信息:学生或老师向系统注册后,可以发送电子邮件或使用系统提供的页面,对个人信
息进行修改。
(5)删除个人信息:只有网络学院的管理人员才能删除不再是学院学生或老师的人员的有关信息。
试问哪些是参与者?哪些是用例?并用UML的用例图描述系统行为。
2.试据下述伪代码描述的模块,改用NS图描述。
Begin a b
Do Until x6 If xl then f
If x4 then Do Until x5 i
End Until
4
Else g h End if Else
Select Case x2 Case 1:
Do While x3 c
End While Case 2: d Case 3: e End Select End if End Until End
3.某五星级宾馆共有H间客房。每间客房的房间号、房间等级、床位数以及占用状态分别存放在数组ROOM、RANK、NBED和STATUS中。房间等级用整数表示。房间状态有:空闲(0表示)和占用(1表示)。客房以房间为单位出租。试设计一个算法,依据散客的要求预定房间,要求输入为:人数M,房间等级要求R(R为0表示任意等级均可);输出为:可供选择的房间号。要求用程序流程图描述算法。
4.某医院打算开发一个以计算机为中心的患者监护系统,以解决医院人手不够和对危重病人的及时监护。该系统应能做到以下几点:随时接受每个病人的生理信号;定时记录病人情况形成患者日志;当病人生理信号超出医生规定的安全范围时向值班护士发告警信息;此外,护士在需要时,还可要求系统印出指定病人的病情报告。试椐此叙述绘出对应的DFD图。
5.试采用设计模式描述算术表达式(不含圆括号)的设计方案。算术表达式是由加、减、乘、除和操作数构成的表达式,操作数假定为实数。
6.请根据如下程序流程图设计该程序段的判定覆盖测试用例,其中输入为A,B,X,输出为X。
a
b F (A>1)∨(B=0) T c X=X/2 d F (A=2)∧(X>1) T e X=X+2 5