什么是软件的静态演化

根据演化时软件系统是否在运行,可分为静态演化和动态演化。

(1)静态演化

静态演化是指软件在停机状态下的演化。其优点是不用考虑运行状态的变迁,同时也没有活动的进行需要处理。然而停止一个应用程序就意味着中断它提供的服务,造成软件暂时失效。

软件静态演化的步骤如图9-1所示,其详细步骤包括:

图9-1 软件静态演化的过程模型

●软件理解。查阅软件文档、分析系统内部结构,分析系统组成元素及其之间的相互关系,提取系统的抽象表示形式。

●需求变更分析。软件的静态演化往往是由于用户需求变化、系统运行出错和运行环境发生改变所导致的。

●演化计划。对原系统进行分析,确定更新范围和所花费的代价,制定更新成本和演化技术。

●系统重构。根据演化计划对原软件系统进行重构,使之能够适应当前的需求。

●系统测试。对更新后的软件元素和整个系统进行测试,以查出其中的错误和不足之处。

软件静态演化的策略包括:

①功能演化,在对系统功能进行更新时,最简单的机制就是创建相关类的子类,然后重载需要变更的方法,利用多态性来调用新创建的方法。

②构件演化,在开发构件时,通常采用接口和实现相分离的原则,构件之间只能通过接口来进行通信。具有兼容接口的不同构件实现部分可以相互取代,在静态演化过程中,这已经成为一条非常有效的途径。

在基于构件的开发模式中,经常出现的构件接口与系统设计接口不兼容的情况包括接口方法名称不一致和参数类型不一致。为了提高软件演化的效率,通常使用构件包装器(Component Wrapper)来修改原构件的接口,包装器对构件接口进行封装以适应新的需求环境。在构件包装器中,封装了原始构件,同时提供了系统所需要的接口,这样就解决了构件接口不兼容的问题。包装器的实质是一个筛选器,将对原构件的请求进行过滤并调用对应的方法。将一个或多个构件作为复合构件的组成部分,包装允许构件组合和聚集起来完成新的功能。

同时,继承机制也可以实现构件演化。新创建的构件是通过继承原构件而获得的,是原构件的子类型;子类型化是通过加强原构件创建一个新构件,并重用其实现部分来完成的;在原构件的基础上,使用继承机制来创建子构件,并按照需求重新实现相关的虚函数,就可以完成构件演化任务。

图9-2 基于继承机制的静态构件演化

版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。http://www.apmygs.com/549.html
返回顶部