软件工程之软件演化

大型软件系统通常有一个很长的生命周期。在生命周期中会定期发布新版本,对其进行修改是不可避免的。

对于一些大规模的企业系统来说,软件演化的代价及其昂贵。进行变更不仅仅要考虑系统本身,还有对全局系统中其他系统的影响。对某个系统进行变更通常还意味着对其他系统进行修改。棕地软件开发就是用来描述软件系统在其开发和管理所处的环境中依赖于其他许多软件系统。

软件开发与演化是一个集成的、完整的、增量式的过程。软件工程是一个贯穿生命周期的,由需求、设计、实现、测试组成的螺旋过程,开始于系统的第一个发布版本的创建,一日交付使用,变更提出,第二个发布版本的开发立即开始。事实上,甚至于在系统部署前,演化的需求可能已变得明显,以至于在目前的版本发布之前,软件的后续版本已经在开发中了。最近十年,软件螺旋式迭代的周期正变得越来越短。

软件演化生命周期的另一种视图:软件开发、软件演化、软件维修、软件退役。

软件演化过程是由变更请求驱动的。软件演化过程的通用模型:变更请求、影响分析、发布规划、变更实现、系统发布。

遗留系统是旧的软件系统,它使用过时的软件和硬件技术开发,但对企业仍然有用。遗留系统中的元素包括:系统硬件、支持软件、应用软件、应用数据、业务过程、业务政策和规则。

对系统中的某一层的修改可能要求上一层和下一层都进行修改。1、修改系统的某一层可能引入新工具,系统中更高的层可能会进行修改以利用这些新的工具。2、修改软件可能会使系统变慢,从而需要新的硬件来改进系统性能。3、维护硬件接口通常是不可能的,软件与硬件之间存在紧密耦合。

用新系统取代遗留系统昂贵且高风险的原因:1、遗留系统很少有一个完备的规格说明。2、业务过程以及遗留系统的运行方式经常不可避免地交织在一起。3、重要的业务规则可能蕴含在软件中。4、新的软件开发从内在来说也是充满风险的。

应当对遗留系统的业务价值、应用软件的质量、应用软件的环境进行评估,然后才能决定是否更换、转换和维护系统。面对遗留系统有四种选择:1、彻底废弃这个系统。2、不再大幅修改系统仅保持常规维护。3、对系统进行再工程以改善其可维护性。4、用一个新的系统代替整个或部分系统。

对于定制系统来说,软件维护的费用一般超过了软件开发的费用。软件维护包括:1、修复软件缺陷。2、使软件适应不同操作系统。3、增加或修改系统功能。

软件再工程的目标是改善系统结构和文档,使其更容易理解和变更。

重构做出一些小的程序修改同时保持原有功能不变,它可以看做是一种预防性的维护。

37f34ffcb451129ff2246c17627dc407.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值