欢迎来到天天文库
浏览记录
ID:20520625
大小:390.50 KB
页数:49页
时间:2018-10-12
《软件工程 第9章 软件维护 cumt 11-07-26》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、张磊博士,副教授zhanglei@cumt.edu.cn第9章软件维护《计算机网络》课件制作人:谢希仁可行否?否是终止项目计划时期开发时期(SA,SD,SP)运行时期维护课件制作人:谢希仁9.1软件维护的概念9.2软件维护的代价9.3维护过程9.4可维护性9.5维护的副作用课件制作人:谢希仁9.1软件维护的概念1.软件维护的定义2.影响维护工作量的因素3.软件维护的策略4.维护成本课件制作人:谢希仁9.1.1软件维护的定义在软件已经交付用户使用之后,为了改正错误或满足新的需求而进行修改软件的过程。维护
2、的类型有:改正性维护适应性维护完善性维护预防性维护课件制作人:谢希仁1.改正性维护在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行阶段。这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就叫做改正性维护。课件制作人:谢希仁定义:运行时期为诊断、改正错误而修改软件的过程。原因:开发时期测试是不彻底的,会有部分隐藏的错误遗留到运行时期。目的:识别和改正软件错误;课件制作人:谢
3、希仁2.适应性维护在使用过程中,外部环境(新的硬、软件配置)数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就叫做适应性维护。课件制作人:谢希仁定义:为使软件适应变化而修改软件的过程。原因:在软件运行过程中,⑴外部环境——新的硬、软件配置。⑵数据环境数据库数据输入/输出方式数据存储介质可能发生变化。课件制作人:谢希仁3.完善性维护在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充
4、软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。课件制作人:谢希仁定义:为了满足这些要求,需要修改或再开发软件的维护活动叫做完善性维护。这种情况下进行。原因:在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。目的:扩充软件功能增强软件性能课件制作人:谢希仁4.预防性维护预防性维护是为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。预防性维护定义为:采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制
5、和测试。课件制作人:谢希仁定义:对需要维护的软件或软件中的某一部分(重新)进行设计、编码和测试。目的:了提高软件的可维护性、可靠性等;为以后进一步改进软件打下良好基础。课件制作人:谢希仁实践表明,在几种维护活动中,完善性维护所占的比重最大。即大部分维护工作是改变和加强软件,而不是纠错。完善性维护不一定是救火式的紧急维修,而可以是有计划、有预谋的一种再开发活动。事实证明,来自用户要求扩充、加强软件功能、性能的维护活动约占整个维护工作的50%5.各类维护工作所占的比重课件制作人:谢希仁在整个软件维护阶段所
6、花费的全部工作量中,完善性维护占了几乎一半的工作量。软件维护活动所花费的工作占整个生存期工作量的70%以上,这是由于在漫长的软件运行过程中需要不断对软件进行修改,以改正新发现的错误、适应新的环境和用户新的要求,这些修改需要花费很多精力和时间,而且有时会引入新的错误课件制作人:谢希仁三类维护占维护在软件生存期总维护比例所占比例课件制作人:谢希仁改正性维护(CorrectiveMaintenance)适应性维护(AdaptiveMaintenance)完善性维护(PerfectiveMaintenanc
7、e)预防性维护(PreventiveMaintenance)占维护总工作量的50%不一定是救火式的紧急维修,而是有计划、有预谋的一种再开发活动。课件制作人:谢希仁软件维护的工作占整个生存期工作量的70%以上软件生命周期问题定义可行性研究需求分析概要设计详细设计编码测试运行与维护70%以上课件制作人:谢希仁9.1.2软件维护的代价在软件的维护过程中,需要花费大量的工作量,从而直接影响了软件维护的成本。应当考虑有哪些因素影响软件维护的工作量,相应应该采取什么维护策略,才能有效地维护软件并控制维护的成本课件
8、制作人:谢希仁费用代价(有形)1970年35%~40%1980年40%~60%1990年70%~80%其它(无形)不能及时满足用户合理的修改要求,引起用户不满;抽调开发者去从事维护,使得开发造成混乱。引入了新的潜伏的故障,降低了软件的质量;课件制作人:谢希仁1.维护工作量的计算模型M=P+K×exp(c-d)M是维护的总工作量P是生产性工作量K是经验系数c是复杂程度(非结构化设计和缺少文档都会增加软件的复杂程度)d是维护人员对软件的熟悉程序课件制作人:谢
此文档下载收益归作者所有