(一)维护的概念:软件维护是软件生命周期中的最后一个阶段,不属于系统开发周期。
(二)维护:1. 改正性维护:为了识别和纠正软件中的错误,改正软件性能上的缺陷,排 除实施中的误使用,应当进行的诊断和 改正错误的过程叫做改正性维护。
2. 适应性维护:在使用过程中,外部环境、数据环境可能发生变化。为了使 软件适应这种变化而去修改软件的过程就叫做适应性维护。
3. 完善性维护:为了满足软件新的功能与性能要求,需要修改或再开发软件 以扩充软件功能,增强软件性能,改进加工效率,提高软件的可维护性进行的 维护活动。(比重最大,有计划有预谋的一种再开发活动)
4. 预防性维护:采用先进的软件工程方法对需要维护的软件或软件中的某一 部分(重新)进行设计、编制和测试。
(三)维护的特点:1.成本:有形的软件维护成本是花费了多少钱,无形的维护成本有更大 影响。
2. 维护的问题:程序难懂、文档代码不一致、开发人员不负责维护、设 计时没考虑修改。
(四)维护的过程:维护过程本质上是修改和压缩了的软件定义和开发过程。
1. 建立维护组织
维护申请 提交 维护管理员 系统监督员 评价 修改负责人 确认如何修改 配置管理员
············ ······ ········· ····························
控制修改范围,对软件配置进行评价·
·········································································
2. 维护报告
(1)维护申请报告
(2)软件修改报告
(五)软件可维护性的度量:软件的可维护性是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改、扩充和压缩的容易程度。
1. 衡量软件可维护性的七个特征:
可理解性 可修改性 可使用性 可移植性
可测试性 可靠性 效率
————改正性维护
运行性维护
————完善性维护
2. 文档——可维护性的决定因素
(1)用户文档:功能描述、安装文档、使用手册、参考手册、操作员指南
(2)系统文档
^ 低
实现级 |
恢复信息级别: 结构级 | 抽象级别
功能级 |
领域级 | 高
(六)逆向过程与再工程
1. 逆向工程:分析已有程序,寻求比源码更高一级抽象形式。
2. 再生工程:(修改和改造工程) 在逆向工程所获信息的基础上修改或再生 已有系统,产生新版本。
第八章 软件项目管理(PMBOK)
(一)软件项目管理概述:项目是为了创造一个唯一的产品或提供一个唯一的服务而进行的 临时性努力。
(二)成本估计:软件开发成本主要是指软件开发过程中所花费的工作量及相应的代价
成本估计和成本管理是软件管理的核心任务之一。典型估算方法:(1)静态(2)动态(3)标准值法(4)COCOMO
(三)进度计划:制定项目计划的主要任务是将负责的工程项目分解成为多逻辑步骤(作业), 然后安排这些作业的顺序,确定每项作业所需要的时间以及作业的开始时间和 终止时间。
1. Gantt Chart
优点:简单,能动态的反应开发进展
缺点:难以反映多个任务间的逻辑关系
2. PERT —— 关键路径
(四)人员组织
(五)质量管理:软件质量是难以定量度量的软件属性,但仍能提出许多重要的软件质量指 标。
1. 软件质量特性反应了软件的本质。
2. 人们通常把影响软件质量的特性用软件质量模型来描述。
3. McCall质量模型
4. 质量保证是为保证产品和服务充分满足消费者要求的质量而进行的有计划,有管理的活动。
(六)配置管理:(1)标识变更(2)控制变更(3)确保变更的正确实现(4)向其他有关 的人报告变更
1. 软件配置概念:在软件工程过程中产生的所有信息项(文档、报告、 程序表格、数据、erc. )构成了软件配置。
2. 基线:基线是软件生存期中各开发阶段末尾的特定点,又称里程碑。
3. 基线的作用是把各阶段的工作划分更加明确化,以便于检验和肯定阶 段成果。
4. 软件配置项(SCI)