计算机软件动态演化技术概述

摘 要:本文阐述了软件动态演化技术的现状,研究意义和发展前景.

关 键 词 :动态演化;语言层面;体系结构模型

中图分类号:TP311.52

1.软件动态演化的定义

计算机软件技术的发展,令人们的社会生活变得丰富有趣,然而随着计算机硬件技术和网络技术的快速发展,各种各样的计算硬件平台充斥到计算机网络应用的方方面面,许多软件已经因为不能适应物理环境的改变失去了生存空间,人们期望能够有一种新的软件技术来代替原有的软件开发技术,使得开发出的软件能够适应物理环境的改变,延长软件的生命周期,降低软件的开发成本.针对这个问题,国内外专家学者都提出了自己的解决方案,如网构软件、自治计算和普适计算机模式等.

透过现象看本质,产生这个问题的原因是变化,网络环境的改变,硬件环境的改变和人们对软件功能的需求改变.为了解决这个问题,软件动态演化技术应运而生.软件动态演化技术就是期待所开发出来的软件能够在运行中,根据环境地变化而主动修改执行以呈现不同的功能行为的技术.演化主要由满足设计期间需求的预设演化和满足运行期间需求的非预设演化构成.目前,软件动态演化已经成为软件工程中一个新的但是很热门的研究领域.

2.软件动态演化的意义

传统软件常常期望能够尽可能多的满足用户的需求,也就是传统软件演化主要是预设演化,但由于用户需求、网络环境介质,拓扑结构,计算平台等软件应用环境的改变以及软件开发周期的限制,要在软件开发的设计初期考虑所有潜在和未知的需求几乎是不可能的.因此为了延长软件的生存周期,使有限的资源发挥最大的功效,提升软件的适应能力,软件需要具有动态演化的能力.另外,互联网经济体已经成为世界上最重要的经济体之一,互联网经济体对软件的需求是不间断运行,这也是互联网经济体的特点之一,在这种情况下,那怕是因为正常的软件升级和优化造成的短暂停止都会带来巨大的损失,这是用户所不能忍受的.所以支持动态演化是软件维护过程中的有力保证.再者,现有的软件提供模式已经不再能满足用户的需求,用户不希望同一个软件对于不同的用户呈现出来的都是千篇一律的应用,不同的用户对于同一个软件的不同功能感兴趣,用户更希望能够根据需要所需软件,因此,这也要求软件具有演化功能.软件演化技术正是在需求个性化与多元化的刺激下应运而生的.

3.软件动态演化技术的研究现状

现有的软件动态演化技术从软件描述语言、软件体系结构及软件框架与模型等方面进行了深入研究.

(1)在软件演化编程技术上,各种编程语言都提供了一些有效机制实现软件的动态演化,在JA和C++语言中提供了延迟绑定机制,使软件在运行时才绑定具体的对象.C#中的反射机制,可以对软件进行内省,并可以在运行时动态创建对象.但是,编程语言提供的自适应演化机制仅仅局限于DLL替换、函数等小规模范围的演化.

(2)构造动态演化的软件系统难度非常大,原有的演化方式具有将动态演化逻辑固化在应用逻辑中的缺点,这样的方法具有很大的局限性.为了能够在宏观的角度指导软件系统在运行时刻的动态演化,现在的研究从体系结构的角度出发进行动态演化软件的设计,取得了较好的效果,这种支持软件动态演化的体系结构也被称之为动态软件体系结构.我国的北京大学提出了自适应软件体系结构建模及其实施的方法描述,浙江大学则给出了一种形式化的动态体系结构描述语言.

(3)在研究中,许多科研机构给出了软件动态演化技术的框架和模型.东南大学提出了一种自适应框架,该框架可以根据学生的访问设备、网络状况、用户信息等上下文信息动态生成学生的学习对象课件,并且在学生进行学习的过程中,对学生的行为和喜好进行信息收集,以帮助更新学生的模式库和数据挖掘规则.

浙江大学博士提出了一个面向普适计算的自适应中间件模型SCUD,在SCUD中通过扩展时序逻辑对中间件自适应语义进行规范范描述,利用基于内省与上下文感知的外省机制组成一个有机的整体,实现面向普适式计算的可靠高效的中间件自适应演化机制.

(4)作为软件设计开发的新思路,面向服务计算和面向服务体系结构可以通过重用有良好接口的服务而构筑一个新的软件系统,服务与服务之间连接使用松耦合,互相依赖较少.在软件演化技术的研究过程中,不管是采用体系结构还是利用反射等机制,技术核心都是软件实体之间的分离和对象的松耦合引用,只有软件实体之间尽可能的分离,那么单个的软件实体的变化才不会影响其它实体的行为,而松耦合的对象引用让系统在运行过程中,可以通过的解释,透明的转换到实际的对象,这样当对象重建、变化、修改时,用户察觉不到的,系统在运行时的状态便灵活可变,也就实现了用户变化需求的目的.在面向服务的软件体系结构中,将业务逻辑和具体实现技术两者进行了分离,从而使遵循该体系结构的软件应用能适应逻辑业务与实现技术的不断变化;另外,服务提供者将服务的接口信息向服务注册机构发布,该接口信息描述了服务所需的外部环境以及它向外部提供的服务;而服务调用者则通过服务查找服务注册登记处,查找自己所需的服务,进而使用服务接口.这样就实现了服务在运行时进行重新组合,可以随时申请的注销服务.前面所述的机制保证了面向服务体系结构的软件系统在运行时可以灵活多变,实现响应用户需求变化的目的.


4.软件动态演化技术的应用前景

目前,软件动态演化技术的相关理论、技术和方法仍然处在起步阶段,到大范围的应用阶段仍存在一定的距离,许多方法理论需要进一步的研究完善.但是,由于互联网技术和计算机硬件技术的发展,人们对具有动态演化能力的软件需求必将进一步扩大.具有动态演化功能的软件将成为人们开发软件时的首选,具有动态演化的系统可以通过收集外部信息进行自我评估,当信息变化表明外部环境发生变化时,可以进行软件形态的变化,主要表现为软件实体数目、结构和软件具体行为的变化.这样,通过软件演化技术产生的系统将能更加广泛的应用于各种不同的计算平台,使得软件的通用性及个性得到最大限度的发挥.

5.小结

软件动态演化技术的研究和应用软件开发有重要意义,在增强软件对环境的适应能力方面有着广泛的应用前景.本文简单的阐述了当前软件动态演化技术的现状及应用前景.介绍了当前软件动态深化技术取得的一些成果和技术.为以后进一步的研究打下了坚实的理论基础.在以后的系统开发过程中,应该将重构思想贯穿全局,重构的工作方式可以大大减少先前设计的工作量,同时它使设计变为一种必要和需求的产物.这种产物能更准确地反映问题的本身.同时,它也可以使设计随着对问题的进一步深入而逐渐变得合理.这是一种进化的设计方法.

类似论文

计算机软件安全检测技术

摘 要随着信息技术的不断发展,计算机软件的功能也更加全面,计算机软件是保证计算机安全运行的关键,如果软件出现问题,将。
更新日期:2024-10-2 浏览量:17584 点赞量:4978

关于计算机软件安全检测技术的

摘 要:本文从计算机软件安全检测技术的基本内容出发,论述计算机软件安全检测技术应该注意的问题和计算机。
更新日期:2024-10-6 浏览量:19233 点赞量:5656

计算机软件安全检测技术应用

摘 要:现代科技的飞速发展使互联网技术得到更好的运用,各种计算机软件几乎作为人们日常所需&。
更新日期:2024-10-26 浏览量:131946 点赞量:28434

计算机软件安全检测技术

【摘 要】随着计算机软件行业的发展,人们越来越重视计算机软件的安全检测技术的发展,这不仅能够保障软件技术的进。
更新日期:2024-11-9 浏览量:19491 点赞量:5315

计算机网络故障排除技术概述

摘 要:现代社会计算机网络已经应用在各行各业,无处不在,然而同时也带来了很多的烦恼:网络故障越来越普遍,故障种类也。
更新日期:2024-6-28 浏览量:82854 点赞量:18418

刍议计算机软件安全检测技术的应用

摘 要:随着计算机技术和网络技术的快速发展,计算机软件也日趋复杂,软件是计算机重要的核心内容,是保证计算机安全和通。
更新日期:2024-6-25 浏览量:83619 点赞量:18910

计算机软件开发分层技术

摘 要信息时代快速发展的今天,计算机应用环境越来越复杂,而分层技术在计算机软件开发中的广泛应用,使得软件系统的扩展。
更新日期:2024-10-11 浏览量:129253 点赞量:27637