福建师范大学课程考试《软件工程》作业考核试题参考839.docx
《福建师范大学课程考试《软件工程》作业考核试题参考839.docx》由会员分享,可在线阅读,更多相关《福建师范大学课程考试《软件工程》作业考核试题参考839.docx(8页珍藏版)》请在冰豆网上搜索。
福建师范大学课程考试《软件工程》作业考核试题参考839
软件工程期末试卷A
一、选择题(51分)
1.(8分)从供选择的答案中选出正确的答案填入下面的()中。
块间联系和块内联系是评价程序模块结构质量的重要标准。
联系的方式、共用信息的作用、共用信息的数量和接口的(A)等因素决定了块间联系的大小。
在块内联系中,(B)的块内联系最强。
SD方法的总的原则是使每个模块执行(C)功能,模块间传送(D)参数,模块通过(E)语句调用其他模块,而且模块间传送的参数应尽量(F)。
此外,SD方法还提出了判定的作用范围和模块的控制范围等概念。
SD方法认为,(G)应该是(H)的子集。
供选择的答案:
A:
①友好性 ②健壮性 ③简单性 ④安全性
B:
①巧合内聚 ②功能内聚 ③通信内聚 ④信息内聚
C:
①一个 ②多个
D:
①数据型 ②控制型 ③混合型
E:
①直接引用 ②标准调用 ③中断 ④宏调用
F:
①少 ②多
G~H:
①作用范围②控制范围
答:
A③简单性B②功能内聚C①一个D①数据型E②标准调用F①少G①作用范围H②控制范围
2.(5分)软件需求分析的任务不应包括(A)。
进行需求分析可使用多种工具,但(B)是不适用的。
在需求分析中,分析员要从用户那里解决的最重要的问题是(C)。
需求规格说明书的内容不应当包括(D)。
该文档在软件开发中具有重要的作用,但其作用不应当包括(E)。
供选择的答案:
A:
①问题分析②信息域分析③结构化程序设计④确定逻辑模型
B:
①数据流图②判定表③PAD图④数据词典
C:
①要让软件做什么 ②要给该软件提供哪些信息
③要求软件工作效率如何 ④要让软件具有什么样的结构
D:
①对重要功能的描述 ②对算法的详细过程性描述
③软件确认准则 ④软件的性能
E:
①软件设计的依据
②用户和开发人员对软件要“做什么”的共同理解
③软件验收的依据
④软件可行性分析的依据
答:
A③结构化程序设计B③PAD图C①要让软件做什么D②对算法的详细过程性描述E④软件可行性分析的依据
3.(5分)UML是一种面向对象的统一建模语言。
它包含10种图,其中,用例图展示了外部actor与系统所提供的用例之间的连接,UML中的外部actor指(①),用例可以用(②)图来描述。
状态图指明了对象所有可能的状态以及状态间的迁移(transition)。
如果一个并发的状态由n个并发的子状态图组成,那么,该并发状态在某时刻的状态由(③)个子状态图中各取一个状态组合而成。
协作图描述了协作的(④)之间的交互和链接(1ink),它画成(⑤)图的形式。
①A.人员B.单位C.人员或单位D.人员或外部系统
②A.类B.状态C.活动D.协作
③A.每一B.任意一C.任意二D.任意m(m≤n)
④A.对象B.类C.用例D.状态
⑤A.对象B.类C.用例D.状态
答:
①D.协作②C.活动③A.每一④A.对象⑤A.对象
4.(5分)软件详细设计工具可分为三类,即:
图示工具、设计语言和表格工具。
图示工具中,(A)简单而应用广泛、(B)表示法中,每一个处理过程用一个盒子表示,盒子可以嵌套。
(C)可以纵横延伸,图形的空间效果好。
(D)是一种设计和描述程序的语言,它是一种面向(E)的语言。
供选择的答案:
A~C:
①NS图②流程图③HIPO图④PAD图
D:
①C②PDL③RPOLOG④PASCAL
E:
①人②机器③数据结构④对象
答:
A②流程图B①NS图C④PAD图D②PDLE①人
5.(4分)在使用UML建模时,若需要描述跨越多个用例的单个对象的行为,使用(①)是最为合适的。
UML结构包括了基本构造块.公共机制和(②)。
UML中提供了扩展机制,其中,构造型(Stereotype)扩展了UML的(③),约束(Constraint)扩展了UML(④)。
①A.协作图(CollaborationDiagram)B.序列图(SequenceDiagram)
C.活动图(ActivityDiagram)D.状态图(StatechartDiagram)
②A.把这些构造块放在一起的规则
B.图形或文字修饰
C.类与对象的划分以及接口与实现的分离
D.描述系统细节的规格说明
③A.构造块的特性,允许创建详述元素的新信息
B.构造块的语义,允许增加新的规则或修改现有的规则
C.语义,允许创建新的构造块
D.词汇,允许创建新的构造块
④A.构造块的特性,允许创建详述元素的新信息
B.构造块的语义,允许增加新的规则或修改现有的规则
C.语义,允许创建新的构造块
D.词汇,允许创建新的构造块
答:
①D.状态图(StatechartDiagram)
②A.把这些构造块放在一起的规则
③A.构造块的特性,允许创建详述元素的新信息
④B.构造块的语义,允许增加新的规则或修改现有的规则
6.(5分)下面有关软件维护的叙述有些是不准确的,请列举5个正确的叙述。
供选择的答案:
①要维护一个软件,必须先理解这个软件。
②阅读别人写的程序并不困难。
③如果文档不齐全也可以维护一个软件。
④谁写的软件就得由谁来维护这个软件。
⑤设计软件时就应考虑到将来的可修改性。
⑥维护软件时一件很吸引人的创造性工作。
⑦维护软件就是改正软件中的错误。
⑧维护好一个软件是一件很难的事情。
答:
软件维护人员通常不是该软件的开发人员,这给软件维护带来很大的困难。
特别是有些软件在开发时没有遵循软件开发的准则,没有开发方法的支持,维护这样的软件就更困难。
下面列举一些与软件维护有关的问题。
(1)要维护一个软件,首先必须要理解它。
而理解一个别人编写的软件通常是困难的,尤其是对软件配置(指各种相关的文档)不齐全的软件,理解起来就更加困难。
(2)需要维护的软件往往缺少合格的文档,或者文档资料不齐全,甚至根本没有文档。
在软件维护中,合格的文档十分重要,它有助于理解被维护的软件。
合格的文档不仅要完整正确地反映开发过程各个阶段的工作成果,而且应当容易理解并应与程序源代码一致。
而错误的文档对软件的理解引入歧途。
(3)在软件维护时,不要指望得到原来开发该软件的人员的帮助。
开发人员开发完一个软件后,往往会从事另一软件的开发,甚至已离开原开发单位。
即使原来的开发人员还在,也可能时间太久而忘却了实现的细节。
(4)多数软件在设计时没有考虑到将来的修改,这给软件的修改造成了困难。
而且在修改软件时很可能引入新的差错。
(5)软件维护通常不是一件吸引人的工作。
从事维护工作常使维护人员缺乏成就感,这也严重影响维护工作,从而影响了维护质量的提高。
7.(4分)从供选择的答案中选出应填入下列( )中的字句。
软件测试的目的是(A)。
为了提高测试的效率,应该(B)。
使用白盒测试方法时,确定测试数据应根据(C)和指定的覆盖标准。
与设计测试数据无关的文档是(D)。
供选择的答案:
A.①评价软件的质量 ②发现软件的错误
③找出软件中的所有错误 ④证明软件是正确的
B.①随机地选取测试数据
②取一切可能的输入数据作为测试数据
③在完成编码以后制定软件的测试计划
④选择发现错误的可能性大的数据作为测试数据
C.①程序的内部逻辑 ②程序的复杂程度
③使用说明书 ④程序的功能
D.①该软件的设计人员 ②程序的复杂程度
③源程序 ④项目开发计划
答:
A②发现软件的错误B ④选择发现错误的可能性大的数据作为测试数据C①程序的内部逻辑D④项目开发计划
8.(5分)从供选择的答案中选出应该填入下面( )中的正确答案。
A.汇编程序是指()。
①用汇编语言写的程序
②符号程序
③汇编语言的处理程序
B.为了实现递归子程序的正确调用,人们必须用()来保存()及有关信息。
①堆栈 ②线性表 ③队列 ④树
⑤入口点 ⑥返回地址 ⑦断点
C.UNIX操作系统是( )研制的,它是用程序语言( )书写实现的。
①Bell实验室 ②DEC公司 ③IBM公司 ④PASCAL
⑤并发PASCAL ⑥MODULA ⑦C
答:
A①用汇编语言写的程序
B①堆栈⑤入口点
C①Bell实验室 ⑦C
9.(5分)在软件维护的实施过程中,为了正确、有效地修改,需要经历以下3个步骤:
(A)、(B)、(C)。
(A)是决定维护成败和质量好坏的关键。
(C)包括(D)确认、计算机确认和维护后的(E)。
供选择的答案:
A~C.①修改程序 ②建立目标程序 ③分析和理解程序
④重新验证程序 ⑤验收程序
D.①动态 ②静态 ③人工 ④自动
E.①验证 ②验收 ③检验 ④存档
答:
三个步骤:
A③分析和理解程序B①修改程序C④重新验证程序
A③分析和理解程序C④重新验证程序D②静态E②验收
10. (5分)从供选择的答案中选出同下列关于软件测试的各条叙述关系最密切的字句。
A.对可靠性要求很高的软件,例如操作系统,由第三者对源代码进行逐行检查。
B.已有的软件被改版时,由于受到变更的影响,改版前正常的功能可能发生异常,性能也可能下降。
因此,对变更的软件进行测试是必要的。
C.在意识到被测试模块的内部结构或算法的情况下进行测试。
D.为了确认用户的需求,先做出系统的主要部分,提交给用户试用。
E.在测试具有层次结构的大型软件时,有一种方法是从上层模块开始,由上到下进行测试。
此时,有必要用一些模块替代尚未测试过的下层模块。
供选择的答案:
A~E.①仿真器 ②代码审查 ③模拟器 ④桩
⑤驱动器 ⑥域测试 ⑦黑盒测试 ⑧原型
⑨白盒测试 ⑩退化测试
答:
A②代码审查B⑩退化测试C⑨白盒测试D⑧原型E④桩
二、解答题(49分)
1.(12分)画出“传感器监测”的用例的活动图。
答:
2.(15分)使用面向对象设计方法进行高层设计,以建立系统的体系结构。
这样的结构有哪几种主要的组成部分?
每一部分所承担的职责是什么?
答:
一个典型的高层设计是在Smalltalk中使用的MVC软件体系结构,即模型/视图/控制器.(Model/View/Controller)。
在这个结构中,模型是软件中的应用论域的各种对象,它们的操作独立于用户界面;视图则管理用户界面的输出;而控制器处理软件的输入。
输入事件给出要发送给模型的消息。
一旦模型改变了它的状态,就立即通过关联机制通知视图,让视图刷新显示。
这个关联机制定义了在模型与各个视图之间的关系,它允许模型的运行独.立于与它相关联的视图。
类似地,控制器在输入事件发生时将对视图及模型进行控制与调度。
另一个典型的高层设计是Coad与Yourdon提出的00D模型。
这个模型也有5层结构,又被划分成了4个组成部分:
问题论域、用户界面、任务管理和数据管理。
问题论域部分的职责是:
组合所有的论域中定义的类,为应用设计适当的类层次,为适应语言要求简化继承层次,细化设计以改善性能,开发与数据管理部分的接口,做细化时加入低层对象,评审设计并审查对分析模型所做的增补。
人机交互部分的职责是:
定义用户类型,开发任务场景,设计用户命令层次,建立原型以细化与用户交互,设计相关的类和类层次,适当时集成GUI类。
任务管理部分的职责是:
标识任务的类型(如事件驱动,时钟驱动),建立优先级,标识协调者,为每个任务设计适当的类。
数据管理部分的职责是:
设计数据结构和布局,设计管理数据结构所需的服务,标识可以协助实现数据管理的工具,设计适当的类和类层次。
3.(22分)如何理解模块独立性?
用什么指标来衡量模块独立性?
答:
模块独立性,是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其它的模块的接口是简单的。
模块的独立性很重要:
第一,有效的模块化(即具有独立的模块)的软件比较容易开发出来。
第二,独立的模块比较容易测试和维护。
模块的独立程度可以由两个定性标准度量,分别是内聚和耦合。
内聚衡量一个模块内部各个元素彼此结合的紧密程度;耦合衡量不同模块彼此之间互相依赖(连接)的紧密程度。