维护【软件工程总结】

一. 软件维护就是在软件已经交付使用后,为了改正错误或满足新的需求而修改软件的过程。

二. 软件维护的特点

1. 非结构化维护和结构化维护差别巨大,前者维护的对象只是程序代码,而内部文档不足,导致维护需要付出很大代价。后者维护的对象是完整的软件配置,需要从设计文档评价开始,经过分析软件特点,估量修改带来的影响,再经过一系列修改步骤才开始编写相应源代码,这使得软件维护减少了精力的浪费,提高维护的总体质量。

2. 维护的代价昂贵,在过去几十年里,维护费用逐年上升,而且如果软件开发没有运用软件工程方法学,原来的开发者不参与维护,那么维护的工作和质量将指数地增加。

3. 维护的问题很多,如理解别人的程序有难度,往往没有合格的文档,原始开发人员可能不在,绝大多数软件在设计时没有考虑将来的修改等等。

三. 软件维护过程

维护过程本质上是修改和压缩了软件定义和开发过程。

1. 建立维护团队,明确分工。

2. 制定软件报告,说明维护要求的工作量、性质、优先次序和修改有关的事后数据。

3. 按照维护事件流开展工作,如下图所示,

4. 保护维护的各项记录,以确定程序产品的"优良"程序,比如源语句数、机器指令条数、使用的程序设计语言、程序改动的日期、与完成的维护相联系的纯效益等等。

5. 评价度量维护工作,从几个方面评价:

①每次程序运行平均失效的次数

②用于每一类维护活动的总人时数

③平均每个程序、每种语言、每种维护类型所做的程序变动数

④维护过程中增加或删除一个源语句平均花费的人时数

⑤维护每种语言平均花费的人时数

⑥一张维护要求表的平均周转时间

⑦不同维护类型所占的百分比

四. 软件的可维护性

1. 决定软件可维护性的因素:可理解性,可测试性,可修改性,可移植性,可重用性。

2. 文档是影响可维护性的决定因素,分为用户文档和系统文档。

3. 可维护性复审

五. 预防性维护,可定义为"把今天的方法学应用到昨天的系统上,以支持明天的需求"。

六. 软件再工程过程,其模型如下,



猜你喜欢

转载自blog.csdn.net/gnosed/article/details/80512405