共京部電大学 软件维护中的典型问题 首先软件维护人员大多数情况下不是软件开发人 员,为此他们会遇到以下问题: 阅读和理解别人写的程序非常困难。 需要维护的软件往往没有合格的文档,或者文档资料 明显不足。 不能指望开发人员仔细说明软件。 决大多数软件在设计时没有考虑将来的修改,从而导 致了软件的可维护性很差。 软件维护不是一项吸引人的工作,由于以上原因经常 导致维护出现困难,从而使软件维护人员产生厌烦和 挫折感 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 6 软件维护中的典型问题 ◆ 首先软件维护人员大多数情况下不是软件开发人 员,为此他们会遇到以下问题: ➢ 阅读和理解别人写的程序非常困难。 ➢ 需要维护的软件往往没有合格的文档,或者文档资料 明显不足。 ➢ 不能指望开发人员仔细说明软件。 ➢ 决大多数软件在设计时没有考虑将来的修改,从而导 致了软件的可维护性很差。 ➢ 软件维护不是一项吸引人的工作,由于以上原因经常 导致维护出现困难,从而使软件维护人员产生厌烦和 挫折感
共京部電大学 软件维护的活动 ◆为了有效地进行软件维护,就必须: 建立维护机构 给出软件维护的工作管理流程 为每一个维护申请规定标准的处理步骤 负责人 申请维护 维护管理员 系统监督员 配置管理员 维护人员 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 7 软件维护的活动 ◆ 为了有效地进行软件维护,就必须: ➢ 建立维护机构 ➢ 给出软件维护的工作管理流程 ➢ 为每一个维护申请规定标准的处理步骤
共京部電大学 软件维护的管理工作流程 用户维护人员 开始 评价 问题分 确 错误严重 (救火)析 更改要 求 程度/⊕ 维护墨求 安 理解程序 重 排 分析原设计 判明 安排 安排计划 维护类 改正性 维护 修改程序 维护 实施 测试程序 修改 性 性 把错误改正 列入计划 复审 优先次 分年业 开始 低 问题分 通过并交付 析 使用的软件 把安排好的开发 工作量列入计划 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 8 软件维护的管理工作流程
共京部電大学 软件维护的标准化 修改请求:一般由用户、程序员或管理人员提出,是软件维护 的开始; 分类与鉴别:根据修改请求,由维护机构来确认其维护类别, 给一个编号,并输入数据库保存 ◆分析:先进行维护的可行性分析,然后进行详细分析 设计:汇总全部信息开始更改,本阶段应更改设计的基线、更 改测试计划、修订详细分析结果、核实维护需求; 实现:制定程序更改计划并进行软件更改。包括编码、单元测 试、集成、风险分析、测试准备审查、更新文档; 系统测试:主要进行程序之间的接口测试,以确保加入了修改 的软件满足原来的需求,回归测试是确保不要引入新的错误; ◆验收测试:最终的综合测试,由客户、用户和第三方共同进行 交付:此阶段是将新的系统交给用户安装并运行 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心 9
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 9 软件维护的标准化 ◆ 修改请求:一般由用户、程序员或管理人员提出,是软件维护 的开始; ◆ 分类与鉴别:根据修改请求,由维护机构来确认其维护类别, 给一个编号,并输入数据库保存; ◆ 分析:先进行维护的可行性分析,然后进行详细分析; ◆ 设计:汇总全部信息开始更改,本阶段应更改设计的基线、更 改测试计划、修订详细分析结果、核实维护需求; ◆ 实现:制定程序更改计划并进行软件更改。包括编码、单元测 试、集成、风险分析、测试准备审查、更新文档; ◆ 系统测试:主要进行程序之间的接口测试,以确保加入了修改 的软件满足原来的需求,回归测试是确保不要引入新的错误; ◆ 验收测试:最终的综合测试,由客户、用户和第三方共同进行 ; ◆ 交付:此阶段是将新的系统交给用户安装并运行
共京部電大学 软件的逆向工程和再工程 ◆术语“逆向工程”来自硬件。成功的逆向工程应当通过 考察产品的实际样品,导出该产品的一个或多个设计与 制造的规格说明。 软件的逆向工程是分析程序,是设计恢复的过程,需要 从已存在程序中抽取数据结构、体系结构和程序设计信 非结构化源代码 重构代码 分析语句 结构化源代码 理解处理 分析模式 提取抽象 理解界面 初始的规格说明 理解数据过程 分析程序 求精与简化 分析系统 最终的规格说明 ⊙2008 BUPT TSEG 北京邮电大学通信软件工程中心 10
© 2008 BUPT TSEG 北京邮电大学 通信软件工程中心 10 软件的逆向工程和再工程 ◆ 术语“逆向工程”来自硬件。成功的逆向工程应当通过 考察产品的实际样品,导出该产品的一个或多个设计与 制造的规格说明。 ◆ 软件的逆向工程是分析程序,是设计恢复的过程,需要 从已存在程序中抽取数据结构、体系结构和程序设计信 息。 图13-7 逆向工程过程 非结构化源代码 结构化源代码 初始的规格说明 最终的规格说明 理解界面 理解处理 理解数据 分析模式 分析模块 分析程序 分析语句 求精与简化 分析系统 提取抽象 重构代码