软件工程考试答案-复习题
一、选择填空1.软件工程三要素是( B )。A) 技术、方法和工具 B) 方法、工具和过程C) 方法、对象和类 D) 过程、模型、方法2.下列关于瀑布模型的描述正确的是( D )。A)利用瀑布模型,如果发现问题修改的代价很低B)瀑布模型的核心是按照软件开发的时间顺序将问题简化C)瀑布模型具有良好的灵活性D)瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开3.以下说法正确的是( B )。A.对于软件项目,投资回收期越长,越快获得利润。B.用例模型的基本组成部件是用例、角色和用例之间的联系。C.模块接口简单是软件发生错误的一个主要原因。D.软件的质量保证工作一般在编码工作结束后才开始。4.对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。A.结合 B.隐藏 C.封装 D.抽象5.可行性研究的步骤中不包括(D )的内容。A.复查初步分析结果 B.研究现有的系统 C.导出新系统高层逻辑模型D.建立新系统的物理模型解法。6.技术可行性是可行性研究的关键,其主要内容一般不包括( C ) 。A.风险分析 B.资源分析 C.人员分析 D.技术分析7.需求分析最终结果是产生( B )A.项目开发计划 B.需求规格说明书 C.设计说明书 D.可行性分析报告 8.需求分析的任务不包括( B ) 。A.问题分析 B.系统设计 C.需求描述 D.需求评审。9.需求分析中开发人员要从用户那里了解( A )A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模10.数据字典是数据流图中所有元素的定义的集合,一般由( C )组成。A) 数据说明条目、控制流条目、加工条目、数据存储条目B) 数据流条目、数据项条目、文件条目、加工条目、C) 数据源条目、数据流条目、数据处理条目、数据文件条目D) 数据流条目、数据文件条目、数据池条目、加工条目11.在 E-R模型中,包含以下基本成分( C )。A) 数据、对象、实体 B) 控制、联系、对象C) 实体、联系、属性 D) 实体、属性、对象12.一个模块的(B )是指能直接控制该模块的模块数。A.扇出数 B.扇入数 C.宽度 D.深度13.一个软件的宽度是指其控制的( C ) 。A.模块数 B.层数 C.跨度 D.厚度14.为了提高模块的独立性,模块内部最好是( C )A.逻辑内聚 B.时间内聚 C.功能内聚 D.通信内聚 15.如果某种内聚要求一个模块中包含的任务必须在同一段时间内执行,则这种内聚为( A )。A)时间内聚 B)逻辑内聚 C)通信内聚 D)信息内聚16.软件总体设计是指软件总体结构设计和数据设计,该阶段的主要任务不包括( D ) 。A.设计软件的模块结构 B.定义接口并建立数据结构 C.生成概要设计规格说明和组装测试计划 D.模块设计17.总体设计的目的是确定整个系统的( B )。A)规模 B)功能及模块结构 C)费用 D)测试方案18.当模块中包含复杂的条件组合,只有( A )能够清晰地表达出各种动作之间的对应关系。 A.判定表和判定树 B.盒图 C.流程图 D.关系图19.软件结构图中,模块框之间若有直线连接,表示它们之间存在( A ) 。A.调用关系 B.组成关系 C.链接关系 D.顺序执行关系 20.在详细设计阶段,经常采用的工具有( A )A.PAD B.SA C.SC D.DFD21.结构化程序设计主要强调的是( D )A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性22.源程序的效率与( D )阶段确定的算法的效率直接有关。A) 概要设计 B) 总体设计 C) 单元设计 D) 详细设计23.软件复杂性度量的参数包括( B )A.效率 B.规模 C.完整性 D.容错性24.以下哪项不属于软件测试的基本原则( B )。A) 关键是注重选择高效的测试用例 B) 选择尽可能多的测试用例C) 尽量不由程序设计者进行测试 D) 充分注意测试中的群集现象25.单元测试的测试对象是( B ) 。A.系统 B.程序模块 C.模块接口 D.系统功能26.下列各方法中( D )不是软件测试方法。A)白盒法 B)黑盒法 C)动态测试 D)调试法27.以下不属于白盒测试技术的是( D )A.逻辑覆盖 B.基本路径测试 C.循环覆盖测试 D.等价类划分28.软件调试技术包括( B )。A.边界值分析 B.演绎法 C.循环覆盖 D.集成测试29.为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础的软件维护称为( D ) 。A.纠错性维护 B.适应性维护 C.改善性维护 D.预防性维护30.软件维护产生的副作用,是指( C ) 。A.开发时的错误 B.隐含的错误 C.因修改软件而造成的错误 D.运行时误操作 31.维护的副作用可分三类,不包括( D ) 。A.代码副作用 B.数据副作用 C.文档副作用 D.人员副作用32.下列各种图不能用于动态建模的有( B ) 。A) 状态图 B) 类图 C) 序列图 D) 活动图33.下列不是模型元素的是( D ) 。A) 关联 B) 聚合 C) 依赖 D) 笔记34.软件工程管理的对象是软件( B )。A) 开发人员 B)工程项目 C)开发过程 D)开发速度35.以下不属于用例之间关系的是( A ) 。A) 友元 B) 扩展 C) 使用 D) 组合36.UML语言不支持的建模方式有(C )。A.静态建模 B.动态建模 C.模块化建模 D.功能建模37.软件工程管理的对象是软件(B )。A.开发人员 B.工程项目 C.开发过程 D.开发速度二、简答题1.简述什么是软件工程? 软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。2.软件产品具有哪些特性? 是一种逻辑产品,与物质产品有很大的区别.软件产品的生产主要是研制,成本主要在开发和研制,开发完成后,通过复制就产生了大量软件产品.软件产品不会用坏,不存在磨损,消耗. 生产主要是脑力劳动,还末完全摆脱手工开发方式,大部分产品是"定做"的开发软件的费用不断增加,致使生产成本相当昂贵.(6)其质量往往靠不住,缺乏可见性3.软件生命周期可分为哪三个时期?GB 8567 中规定可分为哪几个阶段?定义时期:问题的定义(客户需求) 、可行性研究(为什么做) ;开发时期:需求分析(做什么) 、总体设计(怎么做抽象) 、详细设计(怎么实现具体) 、编码(程序设计语实现)测试.。运行时期:软件维护。4.可行性分析的任务是什么?1.技术上可行性:研究现有技术、资源及限制能否支持和实现系统的功能、性能,主要是技术风险问题。2.经济上的可行性:进行成本估算及效益评估,确定项目是否值得开发。3.操作上的可行性:系统的操作方式在这个用户组织内是否行得通。4.社会上的可行性:主要指系统开发后能否运行,是否存在合同、责任、侵权、用户组合管理等方面的问题。从法律,社会效益研究可行性。5.简述如何检查数据流图的正确性和提高它的易理解性?可从以下几个角度来检查数据流图的正确性:数据守恒、文件的使用:父图和子图的平衡等;提高数据流图的易理解性可从以下几个方面进行:简化加工间的联系、注意分解的均匀、适当的命名等。6.什么是耦合?什么是内聚?耦合度(Coupling)是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。内聚性是对一个模块内部各个组成元素之间相互结合的紧密程度的度量指标。模块中组成元素结合的越紧密,模块的内聚性就越高,模块的独立性也就越高。理想的内聚性要求模块的功能应明确、单一,即一个模块只做一件事情。模块的内聚性和耦合性是两个相互对立且又密切相关的概念。7.衡量模块独立性的两个标准是什么?它们各表示什么含义?两个定性的度量标准:耦合与内聚性。耦合性:也称块间联系。指软件系统中各模块间相互联系紧密程度的一种度量。模块间联系越紧密,其耦合性就是越强,模块的独立性则越差。内聚性:也称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量,模块内元素联系越紧密,内聚性越高。8.详细设计的基本任务是什么?有哪几种描述方法?设计模块的数据结构、设计数据库的物理结构、设计模块的详细算法、其他(代码设计、输入|输出格式设计、人机对话设计) 、编写详细设计说明书、评审。程序流程图、PAD 图、PDL。9.什么是编码风格?为什么要强调编码风格?编码风格又称程序设计风格或变成风格。编码的目标从强调效率转变为强调清晰。良好的编码风格能在一定程度上弥补语言存在的缺陷,而如果不在注意风格就很难写出高质量的程序,尤其当多个程序员合作编写一个很大的程序时,需要强调良好而一直的编码风格,一边相互通讯,减少因不协调而引起的问题。总之,两哈的编码风格有助于编写出科考而又容易维护的程序编码的风格在很大程度上决定着程序的质量10.简述软件测试的两种基本的测试方法。第一种方法是黑盒测试,第二种是白盒测试。黑盒测试时完全不考虑程序内部结构和处理过程、只按规格说明书的规定来检查程序是否符合它的功能要求。黑盒测试时在程序接口进行的测试,又称为功能测试。白盒测试是将程序看作是一个透明的盒子,也就是说测试人员完全了解程序的内部结构和处理过程。所以测试时按照程序内部的逻辑测试程序、检验程序中的每条通路是否都能按预定的要求正确工作。白盒测试又称为结构测试。11.为什么软件测试不应该由程序的编写人员来做?答: 软件测试的目的是为了发现程序中的错误而执行程序的过程。正确认识测试的目标十分重要。测试目标决定了测试力案的设计。如果为了表明程序是正确的而进行测试,就会设计一些不易暴露错误的测试方案;相反,如果测试是为了发现程序中的错误,就会力求设计出最能暴露错误的测试方案。由于测试的目标是暴露程序中的错误,从心理学角度看,由程序的编写者自己进行测试是不恰当的。12.什么是 UML?它的价值体现在什么地方?答: UML 即统一建模语言,是面向对象技术领域占主导地位的标准建模语言。UML的价值在它综合体现了世界上面向对象方法实践的最好经验,支持用例驱动,一构架为中心以及递增和迭代地进行软件开发。三、 分析与设计1.依下列叙述确定软件生命周期模型。假设你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本开发。由于市场竞争激烈,公司规定了严格的完成期限并且已对外公布。你打算使用哪种软件生命周期模型?请说明你作出选择的理由。答:1)旧版本相当于一个原型,由此较容易确定对新版本的需求,故不必要建立原型系统来分析用户需求;2)该公司软件工程师具有开发字处理软件的丰富经验,有采用增量模型开发新版字处理软件的技术水平;3)该软件深受用户喜爱,故将其体系结构设计成开放式的,以利于今后的改进和扩充。4)用增量模型开发软件时可以并行完成开发工作,因此能够加快开发进度。2.依下列叙述确定软件生命周期模型。M公司的软件产品以开发实验型的新软件为主。用瀑布模型进行软件开发已经有近十年了,并取得了一些成功。若你作为一名管理员刚加入 M公司,你认为快速原型法对