- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章 軟件维护
第八章??软件维护
8.1 软件维护的概念
8.2 软件维护的特点
8.3 软件维护的过程
8.4 软件的可维护性
8.1??软件维护的概念
软件维护是软件生存周期的最后一个阶段,不属于系统开发的过程。
问题
内 容
维护
目的
维护
种类
满足用户对已开发产品的性能与运行环境不断提高的要求,进而
达到延长软件寿命的目的。
改正性
适应性
完善性
预防性
对程序使用期间发现的程序错误进行诊断和改正的过程;
配合变化了的环境进行修改软件的活动;
满足用户在使用过程中提出增加新的功能或修改已有
功能的建议而进行的工作;
为了改善未来的可维护性或可靠性而修改软件的工作。
软件维护的工作量非常大,不同应用领
域的维护成本差别也很大。一般大型软件
的维护成本平均高达开发成本的四倍左右。
改正性
完善性
适应性
预防性
17—21%
50—66%
18—25%
4%左右
软件的易维护性是软件开发过程中每个步骤的一个关键目标。维护费用占软件总支
出的20-30%到70-80%。而无形的代价更是无法估计的。
8.2 维护的特点(1)
维护要求
评价代码
评价设计
一. 维护方式
方式
配置
开始
工作
成本
难度
结构化维护
非结构化维护
每个阶段文档与程序代码
仅有程序代码
评价设计文档开始
评价代码开始
(1)确定软件的结构特征、
性能特性和接口特性,
(2)确定软件修改带来的影
响,找出一种处理方法;
(3)修改设计、复审;
(4)再编写源程序代码,进行
回归测试;
(5)将修改后的软件交付使用
软件结构、
全程数据结构、
系统接口、性
能要求、设计
约束等具体特
点不清楚而很
难确定。
维护成本较低。
易于维护。
很高。
维护困难。
8.2 维护的特点(2)
二.与软件维护有关的问题
影响维护因素
维护困难
软件维护工作量模型:M=P+Kc-d;M:总工作量;P:评价、修改设计和编写代码等
工作量;K:经验常数;c:系统复杂程度;d:维护人员对软件的熟悉程度。
(1)模块化详细设计文档有助于理解软件的结
构、界面功能和内部流程;
(2)开发过程中严格而科学的管理规划及清晰
可靠的文档资料对发生错误后的理解与纠
错无疑是很重要的。
(3)模块的独立程度对软件修改的难易程度、
改进和移植影响是很大的。
软件开发及维护人员的水平;
使用标准的程序设计语言;
使用标准的操作系统接口;
使用规范化的文档资料;
测试用例的有效性。
别人写的程序在没有说明文档时,理解很困难,不为人喜欢;
维护持续时间都很长,开发人员一般不在现场,对软件没有人说明。
绝大多数软件在设计时都没有考虑将来的修改。除非设计中强调了
模块的独立性,否则软件的修改既困难又易发生差错。
开发方法
开发条件
理解
时间
设计
问题
8.3 维护的过程(1)
一.建立软件维护的组织,在组织中有总负责人、系统管理员和维护管理员等。
二.编写维护的报告
用标准化的格式表达所有软件维护的要求。要求包括下列内容:
1.满足维护要求表中提出的要求所需要的工作量;
2.维护要求的性质;
3.该项要求的优先顺序;
4.与修改有关的事后数据。
三.为每一个维护要求规定一个标准化的事件序列(见下页图形)
1.明确维护的类型:纠错性维护,进一步分清是适应性维护还是完善性维护;
2.对纠错性维护从评价错误的严重性开始,分别不同程度采取不同的方法;
3.适应性维护和完善性维护沿着同一路径推进,确定优先顺序后开始工作;
4.对恶性软件故障,应把所有的资源用来解决问题;
5.对任何类型的维护都要进行同样的技术工作,包括:修改软件设计、设计
复审、必要的代码修改、单元测试、集成测试、验收测试和复审等。
8.3 维护的过程(2)
区分
类型
问题
分析
严重性
评价
维护
任务
配置
复审
优先度
评价
问题
分析
计划改
正进度
+
+
维护事件序列图
8.3 维护的过程(3)
维护记录中的数据
工作量考虑
程序标识;
自从安装以来程序失败的次数;
自从安装以来程序运行的次数;
维护每种语言平均花费的人时数;
因程序变动而增加的源语句数;
程序变动的层次和标识;
每次程序运行平均失效的次数;
程序安装的日期;
使用的程序设计语言;
机器指令条数;
源语句数;
不同维护类型所占的时间比。
平均每个程序、每种语言、每种维护类型所做的程序变动数;
与完成的维护相联系的纯效益。
累计用于维护的人时数;
维护开始和完成的日期;
维护类型;
维护要求表的标识;
软件工程师的名字;
程序改动的日期;
每个改动
文档评论(0)