第8章 软件维护
- 格式:doc
- 大小:53.00 KB
- 文档页数:14
软件工程第八章维护第一点:软件维护的定义和重要性软件维护是指在软件发布后对其进行的一系列操作和活动,旨在确保软件系统的持续可用性、可靠性和性能。
软件维护是软件开发生命周期中的一个重要环节,它涉及到对软件进行修正、优化和升级。
软件维护的重要性体现在以下几个方面:1.保障软件质量:软件在实际运行过程中可能会出现各种问题,维护可以帮助及时修复这些问题,保证软件的正常运行。
2.提高用户满意度:通过维护,可以对软件进行功能优化和界面调整,使其更加符合用户的需求,提高用户的使用体验。
3.降低风险:软件维护可以帮助提前发现并解决潜在的风险,避免因软件问题导致的损失。
4.延长软件寿命:通过不断的维护和升级,可以使软件适应不断变化的环境和需求,延长其使用寿命。
5.提高开发效率:良好的维护可以避免因软件问题导致的重复开发,提高开发团队的效率。
第二点:软件维护的类型和策略软件维护可以分为以下几种类型:1.改正性维护:这种维护类型主要是针对软件中存在的问题和错误进行修复,保证软件的正常运行。
2.适应性维护:随着环境的变化和用户需求的变化,软件需要进行相应的调整和优化,以适应新的环境和工作需求。
3.完善性维护:这种维护类型主要是针对软件的功能进行增强和扩展,以满足用户的新需求。
4.预防性维护:预防性维护是为了避免软件出现潜在的问题和风险,提前对软件进行调整和优化。
在进行软件维护时,可以采取以下策略:1.计划维护:制定详细的维护计划,包括维护的时间、内容、责任人等,确保维护工作的有序进行。
2.变更管理:对于软件的修改和更新,需要进行严格的变更管理,确保每次变更都是经过审核和评估的。
3.版本控制:通过版本控制工具,对软件的不同版本进行管理,确保软件的每个版本都是可追踪和可恢复的。
4.文档管理:对软件的维护过程和结果进行详细的文档记录,方便对软件进行管理和维护。
5.持续集成:将软件的维护工作与开发工作结合起来,通过持续集成的方式,确保软件的质量和稳定性。
软件工程考核知识点-第8章-软件维护第8章软件维护软件投入使用后就进入软件维护阶段。
维护阶段是软件生存周期中时间最长的一个阶段,所花费的精力和费用也是最多的一个阶段。
8.1软件维护的内容软件维护内容有四种:校正性维护,适应性维护,完善性维护和预防性维护。
1.校正性维护在软件交付使用后,由于在软件开发过程中产生的错误并没有完全彻底的在测试中发现,因此必然有一部分隐含的错误被带到维护阶段来。
这些隐含的错误在某些特定的使用环境下会暴露出来。
为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。
校正性维护占整个维护工作的20%左右。
2.适应性维护随着计算机的飞速发展,计算机硬件和软件环境也在不断发生变化,数据环境也在不断发生变化。
为了使应用软件适应这种而修改软件的过程称为适应性维护。
这种维护活动占整个维护活动的25%。
3.完善性维护在软件漫长的运行时期中,用户往往会对软件提出新的功能要求与性能要求。
这是因为用户的业务会发生变化,组织机构也会发生变化。
为了适应这些变化,应用软件原来的功能和性能需要扩充和增强,为达到这个目的而进行的维护活动称为完善性维护,占整个维护活动的50%。
4.预防性维护为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。
这是为以后进一步的运行和维护打好基础,占整个维护工作的4%。
8.2 维护的特点8.2.1非结构化维护和结构化维护软件的开发过程对软件的维护过程有较大的影响。
若不采用软件过程的方法开发软件,则软件只有程序而无文档,维护工作非常难,这就是一种非结构化的维护。
若采用软件工程的方法开发软件,则各阶段都有相应的文档,这容易进行维护工作,这是一种结构化的维护。
1.非结构化维护因为只有源程序,而文档很少或没有文档,维护活动只能从阅读、理解、分析源程序开始。
这是软件工程时代以前进行维护的情况。
2.结构化维护用软件工程思想开发的软件具有各阶段的文档,这对于理解和掌握软件功能、性能、系统结构、数据结构、系统接口和设计约束有很大作用。
第8章例题分析与解答作者:不详来源:2006年9月4日发表评论进入社区一、填空题1.为了识别和纠正运行中产生的错误而进行的维护称为_________维护。
2.采用软件工程方法开发软件,各阶段均有文档,容易维护,这种维护是________。
3.为提高可维护性,要使用的先进的、强有力的、实用的软件开发方法是________。
4.在软件维护中,因修改软件而导致出现的错误或其他情况称为__________。
二、选择题1.为增加软件功能和性能而进行的软件修改维护过程是( )。
A.校正性维护B.适应性维护C.完善性维护D.预防性维护2.维护中用来指出修改的工作量、工作性质、优先权、修改的事后性质的文档是( )。
A.软件需求说明B.软件修改报告C.软件问题报告D.测试分析报告3.维护中,因修改全局或公用数据而引起的错误是( )。
A.文档副作用B.数据副作用C.编码副作用D.设计副作用4.生产性维护活动是( )。
A.修改设计B.理解设计C.解释数据结构D.理解功能答案:一、填空题1.校正性2.结构化维护3.面向对象方法4.维护的副作用二、选择题1.C2.B3.B4.A第8章自测题及参考答案作者:不详来源:2006年9月1日发表评论进入社区一、名词解释1.校正性维护2.适应性维护3.完善性维护4.预防性维护5.软件可维护性 6.软件维护的副作用二、填空题1.维护阶段是软件生存周期中时间最长的阶段,也是花费精力和费用________的阶段。
2.在软件交付使用后,由于在软件开发过程中产生的错误没有完全彻底在开发阶段发现,必然有一部分隐含错误带到_________阶段。
3.采用手工方法开发软件只有程序而无文档,维护困难,这是一种___________维护。
4.软件维护费用增加的主要原因是维护的_________非常低。
5.软件维护工作的活动分为生产性活动和__________活动。
6.所有软件维护申请报告要按规定方式提出,该报告也称_________报告。
7.有两类维护技术:在开发阶段使用来减少错误,提高软件可维护性的面向维护技术;在维护阶段用来提高维护的效率和质量的_______技术。
三、选择题1.在生存周期中,时间长、费用高、困难大的阶段是( )。
A.需求分析B.编码C.测试D.维护2.为适应软硬件环境变化而修改软件的过程是( )。
A.校正性维护B.适应性维护C.完善性维护D.预防性维护3.软件维护困难的主要原因是( )。
A.费用低B.人员少C.开发方法的缺陷D.维护难4.软件维护费用高的主要原因是( )。
A.生产率高B.生产率低C.人员多D.人员少5.维护阶段的文档是( )。
A.软件需求说明B.操作手册C.软件问题报告D.测试分析报告6.产生软件维护的副作用,是指( )。
A.开发时的错误B.隐含的错误C.因修改软件而造成的错误D.运行时误操作7.维护中,因误删除一个标识符而引起的错误是( )副作用。
A.文档B.数据C.编码D.设计8.可维护性的特性中相互促进的是( )。
A.可理解性和可测试性B.效率和可移植性C.效率和可修改性D.效率和结构好9.可维护性的特性中,相互矛盾的是( )。
A.可修改性和可理解性B.可测试性和可理解性C.效率和可修改性D.可理解性和可读性四、简答题1.软件维护有哪些类型?2.软件维护的特点是什么?3.软件维护的流程是什么?4.软维护的副作用有哪些?5.可维护性度量的质量特性有哪些?6.提高可维护性有哪些方法?参考答案二、填空题1.最多2.维护3.非结构化4.生产率5.非生产性6.软件问题7.维护支援三、选择题1.D 2.B 3.C 4.B5.C 6.C 7.C 8.A 9.C第八章仿真试题作者:不详来源:2006年9月1日发表评论进入社区1.软件生命周期的最后的一个阶段是( )A.书写软件文档B.软件维护C.稳定性测试D.书写详细用户说明2.软件维护工作的最主要部分是( )A.校正性维护B.适应性维护C.完善性维护D.预防性维护3.在软件维护工作中进行的最少的部分是( )A.校正性维护B.适应性维护C.完善性维护D.预防性维护4.软件维护工作中大部分的工作是由于( )而引起的。
A.程序的可靠性B.适应新的硬件环境C.适应新的软件环境D.用户的需求改变5.软件维护时,对测试阶段未发现的错误进行测试、诊断、定位、纠错,直至修改的回归测试过程称为( )A.改正性维护B.适应性维护C.完善性维护D.预防性维护6.软件的可维护性变量可分解为对多种因素的度量,下述各种因素( )是可维护度量的内容。
(1)可测试性(2)可理解性(3)可修改性(4)可复用性A.全部B.(1)C.(1)、(2)和(3)D.(1)、(2)7.软件维护是保证软件正常,有效运行的重要手段,而软件的下述特性:(1)可测试性(2)可理解性(3)可修改性(4)可移植性哪个(些)有利于软件维护?( )A.只有(1)B.(2)和(3)C.(1)、(2)和(3)D.都有利8.在软件生命周期中,( )阶段所占工作量最大,约占70%。
A.分析B.维护C.编码D.测试9.软件维护大体上可分为四种类型,下列哪一个不属于其中?( )A.校正性B.可靠性C.适应性D.完善性10.软件维护指的是( )A.对软件的改进、适应和完善B.维护正常运行C.配置新软件D.软件开发的一个阶段11.软件的可维护性度量可分解为对多种因素的度量,下述各种因素中,哪些是可维护性度量的内容?( )(1)可测试性(2)可理解性(3)可修改性(4)可复用性A.(1)、(2)、(3)、(4)B.(1)C.(1)、(2)、(3)D.(1)、(2)12.软件工程学是指导计算机软件开发和( )的工程学科。
A.软件维护B.软件设计C.软件应用D.软件理论13.下面哪一个不是人们常用的评价软件质量的四个因素之一?( )A.可维护性B.可靠性C.可理解性D.易用性14.软件系统的可理解性的提高,会导致软件系统( )的提高?A.可维护性B.可靠性C.可理解性D.可使用性15.软件产品质量是生产者和用户都十分关心的问题,质量管理只看到产品的质量,近年来质量管理向( )发展,重要的基本假设是过程的质量直接影响产品的质量。
A.过程质量的控制B.过程的改进C.产品的改进D.技术的革新16.国际标准化组织和国际电工委员会发布的关于软件质量的标准中规定了( )质量特性及相关的21个质量子特性。
A.5个B.6个C.7个D.8个17.ISO/IEC规定的6个质量特性包括功能性、可靠性、可使用性、效率、( )和可移植性等。
A.可重用性B.组件特性C.可维护性D.可测试性18.ISO/IEC9126-1991规定的6个质量特性21个质量子特性,其中可测试性属于( )A.可使用性B.效率C.可维护性D.可移植性19.通常把软件交付使用后做的变更称为维护,软件投入使用后的另一项工作是软件再工程针对这类软件实施的软件工程活动,主要是对其重新实现,使其具有更好的( ),包括软件重构、重写文档等。
A.功能性B.可靠性C.可使用性D.可维护性20.软件生存期( )阶段的工作都与软件可维护性有密切的关系。
A.编码阶段B.设计阶段C.测试阶段D.每个阶段21.软件可维护性是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改、( )的容易程度。
A.维护B.扩充与压缩C.调整D.再工程22.目前广泛使用7个特性来衡量软件的可维护性,下列哪些特性不属于衡量软件可维护性的范围?( )A.可移植性、可使用性B.可靠性、效率C.一致性、数据无关性D.可理解性、可测试性23.目前广泛使用7个特性来衡量软件的可维护性,可测试性,可靠性和可理解性主要在( )侧重应用。
A.校正性维护B.适应性维护C.完善性维护D.预防性维护24.对于软件产品来说,有4个方面影响着产品的质量,即开发技术、过程质量、人员素质及( )等条件。
A.风险控制B.项目管理C.配置管理D.成本、时间和进度25.重视软件过程质量的控制,其部分原因是,相对于产品质量的控制来说,过程质量的控制是先期的、主动的、( ),而产品质量的控制是事后的、被动的、个别的。
A.整体的B.系统的C.部分的D.可预测的26.McCall提出了表明软件质量的11个质量特性。
它们是正确性、可靠性、可使用性、完整性、( )可移植性、可复用性、效率、可测试性、互联性。
A.模块独立性、安全性B.文档完备性、灵活性C.可维护性、安全性D.可维护性、灵活性27.McCall提出的软件质量的11个质量特性分为三组,下面哪一个不属于这三组( )A.产品需求B.产品运行C.产品修正D.产品转移28.McCall提出的软件质量的11个质量特性分为三组,属于产品修正特性的有( )A.可移植性、可复用性和互连性B.可维护性、可移植性、可复用性C.可维护性、可测试性及灵活性D.正确性、可使用性、可测试性29.在软件维护的实施过程中,为了正确、有效地修改,需要经历以下三个步骤:分析和理解程序、修改程序和( )A.建立目标程序B.重新验证程序C.验收程序D.书写维护文档30.在软件维护的实施过程中,为了正确、有效地修改,需要经历几个步骤,下面哪一个是决定维护成败和质量的关键?( )A.分析和理解程序B.书写维护文档C.修改程序D.重新验证程序31.在软件维护的实施过程中,为了正确、有效地修改,需要经历几个步骤,其中重新验证程序分为( ),保证修改后的程序的正确性。
A.静态确认、计算机确认和维护后的验收B.动态确认、计算机确认和维护后的验收C.动态确认、计算机维护和维护后的存档D.静态确认、人工确认和维护后的检验32.软件从一个计算机系统或环境转移到另一个计算机系统或环境的容易程度是指软件的( )A.兼容性B.可移植性C.容错性D.可接近性33.软件在需要它投入使用时能实现其指定的功能的概率是指( )A.可靠性B.可接近性C.可使用性D.稳定性34.软件使不同的系统约束条件和用户需求得到满足的容易程度是指( )A.兼容性B.可移植性C.容错性D.可接近性35.在规定的条件下和规定的一段时间内,实现所指定的功能的概率是指( )A.可使用性B.可接近性C.可靠性D.稳定性36.尽管有不合法的输入,软件仍能继续正常工作的能力是指( )A.兼容性B.可靠性C.容错性D.稳定性37.改错性维护与排错的相对关系是( )A.改错性维护与排错是同一概念的不同命名B.改错性维护是在更大范围中作工作C.排错是在更大范围中作工作D.它们是在同一阶段的不同工作38.下列叙述中哪个与软件的可移植性无关?( )A.把程序中与计算机硬件特性有关的部分集成在一起B.选择时间效率和空间效率高的算法C.使用结构化的程序设计方法D.尽量用高级语言编写程序中对效率要求不高的部分39.下面有关软件维护的叙述哪个是正确的?( )A.设计软件时就应考虑到将来的可修改性B.维护软件是一件很吸引人的创造性工作C.维护软件就是改正软件中的错误D.谁编写软件就应由谁来维护这个软件40.下列哪个改变不属于软件维护中的副作用?( )A.修改代码B.修改数据C.修改需求分析D.修改文档41.修改软件以适应外部环境(新的硬件、软件配置)或数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)发生的变化是指?( )A.改正性维护B.适应性维护C.完善性维护D.预防性维护42.下列哪一项属于软件计划的范围内考虑的?( )A.项目实施计划,质量保证计划B.软件测试计划、文档编制计划C.用户培训计划、综合支持计划,软件分发计划D.以上都是43.软件文档是软件工程实施的重要成分,它不仅是软件开发各阶段的重要依据,而且也影响软件的( )A.可理解性B.可维护性C.可扩展性D.可移植性答案:1.B2.C3.D4.D5.A6.C7.D8.B9.B 10.A 11.A 12.A 13.D 14.A 15.A 16.B 1 7.C 18.C 19.D 20.D 21.B 22.C 23.A 24.D 25.B 26.D 27.A 28.C 29.B 30.A 31.A 32.B 33.C 34.A 35.C 36.C 37.B 38.B 39.A 40.C 41.B 42.D 43.B《软件工程》习题参考答案8作者名:不详来源:网友提供06年6月8日第8章1、软件维护有哪些内容?答:(1)校正性维护。