一、 软件维护的基本概念(教材6-1) 1. 软件维护的定义(教材6-1-1)
本质就是软件交付运行后所作出的修改。
2. 软件为什么需要维护(教材6-1-2)
软件存在错误
用户需求发生改变(变更/增加) 适应新的运行环境
3. 软件维护的分类(教材6-1-2)
纠错性维护 适应性维护 完善性维护 预防性维护
4. 软件维护的工作量(教材6-1-1、6-1-2、6-2-2) 1) 软件维护占整个生命周期工作量的比例(6-1-1)
教材给出的数字70%
2) 各类维护占整个软件维护工作量的比例(图6-1)
完善类型的维护为主
3) 评价维护工作量模型(6-2-2)
最重要的因素:①软件复杂程度,②维护人员对软件的熟悉程度。
4) 如何理解“与维护工作量有关的因素”(6-2-1)
教材所列举的因素都与“软件复杂度”因素有关
5. 软件工程针对“软件维护”到底包含哪些内容 1) 管理:规范软件维护流程
2) 技术:开发时需要考虑提高软件的可维护性
二、 软件维护过程与角色分工(教材6-2) 1. 维护组织与角色分工(教材6-2-3) 2. 维护流程(教材6-2-4)
3. 补充:某个大型软件企业的维护流程 步骤 1 2 内容 提出维护申请 分工 服务部门 评估维护申请,提出维护方案 开发部门/服务部门 3 4 5 6 审查维护方案,下达维护任务 负责人 修改设计文档 修改软件代码 测试 开发部门 开发部门 测试部门 9 10 11 12 13 提交维护结果 确认维护结果 对维护后版本进行配置审查 提交维护后的软件版本 交付用户 开发部门 负责人 配置管理员 配置管理员 服务部门 结合图6-2与图6-4理解上述过程
思考:维护过程不规范的不良后果(参考教材6-3)
4. 关于维护记录(教材6-2-6)
自行阅读教材
三、 维护面临的问题(教材6-3) 1. 软件维护的副作用(教材6-3-1)
阅读教材,如下为本人对“不当维护”的归纳: 1) 可能导致用户的业务瘫痪 2) 使软件性能变坏 3) 使软件的可维护性变坏
软件越来越难以理解 文档与软件越来越不匹配
4) 增加“软件版本管理”及“软件重用”的难度
2. 维护工作面临的问题(教材6-3-3)
首先,不愿意做
其次,读他人的程序困难 再次,没有合适的文档参考
四、 软件的可维护性(教材6-4-1)
软件的可维护性与哪些“软件质量因素”有关?
教材论述 可理解性 可靠性 可测试性 可修改性 可移植性 效率 可用性 讨论:上述质量因素的内涵与对软件可维护性的影响
五、 如何提高软件的维护性(教材6-4-2) 1. 教材的有关论述 2. 实践的观点
因素 内容 MaCall模型 简明性 一致性 检测性 模块化 自文档化 简单性 ISO模型 一致性 简单性 模块化 检测性 自描述性 简明性 开发管理 ▲ 减少不必要的维护 做好需求分析 做好测试 ▲ 方便日后的维护 提高设计水平(数据结构与模块划分) 规范编程风格 要有必要、而且规范的文档 经营策略 ▲ 软件项目产品化 减少维护负担、方便维护管理 开发手段 ▲ 选择合适的软件开发平台、软件重用 减少编程以方便维护 维护管理 ▲ 规范的维护管理流程 避免不当维护所导致的严重后果 补充 提高需求分析水平,由基于某个用户的现实模型,提升到基于领域的逻辑模型,实现软件的产品化
六、 关于软件“再工程”(教材6-5、略)
自行阅读
七、 重点知识
1. 软件维护的基本概念
定义、类型、所面临的问题与困难因素等 2. 软件维护的基本流程
3. 评价软件可维护性的主要因素 4. 做好软件维护的主要事项 作业:
用2-3页纸的篇幅,对课程1-6的内容进行综述,并且简述学习上述知识以后的收获。
因篇幅问题不能全部显示,请点此查看更多更全内容