软件工程导论简答题
软件工程导论(第六版)部分课后习题-答案

软件工程导论(第六版)部分课后习题-答案软件工程导论(第六版)部分课后习题-答案一、选择题1. 答案:B解析:选择题解析2. 答案:A解析:选择题解析二、判断题1. 答案:对解析:判断题解析2. 答案:错解析:判断题解析三、填空题1. 答案:软件工程解析:填空题解析2. 答案:开发、维护解析:填空题解析四、简答题1. 答案:软件需求分析是软件工程的第一步,它主要是通过对用户需求的调查和分析,确定软件系统需要具备的功能和性能以及相关约束条件。
解析:简答题解析2. 答案:软件开发过程中的质量保证主要包括软件测试和代码评审两个方面。
软件测试是通过运行和验证软件系统的过程,以确定其是否满足预期的需求和标准。
代码评审则是对软件代码进行审查和评估,在开发过程中发现和修复潜在的问题和错误。
解析:简答题解析五、计算题1. 答案:20解析:计算题解析2. 答案:1000解析:计算题解析六、案例分析题1. 答案:软件项目管理是指对软件项目进行规划、组织、分配和控制的过程。
它包括项目范围管理、时间管理、成本管理、质量管理、风险管理等方面。
在一个项目中,软件项目经理负责整体的项目管理工作,包括资源的分配、进度的控制、风险的管理等。
解析:案例分析题解析2. 答案:敏捷开发是一种迭代、逐步增量的软件开发方法。
它强调快速、灵活地响应用户需求的变化,通过频繁的迭代和持续的反馈来逐步完善软件系统。
敏捷开发方法注重团队合作、交流和高效的沟通,通过直接面对面的沟通取代冗长的文档和繁琐的流程,提高软件开发的效率和质量。
解析:案例分析题解析总结:本文主要针对《软件工程导论(第六版)》部分课后习题提供了答案和解析。
其中包括选择题、判断题、填空题、简答题、计算题和案例分析题等多个题型。
通过解答这些习题,读者可以进一步加深对软件工程的理解和掌握。
希望本文对读者有所帮助,谢谢阅读。
软件工程导论简答题整理版

第一章4.什么是软件工程?它与软件工程方法学有何关系?软件过程是为了开发高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
软件过程定义了运用技术方法的顺序,应该交付的文档资料,为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。
软件过程是软件工程方法学的3个重要组成部分之一。
7.假设要求你开发一个软件,该软件的功能是把读入的浮点数开平方,所得到的结果应该精确到小数点后4位。
一旦实现并测试完之后,该产品将被抛弃。
你打算选用哪种软件生命周期模型?请说明你作出选择的理由。
答:对这个软件的需求很明确,实现开平方功能的算法也很成熟,因此,既无须通过原型来分析需求也无须用原型来验证设计方案。
此外,一旦实现并测试完之后,该产品将被抛弃,因此也无须使用有助于提高软件可维护性的增量模型或螺旋模型来开发该软件。
第三章一列火车最多有两个火车头。
只有一个火车头时则位于列车最前面,若还有第二个火车头时,则第二个火车头位于列车最后面。
火车头既可能是内燃机车也可能是电器机车。
车厢分为硬座车厢、硬卧车厢和软卧车厢等3种。
硬座车厢在所有车厢的前面部分,软卧车厢在所有车厢的后面部分。
此外,在硬卧车厢和软卧车厢之间还有一节餐车。
答:jackson图善于描绘复杂事物的组成。
用jackson图描绘一列火车的构成的方法至少有两种,一种方法是把火车分为一个车头和两个车头两类,另一种方法是把后车头作为可选的。
图3.29给出了描绘一列火车的构成的jackson图。
用Jackson 图描绘一列火车的构成第四章3.假设有一个由5000行FORTRAN语句构成的程序(经编译后大约有25000条机器指令),你估计在对它进行测试期间将发生多少个错误?为什么?答:经验表明,在类似的程序中,单位长度里的错误数Er/Ir近似为常数。
美国的一些统计数字告诉我们,通常0.5ⅹ10-2 <= Er/Ir <= 2ⅹ10-2也就是说,在测试之前每1000条指令中大约有5-20个错误.假设在该程序的每1000条指令中大约有10个错误,则估计在对它进行测试期间将发现的错误数为25000ⅹ10/1000=250第五章3、某软件公司拟采取下述措施提高他们开发出的软件产品的可维护性。
(完整版)软件工程导论试题(整理)

单项选择题(每小题1分,共10分)1、在结构性的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标( A )(A)需求分析阶段(B)详细设计阶段(C)概要设计阶段(D)可行性2、研究阶段软件工程方法中普遍定义的方法之一是结构化生命周期方法(SLC方法),下述哪一个论述不具有SLC方法的主要特征( C )A 严格定义需求B 划分开发阶段C 规范文档格式D 分析控制流程3、软件结构中两个模块之间有调用关系,传递简单数据值,相当于高级语言中的值传递,这两个模块之间的耦合是( D )(A)公共耦合(B)控制耦合(C)标记耦合(D)数据耦合4、软件维护的四类维护活动是( A )(A)改正性维护,适应性维护,完善性维护和预防性维护。
(B)适应性维护,完善性维护,抢救性维护和辅助性维护。
(C)改正性维护,适应性维护,完善性维护和辅助性维护。
(D)适应性维护,完善性维护,抢救性维护和预防性维护。
5、主要从( A )几个方面进行系统可行性研究。
(A)技术可行性,经济可行性,操作可行性。
(B)技术可行性,经济可行性,系统可行性。
(C)经济可行性,系统可行性,操作可行性。
(D)经济可行性,系统可行性,时间可行性。
6、进行需求分析可使用多种工具,但( C )是不适用的。
(A)数据流图(B)判定表(C)PAD图(D)数据字典7、软件需求分析阶段的工作,可以分为四个方面:对问题的识别、分析与综合、编写需求分析文档以及( B )(A)软件的总结(B)需求分析评审(C)阶段性报告(D)以上答案都不对8、OMT(Object Modelling Technique)方法的第一步是从问题的陈述入手,构造系统模型。
系统模型由对象模型、( C )组成。
A静态模型和功能模型 B动态模型和过程模型C动态模型和功能模型 D静态模型和操作模型9、为了表示项目管理功能工作中各项任务之间的进度衔接关系,常用的计划管理工具是( D )(A)程序结构图(B)数据流图(C) E-R图(D)甘特(Gantt)图①软件生命周期中所花费用最多的阶段是(D)A.详细设计B.软件编码C.软件测试D.软件维护②可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出(B)的回答。
软件工程导论《软件工程》期末考试题及答案

软件工程导论《软件工程》期末考试题及答案一、选择题(每题2分,共20分)1. 下列哪项不是软件工程的基本目标?A. 提高软件的生产率B. 提高软件的可维护性C. 提高软件的性能D. 降低软件的开发成本答案:C2. 下列哪种方法不属于软件需求分析的方法?A. 数据流图(DFD)B. 实体-关系图(ER图)C. 状态转换图D. Petri网答案:D3. 软件设计中,模块的内聚性越高,表明模块的:A. 功能越单一B. 独立性越强C. 复用性越低D. 可维护性越低答案:A4. 在软件测试阶段,下列哪种测试方法不属于黑盒测试?A. 等价类划分B. 边界值分析C. 代码覆盖率分析D. 逻辑覆盖分析答案:D5. 软件项目管理中,项目经理的主要职责不包括以下哪项?A. 制定项目计划B. 管理项目进度C. 组织项目团队D. 编写代码答案:D二、填空题(每题2分,共20分)6. 软件生命周期可以分为______、需求分析、设计、编码、测试、维护等阶段。
答案:需求调研7. 软件工程的三要素是______、过程、方法。
答案:工具8. 在软件设计中,模块的独立性包括______和耦合性两个方面。
答案:内聚性9. 软件测试的目的不包括______。
答案:发现并修复所有错误10. 软件项目管理的主要目标是实现项目的______、质量和成本控制。
答案:进度三、简答题(每题10分,共30分)11. 简述软件工程的基本原则。
答案:软件工程的基本原则包括:(1)抽象:将复杂问题分解为更简单的子问题;(2)分解:将问题分解为多个部分,分别解决;(3)模块化:将软件划分为独立的模块,提高可维护性和复用性;(4)信息隐藏:隐藏模块内部的信息,只暴露必要的接口;(5)一致性:保持软件各部分的一致性,提高可读性;(6)可维护性:使软件易于修改和维护。
12. 简述软件需求分析的目的和任务。
答案:软件需求分析的目的在于明确用户对软件系统的功能、性能等方面的需求。
2023软件工程导论期末考试题库及参考答案

2023软件工程导论期末考试题库及参考答案一、选择题(每题2分,共20分)1. 以下哪个不是软件工程的三个基本目标?A. 可维护性B. 可用性C. 可靠性D. 高效性参考答案:D2. 软件生命周期中,以下哪个阶段是软件开发过程的核心阶段?A. 需求分析B. 设计C. 编码D. 测试参考答案:C3. 以下哪种编程范式主要用于降低软件复杂性?A. 面向对象编程B. 过程式编程C. 函数式编程D. 逻辑编程参考答案:A4. 在软件工程中,以下哪个方法用于估算软件项目的成本和进度?A. COCOMOB. WBSC. SDLCD. CASE参考答案:A5. 以下哪个是软件工程中的一个重要原则?A. 分而治之B. 一次性编写C. 重用D. 模块化参考答案:D6. 以下哪个不是软件工程的基本活动?A. 软件规格B. 软件开发C. 软件验证D. 软件测试参考答案:C7. 以下哪个是软件工程中用于提高软件质量的技术?A. 设计模式B. 重构C. 代码审查D. 单元测试参考答案:C8. 以下哪个不是软件工程的五大基本过程?A. 软件规格B. 软件开发C. 软件维护D. 软件项目管理参考答案:D9. 以下哪个是软件工程中的一个重要概念,用于描述软件系统中的各个组件之间的关系?A. 耦合B. 内聚C. 模块化D. 重用参考答案:A10. 以下哪个是软件工程中的一个重要原则,用于指导软件开发过程?A. 迭代B. 增量C.螺旋D. 模型驱动参考答案:A二、填空题(每题2分,共20分)11. 软件工程的三要素是:方法、工具和______。
参考答案:过程12. 软件生命周期包括:需求分析、设计、编码、______和软件维护。
参考答案:测试13. 软件工程中的面向对象方法包括:封装、继承和______。
参考答案:多态14. 软件工程中的 CASE 工具主要用于支持______。
参考答案:软件设计和开发15. 软件工程中的敏捷开发方法强调______、可维护性和可扩展性。
《软件工程导论》试题及答案

《软件工程导论》试题及答案软件工程导论试题及答案一、选择题1. 软件工程是一门多学科交叉的学科,其中包括以下哪些学科?A. 计算机科学B. 电子工程C. 数学D. 管理学E. 心理学答案:A、B、C、D2. 软件工程的目标是什么?A. 提高软件开发效率B. 提高软件质量C. 提高软件可靠性D. 提高软件维护性E. 提高软件安全性答案:A、B、C、D、E3. 软件过程模型是指软件开发过程中的一种抽象表示方法,常用的软件过程模型有哪些?A. 瀑布模型B. 增量模型C. 螺旋模型D. 敏捷模型E. 喷泉模型答案:A、B、C、D4. 以下哪个开发方式可以在软件开发过程中提供更多的灵活性和快速反馈?A. 瀑布模型B. 增量模型C. 螺旋模型D. 敏捷模型答案:D5. 软件需求分析的主要任务是什么?A. 确定软件的功能和性能需求B. 定义软件系统的架构C. 设计软件的用户界面D. 实施软件测试答案:A二、填空题1. 软件工程的核心目标是提高软件的 ______ 和 ______ 。
答案:质量、可靠性2. 软件工程中的四个基本活动是需求分析、设计、 ______ 和______ 。
答案:实现、维护3. 瀑布模型的五个阶段依次是:需求分析、设计、编码、 ______ 和 ______ 。
答案:测试、维护4. “快速原型”开发模型注重 ______ 。
答案:用户参与5. 敏捷开发模型的核心原则是 ______ 。
答案:迭代开发三、简答题1. 请简要说明为什么软件工程是一门多学科交叉的学科?答:软件工程在开发软件的过程中需要结合计算机科学的知识来实现软件的功能,同时也需要借鉴电子工程的设计思想来构建软件系统的架构。
此外,软件工程还应用了数学方法来进行软件需求分析和软件质量保证,同时也需要管理学的知识来进行项目管理和团队协作。
2. 请简述螺旋模型在软件开发过程中的应用场景。
答:螺旋模型适用于大型复杂项目或对安全性要求较高的项目。
软件工程导论复习题含答案

软件工程习题集第1章概述(一)单项选择题1.“软件危机”产生的主要原因是( A )。
A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件2. 软件是一种( B )性工业产品。
A. 理论B. 知识(或逻辑)C. 消耗D. 体力3. 需求分析是在( B )进行的。
A. 用户B. 用户和分析设计人员之间C. 开发人员内部D. 使用和维护人员间4. 软件的主要结构和功能是在( A )阶段决定的。
A. 分析设计B. 编程C. 测试D. 维护5.软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是( D )。
A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档6.在软件工程时期,决定软件质量的主要因素是( A )A.管理水平 B.个人程序技术 C.小组技术水平 D.硬件的发展7. 在软件开发模型中,提出最早、应用最广泛的模型是( A )。
A. 瀑布模型B. 喷泉模型C. 增量模型D. 螺旋模型8.瀑布模型把软件生存周期划分为软件定义、软件开发与( C )三个阶段,而每一阶段又可分为若干更小的阶段。
A. 详细设计B. 可行性分析C. 运行及维护D. 测试与排错9. 计算机辅助软件工程,简称( D )。
A. SAB. SDC. SCD. CASE10. 软件危机是软件产业化过程中出现的一种现象,下述现象中:( C )是其主要表现。
①软件需要增长难以满足。
②软件开发成本提高。
③软件开发进度难以控制。
④软件质量不易保证。
A. ③和④B. ③和④C. 全部D. ①、②和③11 软件工程的出现主要是由于( C )。
A. 程序设计方法学的影响B. 其他工程科学影响C. 软件危机的出现D. 计算机的发展12、软件生成周期模型有多种,下列选项中,( C )不是软件生存周期模型。
A.螺旋模型B.增量模型C.功能模型D.瀑布模型(二)简答题1. 软件产品的特点是什么?2. 软件生产的发展经历了哪几个时代?各有何特征?3. 软件危机的概念、表现形式、产生原因、解决途径4. 简述主要的软件生存期模型(或软件开发模型)。
软件工程概论简答题

软件工程概论简答题1. 什么是软件工程?它的主要目标是什么?软件工程是一门以工程化的方式开发、部署和维护软件系统的学科。
它涉及应用系统性方法、工具和技术,以提高软件产品和过程的质量、可靠性和效率。
软件工程的主要目标包括:- 提高软件产品的质量- 提高软件开发过程的效率- 降低软件开发与维护的成本- 保证软件系统的可靠性和安全性- 提供可维护性和可扩展性的软件系统2. 什么是软件工程的生命周期?它包括哪些阶段?软件工程的生命周期是指软件项目从定义需求到投放使用的整个过程。
它涵盖了以下主要阶段:1) 需求分析阶段:确定软件系统的需求和功能,并与用户进行沟通与协商。
2) 设计阶段:基于需求分析的结果,定义软件系统的架构、模块划分以及数据结构和算法等细节。
3) 编码阶段:根据设计结果,进行编码和测试,实现软件系统的各个模块和功能。
4) 集成和测试阶段:将开发的各个模块进行集成,进行整体功能和性能测试。
5) 部署阶段:将软件系统部署到实际的运行环境中,进行用户培训和技术支持。
6) 维护阶段:对软件系统进行维护和升级,修复bug、增加新功能,并解决用户反馈的问题。
3. 简述软件需求工程的主要任务和挑战。
软件需求工程是软件工程中非常重要的一个环节,主要任务包括:1) 需求获取:通过访谈、调研、文档分析等方法,与用户和利益相关者沟通与交流,准确获取软件系统的需求。
2) 需求分析:对获取的需求进行分析、整理和归纳,抽象出软件系统的功能和约束条件,形成一份需求规范文档。
3) 需求确认:与用户确认需求规范文档,确保所提供的需求与用户的期望一致。
4) 需求管理:对需求进行变更管理、跟踪和控制,确保软件系统在开发过程中的需求改变得到合理处理。
软件需求工程面临一些挑战,例如:- 需求不完整、不清晰或不准确,需要通过与用户的深入交流来解决。
- 用户需求的不稳定性和不一致性,使得需求工程师需要与用户持续沟通,及时调整需求规范。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.软件工程的七条基本原理是什么?答:软件工程的七条基本原理是:用分阶段的是的生存周期计划严格管理;坚持进行阶段评审;严格实施的产品控制;采用现代程序技术;结果应能清楚地审查;开发小组的成员应该少而精;承认不断改进软件工程的必要性。
2.良好的编码风格应具备哪些条件?答:应具备以下条件:(1)使用标准的控制结构;(2)有限制地使用GOTO语句;(3)源程序的文档化(应具备以下内容)①有意义的变量名称——“匈牙利命名规则”。
②适当的注释——“注释规范”。
③标准的书写格式:——用分层缩进的写法显示嵌套结构的层次(锯齿形风格);——在注释段的周围加上边框;——在注释段与程序段、以及不同程序段之间插入空行;——每行只写一条语句;——书写表达式时,适当使用空格或圆括号等作隔离符。
(4)满足运行工程学的输入输出风格。
3.简述文档在软件工程中的作用。
答:(1)提高软件开发过程的能见度(2)提高开发效率(3)作为开发人员阶段工作成果和结束标志(4)记录开发过程的有关信息便于使用与维护;(5)提供软件运行、维护和培训有关资料;(6)便于用户了解软件功能、性能。
4.可行性研究包括哪几方面的内容?答:(1)经济可行性:是否有经济效益,多长时间可以收回成本;(2)技术可行性:现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满足;(3)运行可行性:系统操作在用户内部行得通吗?(4)法律可行性:新系统开发是否会侵犯他人、集体或国家利益,是否违反国家法律。
5.结构化的需求分析描述工具有哪些?答:有数据流图(DFD)、数据字典(DD)、判定表、判定树、结构化语言(PDL)、层次方框图、Warnier图、IPO图、控制流图(CFD)、控制说明(CSPEC)、状态转换图(STD)和实体—关系图(E—R)等。
6.一般面向对象分析建模的工具(图形)有哪些?答:用例图、类/对象图、对象关系图、实体—关系图(E—R)、事件轨迹图(时序图)和状态转换图(STD)等7.UML统一建模语言有哪几种图形?用例图、类图、对象图、构件(组件)图、部署(配置)图、状态图、活动图、顺序(时序)图、合作(协作)图等九种图。
8.在面向对象分析时类和对象的静态关系主要有哪几种?答:类和对象的静态关系主要有关联、聚集、泛化、依赖等四种关系。
9.什么是模块化?模块设计的准则?模块化是按规定的原则将一个大型软件划分为一个个较小的、相对独立但又相关的模块。
模块设计的准则:(1)改进软件结构,提高模块独立性:在对初步模块进行合并、分解和移动的分析、精化过程中力求提高模块的内聚,降低藕合。
(2)模块大小要适中:大约50行语句的代码,过大的模块应分解以提高理解性和可维护性;过小的模块,合并到上级模块中。
(3)软件结构图的深度、宽度、扇入和扇出要适当。
一般模块的调用个数不要超过5个。
(4)尽量降低模块接口的复杂程度;(5)设计单入口、单出口的模块。
(6)模块的作用域应在控制域之内。
10.什么是模块独立性?用什么度量?答:模块独立性概括了把软件划分为模块时要遵守的准则,也是判断模块构造是不是合理的标准。
独立性可以从两个方面来度量:即模块本身的内聚和模块之间的耦合。
11.变换型数据流由哪几部分组成?变换型结构由三部分组成:传入路径、变换(加工)中心和传出路径。
12.变换分析设计的步骤?(1)区分传入、传出和变换中心三部分,划分DFD图的分界线;(2)完成第一级分解:建立初始SC图的框架;(3)完成第二级分解:分解SC图的各个分支;(4)对初始结构图按照设计准则进行精化与改进。
13.事务型数据流由哪几部分组成?事务型结构由至少一条接受路径、一个事务中心与若干条动作路径组成。
14.事务分析设计的步骤?(1)在DFD图中确定事务中心、接收部分(包含全部接收路径)和发送部分(包含全部动作路径);(2)画出SC图框架,把DFD图的三部分,分别映射"为事务控制模块,接收模块和动作发送模块.一般得到SC图的顶层和第一层(如果第一层简单可以并入顶层);(3)分解和细化接收分支和动作分支,完成初始的SC图;(4)对初始结构图按照设计准则进行精化与改进。
15.数据字典包括哪些内容?数据字典是描述数据流图中数据的信息的集合。
它对数据流图上每一个成分:数据项、文件(数据结构)、数据流、数据存储、加工和外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成。
18.什么是软件生存周期?把生存周期划分为阶段的目的是什么?答:一个软件从开始计划起,到废弃不用止,成为软件的生存周期。
把整个生存周期划分为较小的阶段,给每个阶段赋予确定而有限的任务,能够简化每一步的工作内容,使因为软件规模增长而大大增加了的软件复杂性变得较易控制和管理。
19.详细设计的目的?为软件结构图(SC图或HC图)中的每一个模块确定采用的算法和块内数据结构,用某种选定的表达工具给出清晰的描述.20.详细设计的任务是什么?为每个模块确定采用的算法;确定每一模块使用的数据结构;确定模块接口的细节;编写过程设计说明书;设计每一模块的测试用例。
21.编码的任务?使用选定的程序设计语言,把模块的过程性描述翻译为用语言书写的源程序(源代码)。
22.软件测试的基本任务?软件测试是按照特定的规则,发现软件错误的过程;好的测试方案是尽可能发现迄今尚未发现错误的测试;成功的测试方案是发现迄今尚未发现错误的测试;23.什么是黑盒测试?黑盒测试主要采用的技术有哪些?黑盒测试也称为功能测试,它着眼于程序的外部特征,而不考虑程序的内部逻辑结构。
测试者把被测程序看成一个黑盒,不用关心程序的内部结构。
黑盒测试是在程序接口处进行测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
黑盒测试主要采用的技术有:等价分类法、边界值分析法、错误推测法和因果图等技术。
24.什么是白盒测试?白盒测试主要采用的技术有哪些?白盒测试是测试者了解被测程序的内部结构和处理过程,对程序的所有逻辑路径进行测试,在不同点检查程序状态,确定实际状态与预期状态是否一致。
白盒测试主要采用的技术有:路径测试技术和事务处理流程技术,对包含有大量逻辑判断或条件组合的程序采用基于逻辑的测试技术。
25.路径测试技术中几种主要覆盖的含义?举例说明?语句覆盖:至少执行程序中所有语句一次。
判定覆盖:使被测程序中的每一个分支至少执行一次。
故也称为分支覆盖。
条件覆盖:执行所有可能的穿过程序的控制路流程。
条件组合测试:设计足够的测试用例,使每个判定中的所有可能条件取值组合至少执行一次。
(例略)26.等价分类法的测试技术采用的一般方法?举例说明?(1)为每个等价类编号;(2)设计一个新的测试方案,以尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步骤,直到所有有效等价类被覆盖为止。
(3)设计一个新的测试方案,使它覆盖一个尚未被覆盖的无效等价类,重复这一步骤,直到所有无效等价类被覆盖为止。
29.为什么说软件的维护是不可避免的?因为软件的开发过程中,一般很难检测到所有的错误,其次软件在应用过程中需要随用户新的要求或运行环境的变化而进行软件的修改或完成功能的增删等,为了提高软件的应用水平和使用寿命,软件的维护是不可避免的。
30.软件的维护一般分为哪几类?完善性维护:满足用户在使用过程中提出增加新的功能或修改已有功能,以满足用户日益增长的需要而进行的工作;适应性维护:是软件适应新的运行环境而进行的工作;纠错性维护:纠正开发期间未发现的遗留错误,即在程序使用期间发现的程序错误进行诊断和改正的过程;预防性维护:为了改善未来的可维护性或可靠性而修改软件的工作。
31.决定软件可维护性的因素?(1)软件的可理解性、可测试性、可修改性;(2)文档描述符合要求、用户文档简洁明确、系统文档完整并且标准。
32.分析软件危机产生的主要原因有哪些?答:导致软件危机的主要原因有:(1)软件日益复杂和庞大(2)软件开发管理困难和复杂(3)软件开发技术落后(4)生产方式落后(5)开发工具落后(6)软件开发费用不断增加1个要点1分,只要答上5个要点得5分!33.说明结构化程序设计的主要思想是什么?答:(1)自顶向下、逐步求精的程序设计方法(2分)(2)使用3种基本控制结构、单入口、单出口来构造程序。
(3分)34、软件测试的基本任务是什么?测试与纠错有什么区别?答:软件测试的基本任务是通过在计算机上执行程序,暴露程序中潜在的错误。
测试和纠错目的和任务都不相同,测试是为了发现程序的错误,纠错是为了定位和纠正错误,从而消除软件故障,保证程序的可靠运行。
35.软件测试包括哪些步骤?同时说明这些步骤的测试目的是什么?答:(1)单元测试,目的是代码达到模块说明书的要求(2)集成测试,目的是将经过单元测试的模块逐步组装成具有良好一致性的完整的程序(3)确认测试,目的是确认程序系统是否满足软件需求规格说明书的要求(4)系统测试,目的是检查能否与系统的其余部分协调运行,并且完成SRS对他的要求。
36.需求分析与软件设计二个阶段任务的主要区别是什么?答:需求分析定义软件的用户需求,即定义待开发软件能做什么(2.5分)软件设计定义软件的实现细节以满足用户需求,即研究如何实现软件。
(2.5分)37.说明软件测试和调试的目的有何区别?答:测试的目的是判断和发现软件是否有错误(2。
5分)调试的目的是定位软件错误并纠43、什么是软件复用?简述软件复用和软件共享、软件移植的差别。
答:软件复用是指在构造新的软件系统的过程中,对已存在的软件人工制品的使用技术。
如果是在一个系统中多次使用一个相同的软件成分,这叫软件共享;对一个软件进行修改,使它能运行于新的软、硬件平台这称作软件移植。
44、什么是软件再工程?软件再工程的主要活动有哪些?答:软件再工程是运用逆向工程、重构等技术,在充分理解原有软件的基础上,进行分解、综合,并重新构建软件,用以提高软件的可理解性、可维护性、可复用性或演化性。
主要活动:信息库分析、文档重构、逆向工程、代码重构、数据重构、正向工程。
四、简答题每小题5分,共20分。
36.简述容错技术的四种主要手段,并解释。
结构冗余:包括静态冗余、动态冗余和混合冗余。
信息冗余:为检测或纠正信息在运算或传输中的错误,须外加一部分信息。
时间冗余:指重复执行指令或程序来消除瞬时错误带来的影响。
冗余附加技术:指为实现上述冗余技术所需的资源和技术。
37.以G.J.Myers的观点,简述对软件测试的目的。
软件测试是(1)为了发现错误而执行程序的过程;(2)一个好的用例能够发现至今尚未发现的错误的测试。
(3)一个成功的测试是发现至今尚未发现的错误的测试。