第2章软件工程t

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

9第2章软件工程2.1软件工程的基本概念一、课后部分习题答案2-1“软件危机”有哪些特征?是有什么原因导致的?答:“软件危机”的主要特征是:(1)软件不符合用户的实际需要。(2)软件价格昂贵。(3)软件开发项目超支和延期。(4)软件质量低,可靠性差。(5)软件缺少适当的文档资料。(6)难于修改和维护软件。导致“软件危机”的原因:(1)软件本身是逻辑部件,是无形的产品,看不见摸不着,质量往往难以评价,潜在的错误在所难免,并且质量检测非常复杂,往往不能在交付使用之前检查出所有错误。(2)软件规模越来越大,软件结构越来越复杂。(3)忽视需求分析的重要性,急于开始编程,往往造成开发出来的软件不能满自用户的要求而导致返工甚至作废。(4)轻视软件测试和软件维护。(5)软件开发技术落后,生产方式落后,开发工具落后。2.2软件开发过程一、课后部分习题答案2-2软件生命周期为什么将软件开发过程划分几个阶段?答:人类在长期的社会实践中早已学会了“各个击破”的思想来解决复杂问题,大型复杂软件的开发也不例外。根据这一思想,我们可以把软件开发过程的基本活动进一步展开,将软件开发过程分解为三个时期:软件定义、软件开发、软件维护。然后进一步将每一时期分为几个阶段:软件定义时期包含软件系统的可行性分析、需求分析等阶段,软件开发时期包含总体设计、详细设计、实现、测试等阶段,软件维护时期包含软件的使用、修改维护、退役等阶段。2-4简述软件生命周期的瀑布模型与原型模型的优缺点。答:瀑布模型:优点:有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究与使用,从而提高了大型软件项目开发的质量和效率。缺点:(1)在软件开发的初始阶段指明软件系统的全部需求是困难的,有时甚至是不现实的。而瀑布模型在需求分析阶段要求用户和系统分析员必须做到这一点才能开展后续阶段的工作。(2)需求确定后,用户和软件项目负责人要等相当长的时间才能得到一份软件的最初版本。如果用户对这个软件提出比较大的修改意见,那么整个软件项目将会蒙受巨大的人力、财力和时间方面的损失。原型模型:10优点:采用主动的、正常的迭代避免了瀑布模型被迫的、不正常的返工,因而可以降低总的开发费用和开发时间,并且使系统更易于维护、对用户更友好。缺点:存在迭代可能不收敛于开发者预定目标,资源规划和管理较为困难以及更新文档麻烦等不足。2-5什么是模块的内聚和耦合?为什么要遵循“高内聚低耦合”原则?答:内聚:模块内部各个元素彼此结合的紧密程度的度量。耦合:软件结构中各个模块之间相互关联程度的度量。为提高模块的独立性,要尽量遵循“高内聚低耦合”原则。2-6信息隐藏和局部化有什么好处?答:信息隐蔽可以提高软件的可维护性,而且也可以避免错误的蔓延,改善软件的可靠性。局部化是指把一些关系密切的软件元素尽可能放在一起。当需要理解或修改某个软件元素时,可以把修改所产生的影响局限在较小的范围。二、部分例题题及解题思路1.软件原型化开发方法有其基本步骤,下列()是实施原型化的最基本步骤?a.获得基本需求b.开发工作模型c.严格仔细说明d.模型验证A、全部都是B、a,b和dC、dD、a和b答案:B2.对软件进行分解,是为了()A、降低模块的复杂程度B、降低模块间接口的复杂程度C、降低模块的复杂程度,并降低模块间接口的复杂程度D、降低模块的复杂程度,并提高模块间接口的复杂程度答案:A模块化的目的是为了降低软件的复杂性。对软件进行适当的分解,不但可以降低复杂性,而且可减少开发工作量,从而降低软件开发成本,提高软件生产率。但是,划分模块并不是越多越好,因为这会增加模块之间接口的工作量,所以划分模块的层次和数量应该避免过多或过少。3.下列关于瀑布模型不正确的是()。A、瀑布模型上一阶段的变换结果是下一阶段的输入B、瀑布模型每个阶段都不需要反馈C、瀑布模型提供了软件开发的基本框架D、瀑布模型存在局限性答案:B瀑布模型从可行性分析(或称系统分析)开始,逐步进行设计、编码等阶段性变换,直至通过确认测试并得到用户确认的软件产品进入运行维护阶段为止。瀑布模型上一阶段的变换结果是下一阶段变换的输入,相邻两个阶段具有因果关系,紧密相联。为了保障软件开发的正确性,每一阶段任务完成后,都必须对它的阶段性产品进行评审,确认之后再转入下一阶段的工作。若在评审过程发现错误和疏漏,则应该反馈到前面的有关阶段修正错误、弥补疏漏,直至该阶段通过评审后再进入下一阶段。一个阶段工作的失误将蔓延到以后的各个阶段,发现失误的时机越迟,解决的代价就越大。因此,瀑布模型只允许局部的返工,11决不允许有大规模的返工。4.信息隐蔽概念与()这一概念直接的相关。A、模块的独立性B、模块类型的划分C、软件结构定义D、软件生命周期答案:A模块独立性是软件质量的关键特征,是模块化、信息隐藏和局部化等原则的直接产物。2.3系统定义一、部分例题题及解题思路1.结构化分析(SA)是软件开发需求分析阶段所使用的方法,()不是SA所使用的工具。A.DFD图B.PAD图C.结构化语言D.判定表答案:BPAD图是详细设计阶段所使用的工具。2.结构化分析方法以数据流图、()和加工说明等描述工具,即用直观的图和简洁语言来描述软件系统模型。A.DFD图B.PAD图C.IPO图D.数据字典答案:DDFD图是数据流图的简称,而IPO图是需求分析使用的图形工具。3.需求分析是()A、软件开发工作的基础B、软件生命周期的开始C、由系统分析员单独完成的D、由用户自己单独完成的答案:A可行性分析是软件生命周期的开始,需求分析是由用户、系统分析员和软件开放人员共同完成的。4.需求分析()A、要回答“软件必须做什么”B、可概括为“理解、分解、表达”六个字C、要求编写需求规格说明书D、A、B、C都对答案:D5.结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的()A、控制流B、数据流C、程序流D、指令流答案:B结构化分析(StructuredAnalysis:SA)方法于20世纪70年代末由E.Yourdon等人提出和发展,是面向数据流进行需求分析的方法。6.SA方法是一种()A、自顶向下逐层分解的分析方法B、自底向上逐层分解的分析方法C、面向对象的分析方法D、A、B、C都不对答案:D结构化分析采用自顶向下逐层分解的分析策略,顶层抽象地描述整个系统,底层具体地描述系统的每个细节,中间层则是从抽象到具体的过渡。7.在结构化方法中,软件功能分解应属于软件开发中的(A)阶段,它最后提供的文档是软件12的(B)。数据流程图(DFD)是用于描述结构化方法中(C)阶段的工具。数据字典(DD)是定义(D)系统描述工具中的数据的工具。判定树和判定表是用于描述结构化分析方法中(E)环节的工具。可供选择的答案A.①详细设计②需求分析③总体设计④编程调试B.①功能说明书②加工说明书③可行性分析报告④结构说明书C.①可行性分析②需求分析③详细设计④程序编码D.①数据流程图②系统流程图③程序流程图④软件结构图E.①功能说明②数据加工③流程描述④结构说明答案:A.③B.①C.②D.①E.②8.数据字典是对数据定义信息的集合,它所定义的对象都包含于()A.数据流图B.程序框图C.软件结构D.方框图答案:A9.在数据流图中,圆代表()A、源点B、终点C、加工D、模块答案:C2.4软件实现一、课后部分习题答案2-7什么是黑盒测试?什么是白盒测试?什么是回归测试?答:黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,针对程序接口进行程序功能的测试。白盒测试的前提是完全了解程序的结构和处理过程,可以按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。回归测试,即重新执行以前做过的全部或部分测试。2-8什么是单元测试?什么是集成测试?什么是验收测试?答:单元测试是针对软件设计的最小单位(程序模块)进行的测试。集成测试是在单元测试的基础上将所有模块按照设计要求组装为完整的系统。验收测试验收测试不是由系统的开发者而是由最终用户实施,实际上是以用户为主,软件开发人员和质量保证人员参加的测试。二、部分例题题及解题思路1.Jackson设计方法是由英国的M.Jackson所提出的。它是一种面向()的软件设计方法。A.对象B.数据流C.数据结构D.控制结构答案:C2.软件设计中,Jackson方法是一种面向数据结构的设计方法,它将数据结构表示为三种基本结构,分别为()A.分支结构、选择结构和控制结构B.顺序结构、选择结构和循环结构13C.顺序结构、分支结构和嵌套结构D.顺序结构、选择结构和重复结构答案:C3.结构化程序流程图中一般包括三种基本结构,下述结构中哪一种不属于其基本结构?()A.顺序结构B.条件结构C.选择结构D.循环结构答案:C4.下面哪个不是详细设计的图形工具()A.N-S图B.HIPO图D.程序流程图D.PAD图答案:BHIPO图是总体设计的图形工具。5.软件测试的目的是()。A、为了表明程序没有错误B、为了说明程序能正确地执行C、为了发现程序中的错误D、为了评价程序的质量答案:C软件测试的目的是找出软件存在的错误,决不是为了证明程序是正确的。6.源程序文档化要求在每个模块之前加序言性注释。该注释内容不应有()。A、模块的功能B、语句的功能C、模块的接口D、开发历史答案:B序言性注释通常安排在每个程序模块的起始部分,是对程序的整体说明,对于理解程序本身具有引导作用。一般包括以下内容:程序或模块的功能方面的说明(程序或模块标题、功能);界面描述(调用形式、输入输出参数的意义、引用的子程序);一些重要变量的使用、限制及其它信息;开发历史(编者及日期、评审者及日期、修改日期)。功能性注释嵌入在源程序体内,用以描述其后的语句或程序段的处理功能。选项B属于功能性注释的内容。7.下面不是黑盒测试方法的是()。A、边界值分析B、路径覆盖C、等价类划分D、错误推测答案:B8.()的前提是完全了解程序的结构和处理过程。A、白盒测试B、黑盒测试C、α测试D、β测试答案:A2.5软件维护一、课后部分习题答案2-9什么是软件的可维护性?软件维护有哪几类?答:软件可维护性是指软件被理解、改正、调整和改进的难易程度。根据引起软件维护的原因,软件维护通常可以分为:改正性维护、适应性维护、完善性维护、预防性维护等。二、部分例题题及解题思路141.为了提高软件的可维护性或可靠性而对软件进行的修改称为()A、改正性维护B、适应性维护C、完善性维护D、预防性维护答案:D为提高软件的可维护性、可靠性等,人们常常需要对软件进行一些适当的改动,这种改动既不是修改错误也不是提高软件效率,而是为了今后进行的软件维护活动,为进一步改进软件打下良好的基础,这就是预防性维护。2.软件维护通常可以分为()A、改正性维护B、适应性维护C、完善性维护D、预防性维护答案:ABCD3.下列文档与维护人员有关的有()。A、软件需求说明书B、项目开发计划C、维护手册D、概要设计说明书答案:C软件维护过程中的文档主要由用户提交的维护申请、软件修改报告、维护过程中保存的维护记录及维护日志、软件维护手册以及对维护的评价结论等。4.在软件生存期的各个阶段中跨越时间最长的阶段是()。A、需求分析阶段B、设计阶段C、测试阶段D、维护阶段答案:D软件维护是软件生命周期中十分重要的一个时期。软件维护活动所花费的工作量占整个软件生命周期工作量的70%以上。5.改动既不是为了修改错误也不是为了提供软件效率,而是为了今后进行软件维护活动,为进一步改进软件打下基础,这是()。A、改正性维护B、适应性维护C、完善性维护D、预防性维护答案:D2.6软件开发管理一、课后部分习题答案2-10软件质量与哪些因素有关?如何保证软件产品的质量?答:ISO/IEC9126软件质量模型的质量特性和质量子特性有下述元素组成:(1)功能性。包括适合性、准确性、互用性、依从性、安全性。(2)可靠性。包括成熟性、容错性、易恢复性。(3)易使用性。包括易理解性、易学性、易操作性。(4)效率。包括时间特

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功