《软件工程》练习题答案_第1页
《软件工程》练习题答案_第2页
《软件工程》练习题答案_第3页
《软件工程》练习题答案_第4页
《软件工程》练习题答案_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程练习题一答案一、单选题1C2A3C4D 5B6C7C8C9D10D11D12A13B14A15A16A17D18A19D20B21A22C23C24A25C26C27B28C29B30C31A32D33C34B35C36A37B38C39C40D41B42D43B44A45D46C47B48D49D50B51A二、填空题1软件配置管理2容错功能3114模块5F/(1+(n*i)6管理 技术7软件工具 软件开发环境8数据字典DD9可测试性10父图 子图11数据结构12防错程序设计13空间14可行性研究15需求16需求建模技术17层数18经济19概率20过程21IPO22资源23数学24重

2、复25模块数26系统约束27从属28软件工程29复杂30外部31风险估算32文档33数据源34动态多变量35数据流图36三种基本控制结构37事务分析设计38功能39用户组织的管理模式及规范40符号表示习惯41不可再分解的42.软件需求明确43累计经济效益(折合成现在值)44硬件/操作系统45差别估算法三、判断题1错2对3对4错5错6错7对四、名词解释1软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。2数据字典是用来定义数据流图中的各个成分的具体含义的。它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。3内聚性是模块独立性的衡量标准之一

3、,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。4JSP方法是面向数据结构的设计方法,其定义了一组以数据结构为指导的映射过程,它根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构。5软件生存周期包括一个软件从提出开发要求开始直到该软件报废为止的整个时期。包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等。6概要设计是在需求分析的基础上通过抽象和分解将系统分解成模块,确定系统功能实现。7也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。8信息隐蔽

4、是指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。9一个模块的作用范围是指受该模块内一个判定影响的所有模块的集合。10结构化分析方法(SA)是需求分析中使用最多的方法之一,适用于数据处理类型软件的需求分析。基本思想是采用自顶向下,逐步分解的方法分析整个系统,有效地控制系统开发的复杂性。11CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发。CASE把软件开发技术、软件工具和软件开发方法集成到一个统一而一致的框架中,并且吸收了CAD(计算机辅助设计)、软件工程、操作系统、数据库、网络和许多其他计算机领域的原理和技

5、术。因而,CASE领域是一个应用、继承和综合的领域。12结构化分析方法是需求分析中使用最多的方法之一,适用于数据处理类型软件的需求分析。基本思想是采用自顶向下、逐步分解的方法分析整个系统,有效地控制系统开发的复杂性。五、简答题1模块的内聚性包括:(1)偶然内聚(2)逻辑内聚(3)时间内聚(4)通信内聚(5)顺序内聚(6)功能内聚2(1)软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。(2)软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。(3)在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。(4)软件的开发和运行经常受到计算机系统的

6、限制,对计算机系统有着不同程度的依赖性。(5)软件的开发至今尚未完全摆脱手工的开发方式。(6)软件的开发费用越来越高,成本相当昂贵。3耦合是对一个软件结构内各个模块之间互连程度的度量。内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。4计算机软件包括与计算机系统操作有关的程序、规程、规则及任何与之有关的文档和数据。5需求分析的任务是确定待开发的软件系统“做什么”。具体任务包括确定软件系统的功能需求、性能需求和运行环境约束,编制软件需求规格说明书、软件系统的验收测试准则和初步的用户手册。6项目的成本,作为立项和签合同的依据之一,并在软件开发过程中按计划管理经费的使

7、用估算软件。7在软件开发的早期,快速开发一个目标软件系统的原型,让用户对其进行评价并提出修改意见,然后开发人员根据用户的意见对原型进行改进。8软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。9(1)制定软件质量保证计划。(2)按照质量评价体系控制软件质量要素。(3)对阶段性的软件产品进行评审。(4)对最终软件产品进行确认,确保软件质量。10支持需求不明确、特别是大型软件系统的开发,并支持面向规格说明、面向过程、面向对象等多种软件开发方法,是一种具有广阔前景的模型。11软件从定义开始,经过开发、使用和维护,直到最终退役的全过程称为软件生存周期。12(1)风险标识(2)风

8、险估算(3)风险评价(4)风险驾驭和监控。13(1)一致性(2)可理解性(3)可修改性(4)可追踪性14(1)引言。(2)可行性研究前提。(3)对现有系统的分析。(4)所建议系统的技术可行性分析。(5)所建议系统的经济可行性分析。(6)社会因素可行性分析。(7)其他可供选择方案。(8)结论意见。15(1)经费预算经常突破,完成时间一再拖延。(2)开发的软件不能满足用户要求。(3)开发的软件可维护性差。(4)开发的软件可靠性差。16它适合于那些不能预先确切定义需求的软件系统的开发,更适合于那些项目组成员(包括分析员、设计员、程序员和用户)不能很好交流或通信有困难的情况。17在给定成本、进度的前提

9、下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。18(1)自顶向下的估算方法(2)自底向上的估算方法(3)差别估算法(4)根据经验估算公式19(1)软件的规模越来越大,结构越来越复杂。(2)软件开发管理困难而复杂。(3)软件开发费用不断增加。(4)软件开发技术落后。(5)生产方式落后。(6)开发工具落后,生产率提高缓慢。20进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。21CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发。CASE把软件开发技术、软件工

10、具和软件开发方法集成到一个统一而一致的框架中,并且吸收了CAD、软件工程、操作系统、数据库、网络和许多其他计算机领域的原理和技术。22(1)规模:总共的指令数或源程序行数。(2)难度:通常由程序中出现的操作数的数目所决定的量来表示。(3)结构:通常用与程序结构有关的度量来表示。(4)智能度:即算法的难易程度。23(1)三种基本结构为: 顺序结构 选择结构重复结构(2)顺序结构的图解逻辑 选择结构的图解逻辑 重复结构的图解逻辑Aseq Aselect(条件1) Aiterwhile(条件)B B BC Aor(条件2) AendD CAend Aend24软件工程是一门工程性的学科,其目标主要是

11、成功地建造一个大型软件系统。包括:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。面临的主要问题是:软件费用、软件可靠性、软件维护、软件生产率、软件重用。25(1)采用自顶向下,逐步求精的程序设计方法。(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环(3)采用主程序员组的组织形式。六、理论应用题12 3(1)3个过程是:软件定义过程、软件开发过程、软件使用与维护过程。(2)9个阶段有:可行性研究、需求分析、概要设计、详细设计、实现、组装测试、验收测试、使用与维护、退役。4(1)软

12、件开发的生产率P为:P = L / E = 12.1103LOC / 24PM = 504 LOC/PM(2)开发每行代码的平均成本C为:C = S / L = 168000美元 / 12100LOC=13.9美元/LOC(3)代码出错率EQR为:EQR = N / L = 29个/12.1KLOC=2.4个/KLOC(4)软件的文档率D为:D = Pd / L = 365页 / 12.1KLOC = 30页/ KLOC5(1)描述本系统功能的数据流图如下所示:储户1记录存款信息2打印存款单3核对密码4计算利息4打印利息清单储户存款单取款单存款信息存款存单存款信息存款信息存款信息D1存款信息利

13、息值(2)描绘计算机储蓄系统中数据对象的实体-联系图。储户储户所存取款MN姓名住址身份证号码电话号码名称地址电话号码数额类型利率到期日期密码67下图为一个改进方案,将模块G的位置提高,使其作用范围为控制范围的子集,减少模块之间的联系。8(1)数据流图:(2)软件结构图:9软件工程练习题二答案一、单选题1B2D3A4B5D6A7D8D9D10B11D12C13C14A15A16B17C18A19B20D21D22D23A24B25B26A27D28D29B30D31D32C33C34A35D36C37A38A39B40C41B42B43A44D45B46B47A48C49D50D51D52D53

14、A54C55C56B57D58C59C60D二、填空题1可移植性2输出结果3歧义性4判定树5形式语言6顺序 选择 循环7程序占用的存储空间8数据9机器10编码11最后12对象13询问14副作用15复杂度16确认17宽度优先策略18机器19菜单20实例化21窗口22减少23三24改正25机器26父类27循环28错误29白盒30难易31面向维护32自底向上或相反顺序33软件概要设计三、判断题1错2错3对四、名词解释1指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。或(不同的对象,收到同一消息可以产生不同的结果。)2具有相似或相同性质的对象的抽象就是类。3对象是客观实体在问题域中的抽

15、象。4程序的可移植性指把一个软件(或程序)从一个计算机环境移植到另一个计算机环境的容易程度。5系统流程图是描绘物理系统的工具,它用图形符号来表示系统中的各元素。它表达了系统中各个元素之间的信息流动的情况。6集成测试也称组装测试或联合测试。是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统进行的测试。组装模块的方式有两种:渐增式测试和非渐增式测试。五、简答题1结构冗余:包括静态冗余、动态冗余和混合冗余。信息冗余:为检测或纠正信息在运算或传输中的错误,须外加一部分信息。时间冗余:指重复执行指令或程序来消除瞬时错误带来的影响。冗余附加技术:指为实现上述冗余技术所需的资源和技术。2软件

16、测试是(1)为了发现错误而执行程序的过程;(2)一个好的用例能够发现至今尚未发现的错误的测试。(3)一个成功的测试是发现至今尚未发现的错误的测试。3就程序设计语言的工程特性而言,对程序编码有如下要求:(1)可移植性(2)开发工具的可利用性(3)软件的可重用性(4)可维护性4软件测试的目的是为了发现程序中的错误而执行程序的过程。正确认识测试的目标是十分重要的,测试目标决定了测试力案的设计。如果为了表明程序是正确的而进行测试,就会设计一些不易暴露错误的测试方案;相反,如果测试是为了发现程序中的错误,就会力求设计出最能暴露错误的测试方案。由于测试的目标是暴露程序中的错误,从心理学角度看,由程序的编写

17、者自己进行测试是不恰当的。5编码风格又称程序设计风格或编程风格。编码的目标从强调效率转变为强调清晰。良好的编码风格能在一定程度上弥补语言存在的缺陷,而如果不注意风格就很难写出高质量的程序。尤其当多个程序员合作编写一个很大的程序时,需要强凋良好而一致的编码风格,以便相互通讯,减少因不协调而引起的问题。总之,良好的编码风格有助于编写出可靠而又容易维护的程序,编码的风格在很大程度上决定着程序的质量。6程序设计语言具有一致性、二义性、紧致性、局部性等特点。7(1)机器语言、汇编语言:依赖于机器,面向机器 (2)高级语言:独立于机器,面向过程或面向对象(3)面向问题语言:独立于机器,非过程式语言(4GL

18、)8(1)节简化(2)模块化(3)简单化(4)文档化9(1)系统错误 (2)加工错误(算法错误)(3)数据错误 (4)代码错误10静态测试是采用人工检测和计算机辅助静态分析的方法对程序进行检测。11动态测试是指事先设计好一组测试用例,然后通过运行程序来发现错误。12单元测试、集成测试、验收测试、系统测试13(1)编写易于修改和维护的代码(2)编写易于测试的代码(3)编写详细的程序文档(4)编程中采用统一的标准和约定,降低程序的复杂性(5)分离功能独立的代码块形成新的模块14根据程序的输入特性,将程序的定义域划分为有限个等价区段“等价类”,从等价类中选择出的用例具有“代表性”,即测试某个等价类的

19、代表值就等价于对这一类其他值的测试。如果某个等价类的一个输入数据(代表值)测试中查出了错误,说明该类中其他测试用例也会有错误。15软件复用是将已有的软件成分用于构造新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。复用的软件成分称为可复用构件(Reusable Component),从旧软件中提取,也可以专门为复用而开发。面向对象方法之所以特别有利于软件复用,是由于它的主要概念及原则与软件复用的要求十分吻合。支持复用的OO 概念与原则是:对象与类、抽象、封装、继承与一般特殊结构、整合与整体部分结构、粒度控制、多态性。对象与类:OO 方法用对象描述问题域中的事务,并用类作为同

20、种对象的抽象表示。类是系统的基本构成单位,它符合可复用构件所应具备的那些特性:完整性、独立性、可标识性、一般性、抽象、封装:尤其是OO 方法的对象封装性,为软件复用技术提供了良好的条件。16(1)对象模型:表示了静态的结构化的系统数据性质,描绘了系统的静态结构,从客观世界实体的对象关系角度来描绘对象。(2)动态模型:该模型描述了系统的控制结构,它表示了瞬间的、行为化的系统控制性质,它关心的是系统的控制及操作的执行顺序,它从对象的事件和状态的角度出发,表现了对象的相互行为。(3)功能模型:描述了系统的所有计算。指出发生的时间、事件和客体。17(1)提高软件开发过程的能见度;(2)提高开发效率;(3)作为开发人员阶段工作成果和结束标志;(4)记录开发过程的有关信息便于使用与维护;(5)提供软件运行、维护和培训有关资料;(6)便于用户了解软件功能、性能。18(1)建立明确的软件质量目标(2)利用先进的软件开发技术和工具(3)建立明确的质量保证工作(4)选择可维护的程序设计语言(5)改进程序文档六、理论应用题1PDL语言:N=1WHILE N=10 DOIF A(N)1,y=0,x=2,z1,通过路径abcde); x=1,y=1,z=1(覆盖x1,y0,x2,z1,通过路径ace)。9Pgnfq循环WHILE qq循

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论