当前位置:文档之家› 软件工程 第8章:维护

软件工程 第8章:维护

工学二部计算机教研室
(2)并行方式
关系重大的软件一般采用同时运行新系统和 旧系统,这就是并行方式。
优点: 旧系统
① 能对系统进行全面测试,减少了新系统风险; ② 给用户熟悉新系统的时间。
缺点:
新系统 双系统要投入更多的人力财力。
工学二部计算机教研室
(3)逐步方式
分期,分部分地交付使用 克服了上面两种方式的缺点,既能防止直接转换 产生的危险性,又能减少并行方式的费用 必须考虑好新旧系统的配合问题和接口问题
工学二部计算机教研室在没有使用就解决一个 重要问题时的样子工学二部计算机教研室
向服务器上传文件时的样子
工学二部计算机教研室
当你发现上周五还非常好用, 到了周一却不能运行时的样子
工学二部计算机教研室
当所有人都在办公室挥汗如雨的加班 而你却能安然的回家度周末时的样子
工学二部计算机教研室
当听到老板说项目如果能如期完工 将会有一笔奖金时的样子
工学二部计算机教研室
文档 重构
代码 重构
逆向 工程
六、软件再工程过程
正向 工程 数据 重构 库存 目录 分析
恢复设计结果的过
文档 重构
程,从程序代码中
抽取数据结构、体
代码 重构
逆向 工程
系结构和处理过程
的设计信息。
工学二部计算机教研室
六、软件再工程过程
正向 工程 数据 分析源代码,标注 重构 库存 目录 分析
工学二部计算机教研室
(3)可修改性
与设计时采用的原则和策略相关。(耦合、内聚、
控制域和作用域、局部化程度)
(4)可移植性
(5)可重用性 决定软件可维护性的最终因素是软件设计阶段所采用
的方法,以及软件文档资料的质量。提高软件的可维护
性是软件工程的一个重要目标。
工学二部计算机教研室
2.文档
功能描述 安装文档
三、软件维护过程 1. 维护组织
维护要求 (软件问题报告) 变化授权人 维护管理员
系统管理员

软件系统
工学二部计算机教研室
2. 维护报告
包含信息:
① 维护的工作量
② 维护的性质
③ 优先级
④ 有关的事后数据(如测试数据等)
工学二部计算机教研室
3. 维护的事件流
维护要求
类型
⊕ 完善 评价优 先度 低 错误 ⊕ 适应 估量错 严重 分析问 题 误严重 ⊕ 程度 不严重 计划改 正进度
第8章 维护
工学二部计算机教研室
任务:维护软件的正常运行,改进性能和质 量,为进一步推广和升级做准备。 工作量:大型软件的维护成本是开发总成本的 四倍左右,软件开发组织把60%以上的工作量 用于维护自己的软件上。
工学二部计算机教研室
软件一旦交付,就意味着漫长的
维护之路的开始……
工学二部计算机教研室
当你改错一行代码的时候
工学二部计算机教研室
当你想要重构别人的代码时
工学二部计算机教研室
当你尝试想要修复一个bug时的样子
工学二部计算机教研室
当你凌晨4点还在工作时的样子
工学二部计算机教研室
星期五下午项目经理给 你分配任务时的样子
工学二部计算机教研室
当你尝试修复别人代码的时候,结果...
工学二部计算机教研室
评价设 计文档
评价性能特点 评价接口特点
修改设计
修改代码
回归测试
工学二部计算机教研室
4.软件维护的代价
有形代价:维护的费用开支
70年代,软件维护费用占总预算的 30%~ 40% ,80年代上升到60%左右,90年代达到了80%。
工学二部计算机教研室
无形代价:潜在的影响
当看起来合理的要求不能及时满足时,会引起用
数据 重构 正向 工程 库存 目录 分析
文档 重构
发现有系统。
代码 重构
逆向 工程
工学二部计算机教研室
小结:维护过程管理
◇ 软件维护手册
主要包括软件系统说明、程序模块说明、操作环境、支 持软件说明、维护过程说明等。(便于软件的维护)
◇ 软件问题报告
软件问题的登记,如日期、发现人、状态、问题所属模块 等。(为维护提供准备文档)
产品上线时发现缺陷时的样子
工学二部计算机教研室
终端用户没有你的软件使用说明的时候
工学二部计算机教研室
当你看到第一次使用CSS 美化页面的效果时的样子
工学二部计算机教研室
一夜鏖战后第一次运行脚本时的样子
工学二部计算机教研室
老板找你修复严重bug时样子
工学二部计算机教研室
没有按Ctrl-s就关闭文件时的样子
稳定的分析与设计技术(如面向对象分析、设计
技术),可以减少一定的工作量。
( 6)其它因素。应用的类型、数学模型、任务
的难度、IF嵌套深度等。
工学二部计算机教研室
五、预防性维护
(1)反复多次做修改程序的尝试;
(2)分析掌握程序内部细节,再修改;
(3)用软件工程方法重新设计、编码和测试需要变
更的软件部分; (4)以软件工程方法为指导,对程序全部重新设计 、编码和测试。 3:是局部再工程;4:是软件再工程 / 预防性维护
护活动的50%~66%,改正性维护占17%~21%,适
应性维护占18%~25%,其它维护活动占4%左右。
工学二部计算机教研室
3.结构化维护
评价代码
评价软件结构
评价数据结构
评价系统接口
评价设计约束
非结构化维护:经常产生误解,不能回归测试
,维护代价大。
工学二部计算机教研室
结构化维护
确定软件结构
工学二部计算机教研室
预防性维护的理由:
(1)对于旧系统,维护一行原代码的代价可能是最
初开该行源代码代价的14-40倍; (2)使用最新的设计理念重新设计软件体系结构( 程序和数据结构),对将来的维护有较大帮助; (3)旧系统可作为原型,能提高开发效率。
工学二部计算机教研室
六、软件再工程过程
分析应用系统的信息,
Байду номын сангаас
◇ 软件修改报告
针对问题处理方案、修改后的影响的详细的描述,提交
审批。
工学二部计算机教研室
其它重要的文档
◇ 开发进度月报
包括进度与实际进度的比较、阶段成果、遇到的问题和解 决的办法以及下个月的打算等。
◇ 项目开发总结报告
总结实际执行的情况(进度、成果、资源利用、成本和投入 的人力)以及开发工作的评价,经验和教训。
◇ 用户操作手册
详述软件的功能、性能和用户界面,用户如何使用软件,操作 人员具备的有关知识,操作方法的具体细节。
工学二部计算机教研室
2.软件维护的类型
(1)改正性维护
在用户使用过程中诊断、发现和改正错误的过程
称为改正性维护。
(2)适应性维护
硬件系统和外设需要时常更新和升级,造成数据 库环境、数据输入/输出方式、数据存储介质等发生变 换。为了使软件适应这些环境变化而修改软件的过程 叫做适应性维护。
工学二部计算机教研室
(3)完善性维护
11)每个改动耗费的人时数; 12)程序改动的日期;
13)软件工程师的名字; 15)维护类型; 14)维护要求表的标识; 16)维护开始和完成的日期;
17)累计用于维护的人时数; 18)与完成的维护相联系的纯效益。
工学二部计算机教研室
5. 评价维护活动
可以从以下方面度量维护工作:
1)每次程序运行平均失效的次数;
用户文档
使用手册 参考手册 操作员指南
系统文档
工学二部计算机教研室
3. 可维护性复审
测试结束时进行正式的可维护性复审,也称配置复审 目的:保证软件配置的所有成分是完整的、一致的和 可理解的。
工学二部计算机教研室
4. 影响维护工作量的因素
(1)系统大小。系统功能越复杂,理解掌握起来就
越困难,需要的维护工作量越大。
用户在使用过程中提出新的功能和性能要求, 造成功能增加和修改称为完善性维护。
(4)预防性维护
为了改进软件未来的可维护性或可靠性,或者为未来 维护方便而进行的修改,称为预防性维护。在实践中 比较少见。
工学二部计算机教研室
在各类维护中,完善性维护占软件维护工作的大
部分。
根据国外的数据统计表明,完善性维护占全部维
(2)程序设计语言。语言的功能越弱,实现同样功
能所需的语句就越多,程序就越大,维护起来就越
困难。
(3)系统年龄。老系统当初未按照软件工程的要求
进行开发,文档太少;在长期的维护中许多地方与
程序不一致,维护起来困难较大。
工学二部计算机教研室
(4)数据库技术 ( 5)先进的开发技术。使用能使软件结构比较
的难易程度。
① 可理解性 ② 可测试性
1. 决定因素
③ 可修改性 ④ 可移植性 ⑤ 可重用性
工学二部计算机教研室
( 1 )可理解性:软件结构、接口、功能和内部过程
的理解的难易程度。
影响因素:模块化、结构化设计、详细的设计文
档资料、源代码内部文档、良好的程序设计语言等。 (2)可测试性 设计成易测试、易诊断,能用测试工具和调试工 具进行测试和诊断的软件。
1. 软件交付使用的工作
① 数据转换(如数据库数据) ② 调试并加载,准备运行
③ 资料移交(如使用说明)
④ 用户培训
工学二部计算机教研室
意想不到的问题,程序设计错误
2.软件交付方式
(1)直接方式
旧系统
应急措施:随时能切换到旧系统
不适用关系重大的系统
新系统
优点:转换简单,费用最省 缺点:风险大
相关主题