欢迎来到天天文库
浏览记录
ID:21128466
大小:712.00 KB
页数:75页
时间:2018-10-19
《软件工程概论_12_软件维护》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件工程概论SoftwareEngineering贾恒彬E-mail:jiahengbin@uniwin.com.cn李恒E-mail:liheng@uniwin.com.cn第6章软件维护软件维护是软件生命周期的最后一个阶段它处于系统投入生产性运行以后的时期中,因此不属于系统开发过程。软件维护需要的工作量非常大虽然在不同应用领域维护成本差别很大,但是,平均说来,大型软件的维护成本高达开发成本的四倍左右。软件工程的主要目的:提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本。第6章软件维护6.1软件维护的定义和分类6.2软
2、件维护的特点6.3软件维护的过程6.4软件的可维护性6.1软件维护的定义和分类所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。软件维护的分类:改正(纠错)性维护适应性维护完善性维护预防性维护6.1.1软件维护定义6.1.2软件维护分类6.1.2软件维护分类在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行阶段。这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就叫做改正性维护。
3、改正性维护的工作量占全部维护活动的17%~21%。1、改正(纠错)性维护6.1.2软件维护分类适应性维护,也就是为了和变化了的环境适当地配合而进行的修改软件的活动,是既必要又经常的维护活动。外部环境(新的硬、软件配置)数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。适应性维护的工作量占全部维护活动的18%~25%2、适应性维护6.1.2软件维护分类在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种
4、情况下进行的维护活动叫做完善性维护。3、完善性维护6.1.2软件维护分类实践表明,在几种维护活动中,完善性维护所占的比重最大。即大部分维护工作是改变和加强软件,而不是纠错。完善性维护不一定是救火式的紧急维修,而可以是有计划、有预谋的一种再开发活动。事实证明,来自用户要求扩充、加强软件功能、性能的维护活动约占整个维护工作的50%以上。3、完善性性维护6.1.2软件维护分类预防性维护是为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。预防性维护定义为:采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编
5、制和测试。在整个维护活动中,预防性维护占很小的比例,只占5%。4、预防性维护6.1.3综述在整个软件维护阶段所花费的全部工作量中,完善性维护占了几乎一半的工作量。软件维护活动所花费的工作占整个生存期工作量的70%以上,这是由于在漫长的软件运行过程中需要不断对软件进行修改,以改正新发现的错误、适应新的环境和用户新的要求,这些修改需要花费很多精力和时间,而且有时会引入新的错误。6.1.3综述三类维护占维护在软件生存期总维护比例所占比例6.2软件维护的特点一、结构化维护与非结构化维护结构化维护—指软件开发过程是按照软件工程方法,软件的维护过程,
6、有一整套完整的方案、技术、审定过程。如果有一个完整的软件配置存在,那么维护工作从评价设计文档开始,确定软件重要的结构特点、性能特点以及接口特点;估量要求的改动将带来的影响,并且计划实施途径。然后首先修改设计并且对所做的修改进行仔细复查。接下来编写相应的源程序代码;使用在测试说明书中包含的信息进行回归测试。最后,把修改后的软件再次交付使用。6.2软件维护的特点一、结构化维护与非结构化维护非结构化维护—缺乏必要的文档说明,难于确定数据结构、系统接口等特性。维护工作令人生畏,事倍功半。如果软件配置的唯一成分是程序代码,那么维护活动从评价程序代码开
7、始,而且常常由于程序内部文档不足而使评价更困难。最终对程序代码所做的改动的后果是难于估量的:因为没有测试方面的文档,所以不可能进行回归测试(即为了保证所做的修改没有在以前可以正常使用的软件功能中引入故障而重复过去做过的测试)。6.2软件维护的特点二、软件维护的问题理解别人写的程序通常非常困难,而且困难程度随着软件配置成分的减少而迅速增加。需要维护的软件往往没有合格的文档,或者文档资料显著不足。当要求对软件进行维护时,不能指望由开发人员给我们仔细说明软件。绝大多数软件在设计时没有考虑将来的修改。除非使用强调模块独立原理的设计方法论,否则修改软
8、件既困难又容易发生差错。软件维护不是一项吸引人的工作。形成这种观念很大程度上是因为维护工作经常遭受挫折。6.2软件维护的特点三、软件维护的代价维护费用高达开发费用的55%—70%
此文档下载收益归作者所有