软件工程概论复习题(答案)[1]
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程概论复习题答案
一、单选题
1.软件工程的纵向分解是把软件开发分为几个(B)
A.模块B.阶段C.子系统D.过程
2.McCall软件质量度量模型中属于面向软件产品操作的是(D)
A.适应性B.可重用性C.可测试性D.可用性
3.快速原型模型中,用于及早向用户提交一个原型系统的是(D)
A.实验型原型B.探索型原型C.提交型原型D.演化型模型4.软件维护中,因重新初始化控制标志或指针而引起的错误是以下哪一项的副作用(B)A.文档B.数据C.编码D.设计
5.软件维护费用高的主要原因是(B)
A.生产率高B.生产率低C.人员多D.人员少
6.根据对软件开发机构调查的结果可知,各类维护活动所占的比重是(A)A.完善性占50%,适应性占25%,校正性占21%,其他维护占4%
B.完善性占25%,适应性占50%,校正性占21%,其他维护占4%
C.完善性占21%,适应性占25%,校正性占50%,其他维护占4%
D.完善性占21%,适应性占50%,校正性占25%,其他维护占4%
7.下列属于用白盒技术设计测试用例的是(B)
A.错误推测B.逻辑覆盖C.等价类划分D.因果图
8.有助于培养良好的编程风格并且第一个体现了结构化编程思想的程序设计语言的是(A)
A.PASCALB.FORTRAN C.DL/1D.C
9.在软件详细设计过程中不采用的工具为(C)
A.判定表B.PDL C.数据流图D.IPO图
10.根据输入输出的数据结构产生程序结构的设计方法是(B)
A.PARNAS方法B.JACKSON方法C.WIRTH方法D.DIJKSTRA方法11.在软件设计中,为解决一个大而复杂的问题把软件系统划分为一个个完成某一特定的子功能的方法称为(C)
A.细化B.结构化C.模块化D.抽象化
12.结构化方法在建立软件系统的结构模块时按照以下哪种方法进行?(B)
A.由底向上B.自顶向下C.随机D.回归
13.两个模块之间传递的是同一个数据结构的地址,这种耦合方式称为(C )
A.控制耦合B.公告耦合C.标记耦合D.数据耦合
14.结构化设计是以哪个阶段产生的DFD图为基础,按一定的步骤映射成软件结构?(B)A.可行性分析B.需求分析C.概要设计D.详细设计
15.结构化方法的基本原则是功能的分解和( C )
A.模块化B.信息隐藏C.抽象D.细化
16.数据字典和数据流图共同构成了系统的(B)
A.物理模型B.逻辑模型C.原型D.目标模型
17.软件需求不应包括(C )
A.功能要求B.环境需求C.标准实现的空间需求D.用户界面要求18.项目开发计划是什么类型的文档?( D )
A.设计性B.进度表示C.需求分析D.管理性
19.瀑布模型是一种什么类型?( B )
A.风险驱动模型B.线性开发模型C.增量模型D.迭代模型20.软件工具一般是为软件开发人员和维护活动而使用的(C )
A.硬件环境B.说明书C.软件D.程序
21.瀑布模型存在的问题是(B )
A.用于容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求22.可将软件生存周期划分为3个过程,可行性研究属于其中的(A )
A.软件定义过程B.软件开发过程C.软件设计过程D.软件运行与维护过程23.经济可行性研究的范围包括(C )
A.资源有效性B.管理制度C.效益分析D.开发风险
24.需求分析中开发人员要从用户那里了解(A )
A.软件做什么B.用户使用界面C.输入的信息D.软件的规模25.交互设计不包括( C )
A.角色设计B.目标设计C.算法设计D.任务设计
26.一个模块的(B )是指能直接控制模块的模块数。
A.扇出数B.扇入数C.宽度D.深度
27.将软件组装成系统的一种测试技术叫( A )
A.集成测试B.单元测试C.集合测试D.系统测试
28.为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础的软件维护称为(D)
A.纠错性维护B.适应性维护C.改善性维护D.预防性维护
29.项目管理中成本估算时测算快,误差大,适用于准备开发阶段的估算方法是(B )A.类比估算法B.专家估算法C.参数估算法D.COCOMO方法
30.面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组织成一个层次结构的系统,一个类的上层可以有父类,下层可以有子类,这种层次结构系统的一个重要性质是(A ),一个类获得其父类的全部描述(数据和操作)。
A.传递性B.继承性C.复用性D.并行性
31.软件生命周期中所花费最多的阶段是(D)
A.详细设计B.软件编码C.软件测试D.软件维护
32.在纤细设计阶段,经常采用的工具有( A )
A.PAD B.SA C.SC D.DFD
33.对象实现了数据和操作的结合,使数据和操作(C)于对象的统一体中。
A.结合B.隐藏C.封装D.抽象
34.统计表明,软件测试工作往往占软件开发总工作量的(B)%以上。
A.20 B.40 C.60 D.80
35.为了提高软件产品的质量和可靠性,对某些无法避开的差错,使其影响减至最小程度所采用的技术是( A )
A.容错技术B.避开错误技术C.检测技术D.排错技术
36.软件复杂性的常用度量方法包括( D )
A.BOEHM度量法B.可扩充度量法C.线性度量法D.代码行度量法
37.面向对象的要素包含( B )
A.对象的唯一性B.抽象C.继承性D.分类性
38.构造原型时,主要考虑(B )
A.全部功能B.原型要体现的特征C.全部细节D.全部要求
39.维护中,因修改文件的打开或关闭而引起的错误是(C)
A.文档副作用B.数据副作用C.编码副作用D.设计副作用
40.诊断和消除程序在使用过程中发生错误的过程称为( A )
A.校正性维护B.适应性维护C.完善性维护D.预防性维护
42.在软件测试中,首先对每个模块分别进行单元测试,然后再把所有的模块按设计要求组装在一起测试,称为( D )
A.确认测试B.系统测试C.渐增式测试D.非渐增式测试43.源代码的可维护性表现了程序设计语言的( B )
A.心理特性B.工程特性C.技术特性D.传统特性
44.以下软件生存周期的活动中,要进行软件结构设计的是(B )
A.测试用例设计B.概要设计C.程序设计D.详细设计
45.能够清楚地表示复杂的条件组合与应做的动作之间的对应关系的工具是( C )A.结构化语言B.PAD图C.判定表D.程序流程图
46.需求分析方法必须能够表达和理解问题的数据域和( C )
A.数据流B.用户类型C.功能域D.应用领域
47.在软件生存期的各个阶段中跨越时间最长的阶段是( D )
A.需求分析阶段B.设计阶段C.调试阶段D.维护阶段
48.软件工程管理的对象是( B )
A.软件开发人员B.软件工程项目C.软件开发过程D.软件开发速度49.CMM表示( A )
A.软件过程成熟度模型B.软件过程工业化控制
C.国际软件质量认证D.软件统一性标准
50.自底向上的成本估算法的特点是(B)
A.简单、工作量小、误差大B.精度高,但缺少子任务(模块)间的联系C.估算较精确,但区分类比较困难D.复杂、不可行,一般不采用此种方法
二、简答题
1.答:需求分析是当前软件工程中的关键问题,需求分析阶段的任务是:在可行性分析的基础上,进一步了解、确定用户需求。
准确地回答“系统必须做什么?”的问题。
获得需求规格说明书。
还涉及到软件系统的目标、软件系统提供的服务、软件系统的约束和软件系统运行的环境。
它还涉及到这些因素和系统的精确规格说明,以及系统进化之间的关系。
需求分析的基本任务包括:
(1)抽取需求:分析现行系统存在需要解决的问题。
获取足够多的问题领域的知识,需求抽取的方法一般有问卷法、面谈法、数据采集法、用例法、情景实例法以及基于目标的方法等;还有知识工程方法,例如,场记分析法、卡片分类法、分类表格技术和基于模型的知识获取等。
(2)模拟和分析需求:需求分析和模拟又包含三个层次的工作。
首先是需求建模。
需求建模的表现形式有自然语言、半形式化(如图、表、结构化英语等)和形式化表示等三种。
需求概念模型的要求包括实现的独立性;不模拟数据的表示和内部组织等;需求模拟技术又分
为企业模拟、功能需求模拟和非功能需求模拟等。
(3)传递需求:传递需求的主要任务是书写软件需求规格说明。
(4)认可需求:对需求规格说明书达成一致,其主要任务是冲突求解,包括定义冲突和冲突求解两方面。
常用的冲突求解方法有:协商、竞争、仲裁、强制、教育等,其中有些只能用人的因素去控制。
(5)进化需求:客户的需求总是不断(连续)地增长,但是一般的软件开发又总是落后于客户需求的增长,如何管理需求的进化(变化)就成为软件进化的首要问题。
对于传统的变化管理过程来说,其基本成分包括软件配置、软件基线和变化审查小组。
当前的发展是软件家族法,即产品线方法。
多视点方法也是管理需求变化的一种新方法,它可以用于管理不一致性,并进行关于变化的推理。
2.答:根据程序的输入特性,将程序的定义域划分为有限个等价区段——“等价类”,从等价类中选择出的用例具有“代表性”,即测试某个等价类的代表值就等价于对这一类其他值的测试。
如果某个等价类的一个输入数据(代表值)测试中查出了错误,说明该类中其他测试用例也会有错误。
3.软件费用、软件可靠性、软件可维护、软件生产率和软件重用。
4.软件配置管理用于整个软件工程过程。
其目的是协调整个软件的开发,使得混乱减少到最小程度,使得变更所产生的错误达到最小并最有效地提高生产率;它的主要目标是:标识变更;控制变更;确保变更的正确实现;报告有关变更。
5.软件复杂性主要表现在程序复杂性,而程序的复杂性主要是指模块内程序的复杂性。
它直接关联到软件开发费用的多少、开发周期长短和软件潜伏错误的多少。
减少程序的复杂性,可提高软件的简单性和可理解性,并使软件开发费用减少,开发周期缩短,软件内部潜伏错误减少。
6.软件产品作为逻辑产品,具有无形性、生产就是开发研究、不会坏、不会磨损、成本昂贵、生产主要靠脑力劳动。
7.结构图是软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制体系。
准则:高内聚、低耦合,作用范围在控制范围内,软件的深度、宽度、扇入、扇出适当、模块大小适中,接口简单清晰易懂。
8.测试是为了发现错误而执行程序的过程。
一个好的测试用例能够发现至今尚未发现的错误。
一次成功的测试是发现了至今尚未发现的错误的测试。
软件测试的原则:设计测试用例时,要给出测试的预期结果。
要设计不合理输入的测试用例。
除了检查程序是否做了应该做的工作,还有检查程序是否做了不应该做的工作。
应制订测试计划并严格执行,排除随意性。
长期保存测试用例,为维护提供方便,在对程序进行修改之后,要进行回归测试。
充分注意测试中国的群集现象。
9.使用有可维护性的程序设计语言、及时更新文档、使用先进技术和工具、明确软件质量目标、明确质量保证工作。
10.把被测试对象看成一个黑盒子,测试人员完全不用考虑程序的内部结构和处理过程。
11.将软件生存周期各个活动规定为依线性顺序连接的若干阶段的一种软件开发模型,它包括可行性分析、项目开发计划、需求分析、概要设计、详细设计、编码、测试和维护。
12.系统顺序图表示参与者与系统的交互以及由他们启动的系统操作,是一个用来表示用例特定场景、外部参与者产生的事件、它们的顺序以及系统之间事件的描述。
所有的系统都被当做黑箱,图的重点是从参与者跨越到系统边界的事件。
即用于说明与系统相关的输入和
输出事件,是一个可以快速、方便创建的工作,UML可以用顺序图的形式来表示从外部参与者发送给系统的事件。
13.解释顺序图
采用一种类似于栅栏的格式表示对象之间的交互,在顺序图中在,在右边添加新对象。
优点是可以清楚地表示消息的顺序或时序、简单的表示法。
缺点是增加新对象时被迫向右扩展,占用水平空间。
14.以图或网络的格式表示出对象之间的交互,对象可以放置在图的任何地方。
优点是节省空间,可以较好地展现复杂的分支、迭代以及并发行为,特别当在一个较窄的页面上绘制图时,协作图因在垂直方向上添加新对象而体现其优势。
缺点是难以观察消息的顺序,较复杂的表示法。
15.软件架构是一组有关如下要素的重要决策:软件系统的组织、构成系统的结构化元素、接口和它们相互协作的行为的选择,结构化元素和行为元素逐步组合成粒度更大的子系统的方式的选择,和指导这一组织——元素及其接口、协作和组合方式——的架构风格的选择。
架构架构的分类:
(1)架构模式:有关大尺度和粗粒度的设计。
例如层模式将系统组织成不同的层;
(2)设计模式:有关中小尺度的对象和框架的设计,应用在实现架构模式定义的大尺度元素的连接解决方案中,也适用于任何局部的详细设计。
也称为微观架构模式。
(3)习惯用法:面向语言或实现的低层设计解决方案。
例如单子模式。
16.UML活动图记录了单个操作或方法的逻辑,单个用户案例,或者单个业务流程的逻辑。
三应用题。
1
2.根据下列条件使用边界值分析法设计测试用例:
某一8位微机,其十进制整数定义为:以非零开头的数是十进制整数,其值的范围是-128~127,如123,-45,0.
3.一实时监护系统的中央处理机的功能如下:
(1)由定时检测系统取得各个监护病员的生理数据(脉搏,体温,血压)经合法性检查后,与预先保存的每一病号生理临界数据进行比较;
(2)如发现超越临界则启动自动报警装置发出警报信号;
(3)定时检测的数据将格式化并被记入日志文件;
试根据要求画出该问题的数据流图或者用例图。
6.请画出活动图
一个在学校首次报名的UML活动图。
场景如下:
(1)新生首先填写注册表格,可以寻求帮助填写表格;
(2)表格验证通过后,学校审核注册内容;
(3)如果注册内容审核不通过,不能注册;
(4)如果注册内容审核通过,进入大学概括介绍,并参加相关研讨会,缴纳学费。