- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六讲 软件维护(Software Maintenance) 内容 系统变更与进化 软件维护的本质 软件维护过程 软件可维护性 预防性维护与软件再工程 1 系统变更与进化 软件系统变更是不可避免的: 软件使用过程中会出现新的需求; 用户的业务环境会发生变化; 可能有未发现的错误; 可能会有新的计算机设备添加到系统中; 系统的性能、可靠性也可能会需要改善。 一个关键的问题就是如何实现和管理现存软件的变更,软件系统随变更要求不断更新改进的过程就是系统进化过程。 系统进化策略 软件维护 对软件做局部改变以响应变更要求,但软件的基本结构保持不变,这是最常见的系统进化方法; 体系结构转换 系统体系结构发生重要变更,通常是系统从集中式,以数据为中心的体系结构向客户机/服务器体系结构转变; 软件再工程 不添加新的功能,通过修改遗留系统使其变得在未来更加容易理解和修改,即具有良好的可维护性。 进化的重要意义 Organisations have huge investments in their software systems - they are critical business assets. To maintain the value of these assets to the business, they must be changed and updated. The majority of the software budget in large companies is devoted to evolving existing software rather than developing new software. 进化与退化 “对一个系统是进行进化延长其生命周期,还是放弃掉,构建一个新的系统替换它?” 是否维护的成本太高了? 系统的可靠性无法接受了吗? 在合理的时间内,系统不能够适应进一步的变化了吗? 系统功能只能起到有限的作用吗? 其他具有同样功能的系统是否更好、更快、更便宜? …… 当其中一些问题或全部问题的答案是肯定的,可能就意味着需要用新系统代替旧系统了。通常,可以根据旧系统、修改的系统和新系统的成本比较来决定是维护、重构还是替换。 进化的螺旋模型 2 软件维护的本质 软件维护是指在软件交付使用之后,为了改正错误和满足新的需要而修改软件的过程。 维护通常不涉及软件体系结构的变更。 变更的实现通常是通过修改现存组件和向系统中添加新的组件去实现。 维护活动类似于开发活动:分析需求、评估系统和程序设计、编写和评审代码、测试变化以及更新文档。 维护的类型 维护通常包括四种类型: 纠正性维护——修补系统缺陷的维护,日常维护的主要工作。 适应性维护——使软件适应不同的操作环境(软硬件环境)的维护 完善性维护——增加或修改系统功能的维护 预防性维护(再工程)——为预防系统后期可能的失效而做的维护。 维护工作量的分布(Lientz and Swanson1980/1981) 维护成本 维护成本一般会高于开发成本; 影响维护成本的有技术因素也有非技术因素。 开发阶段多些投入,有助于减少维护成本。 软件年龄越大,维护成本越高。 开发成本与维护成本的关系 维护成本因素 团队稳定性 Maintenance costs are reduced if the same staff are involved with them for some time. 合同责任 The developers of a system may have no contractual responsibility for maintenance so there is no incentive to design for future change. 人员技术水平 Maintenance staff are often inexperienced and have limited domain knowledge. 程序年龄与结构 As programs age, their structure is degraded and they become harder to understand and change. 3. 维护过程 A 建立维护组织 在维护活动开始之前就明确维护责任是十分必要的,这样可以大大减少维护过程中可能出现的混乱。 ⑴ 维护申请报告(Maintenance Request Form,MRF) 由用户填写的外部文件,提供错误情况说明(输入数据,错误清单等),或修改说明书等。 ⑵ 软件修改报告(Software Change Report) 与MRF相应的内部文件,要求
文档评论(0)