![](https://csdnimg.cn/release/download_crawler_static/86290530/bg1.jpg)
Software Engineering 软件运维
11 - 1
Shanghai Jiao Tong University
上海交通大学软件工程中心
软件工程软件工程
Module: 软件运维
2
Software Engineering
沈备军
软件运维
软件维护
DevOps
@第9章.教材
3
Software Engineering
沈备军
软件维护 “冰山”
有关调查结果表明,软件维护是软件工程中
最消耗资源的活动,很多软件公司中软件维
护的成本已经达到了整个软件生存周期资源
的40%到70%,甚至达到了90%。
软件系统趋于大型化和复杂化,大多数软件
在设计时没有考虑到将来的修改问题
,常常
还伴有开发人员变动频繁
、文档不够详细、
维护周期过长等等问题
,这些问题导致维护
活动的时间与花费不断增加
。
4
Software Engineering
沈备军
维护类型
纠错性维护(Corrective maintenance)
由于软件中的缺陷引起的修改
完善性维护(Perfective maintenance),
根据用户在使用过程中提出的一些建设性意见而
进行的维护活动
适应性维护(Adaptive maintenance)
为适应环境的变化而修改软件的活动
预防性维护(Preventive maintenance)
为了进一步改善软件系统的可维护性和可靠性
,
并为以后的改进奠定基础
纠错 增强
积极的 预防性维护 完善性维护
被动的 纠错性维护 适应性维护
5
Software Engineering
沈备军
维护的技术问题
有限理解
(
Limited understanding),对他人开发
软件进行维护时,如何快速理解程序并找到需要修
改或纠错的地方?
在软件维护过程中需要大量的回归测试,耗时耗力。
当软件非常关键以致不能停机时,如何进行在线维
护而不影响软件的运行
?
影响分析,如何对现有软件的变更进行全面影响分
析?
如何在开发中促进和遵循软件的可维护性
?
易分析性
(
Analyzability)、易改变性
(
Changeability)、
稳定性
(
Stability)和易测试性
(
Testability)
6
Software Engineering
沈备军
维护成本
维护的工作可划分成:
生产性活动 如,分析评价、修改设计、编写程序代码等
非生产性活动 如,程序代码功能理解、数据结构解释、接
口特点和性能界限分析等
维护工作量的模型
M:维护的总工作量 ;
P:生产性工作量
;
K:经验常数
;
e: 软件的规模
;
c:复杂程度;
d:维护人员对软件的熟悉程度