




已阅读5页,还剩90页未读, 继续免费阅读
(计算机软件与理论专业论文)基于体系结构的软件演化及轻量级实现机制.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河海大学硕士学位论文 摘要 摘要 软件体系结构从系统全局刻画系统的结构,是软件动态演化的重要依据。 现有的基于体系结构的软件动态演化模型中,通常使用体系结构描述语言( a d l ) 来刻画系统的状态和结构,但以此为基础对软件动态演化及实现机制进行的研 究工作还不够系统和实用。 本文以轻量级框架为特定的研究对象,从软件演化技术、轻量级j 2 e e 框架, 运行时体系结构标记语言、体系结构求精、软件模型、运行机制和实现平台等 方面,逐步展开研究和论述,给出了符合该框架应用系统的体系结构描述方法, 提出了基于该描述方法的支持动态演化的软件模型,并结合具体应用需求实现 了一个符合该软件模型的支撑平台系统。主要内容如下: 1 、在分析现有的轻量级框架的基础上,提出了一个改进的轻量级框架,并 给出了该框架的运行时体系结构标记语言l j r a m l ( l i g h t w e i g h tj 2 e e r u n t i m e a r c h i t e c t u r em a k e u pl a n g u a g e ) 。运用l j r a m l ,可采用三个层次和两个步 骤进行求精的方法来描述体系结构,为动态演化提供支撑。 2 、在l j r a m l 的基础上,提出了基于轻量框架的、支持软件动态演化的软 件模型l j r s a b m( l i g h t w e i g h tj 2 e e r u n t i es o f t w a r e a r c h i t e c t u r eb a s e d m o d e l ) 。l j r s a b m 软件模型引用了反射机制,其元层是具有树形结构的体系结 构标记语言l j r a m l ;其基层由可运行的构件组成,元层和基层之间建立因果相 联的关系,从而通过对元层的修改,来实现基层运行时的动态调整。 3 、针对水利领域信息集成应用的需求,以l j r a m l 、l j r s a b m 为基础,设 计并实现了w i s e ( 押a t e ri n f o r m a t i o n 工n t e l l i g e n ts e r v i e e se n v i r o n m e n t ) 支撑平台。w i s e 支撑平台不但支持符合l j r s a b m 模型应用的构造、部署和演化, 并提供基本的运行环境,形成了一种基于资源集成和业务应用动态构的领域应 用模式。 关键词:软件动态演化;体系结构;反射;框架;构件;轻量级架构 河海大学硕士学位论文 a b s t r a c t a b s t r a c t s o f t w a r ea r c h i t e c t u r e ,s af o rs h o n ,d e s c r i b e st 1 1 es o n 嘲s t m c t u r cf b ma g l o b a l v i e w a n d “i st t l eb a s i cf | a c t o rf o re v o l u t i o n t h em o s to f l es ab a s e ds o f t w a r e d y l l a n l i ce v o l u t i o nm o d e l su s e da r c h i t e c t u r ed e s c r i p t i o nl a l l g u a g e ,a d lf o rs h o r t , t od e s c r i b et h eg t r u 蛐鹏o fs o f 妇a 咒m o s tr e s e 莉h 曲o u td y n a m i ce v o l 砥o nb a s e d o ns aa r en o ts y s t e m a t i c a le n o u 曲,a n dd i 伍c u l t t ou s ei np r a c t i c e ,c u r r e m l y i nm i sp a p e r ,w ec o n d u c t e das e r i e so fr e s e a r c h e s ,i n c l u d i n gs o 仔w a r ee v o l u t i o n , a d l ,a r c h i t e c t u r ef e 矗n e m e n t ,s o r w a r em o d e l 锄dr e n e c 蛀o nm e c h a n i s m sf o r d y n 蜘i ce v o l u t i o n a n dw ef o c u so l l ra t t e n t i o no nl i g l t w e i g h t 行锄e w o r ka 1 1 dg i v e ad e s c r i p t i o nm e t h o do ft t l es a b yu s i n gt h a ta d lw ep m p o s eas o f h a r em o d e l t h a tc o u l ds u p p o r ts o f f w a r ed y n a r n i ce v o l u t i o n n l e nw ei m p l e m e n tap l a t f o r r nb a s e d o nt l a ts o f n a r cm o d e l t h ec o n m b m i o n so f t l l i sp 印a ra 糟a sf o l l ow f r j s t l y ,w et a k e t l l e l i g h t w e i g h t 丘锄e w o r ki m oa c c o u n t ,a n dp r 叩o s ea m o d i f i c a t i o nl i 曲t w e i g h t 行枷e w o r k 1 1 h e nw eg i v c l ed e s c r i p t i o nm e n l o do ft b a l f r 锄e w o r k w ec a l lt h a tl a n g u a g el i g h e i g h tj 2 e e r u n t i m e 觚h “e c t i l r em a k e u p l a i l g u a g e ,w h i c hw ec a l l e dl j r a m lf o rs h o n s e c o n d l y ,w ep r o p o s eas o 矗w a r em o d e lb a s e do nt h el j i h m lt h a tm o d e la i s o s u p p o r tt h es o f h v a r cd y n 咖i c “o l u 廿o n w ec a l l e di tl i 曲t w e 培h tj 2 e e r u n t i r n e s o 疗w a r ea r c h i t e c t u r eb a s e dm o d e l t h el j r s a b mf o rs h o n t h el j r s a b mi s c o n s t m c t e db yr e n e c t i o nt e c h n o i o g y n + sm e t a 一1 e v e i i st h eu r a m lw h i c hh a s t i e l i k el a y e r s a n di t sb a s e l e v e li s c o m p o s e do fp h y s i c a lc o m p o n e n t s t h e m e t a l e v e la n db a s e 1 e v e la r ea s s o c i a t e di nm ef o n t lo fc a u s ea n de f f e c t l a s t i y ,w et a k et h ed o m a i l lo fw a t e rr e s o u r c e si n t oa c c o u t ,a i l di m p i e m e ma p l a t f o mb a s e do nm el j - r a m lw ec a l l l ep l a t f o mw r a t e ri n f o m a t i o ni n t e l l i g e n t s e r v i c e se n v i r o n m e n t ,w i s ef o rs h o n t h ew i s ec a i ld y l l 啪i c a l l yc o n s t n l c ta 1 1 d e v o l v et h es o f t 、a r ea p p l i c a t i o nt h a tb a s e do nt h el j r a ml k e yw o r d s : s o f t w a r ed y n 枷i ce v o l u t i o n ;s o f h v a r ea r c h i t e c t u r e ; r e f l e c t i o n ; f r a m e w o r k ; c o m p o n e m ;“曲t w e i 曲tj 2 e e 学位论文独创性声明: 本人所呈交的学位论文是我个人在导师指导下进行的研究工作 及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果。与我一 同工作的同事对本研究所做的任何贡献均已在论文中作了明确的说 明并表示了谢意。如不实,本人负全部责任。 论文作者( 签名) : 学位论文用户许可证说明 年月 日 河海大学、中国科学技术信息研究所、国家图书馆、中国学术 期千u ( 光盘版) 电子杂志社有权保留本人所送交学位论文的复印件 或电子文文件,可以采用影印、缩印或其他复制手段保存论文。本 人电子文文件的内容和纸质论文的内容相一致。除在保密期内的保 密论文外,允许论文被查阅和借阅。论文全部或部分内容的公布( 包 括刊登) 授权河海大学研究生院办理。 论文作者( 签名) : 么谑 年月日 河海大学硕士学位论文第一章绪论 1 1 研究背景 第一章绪论 本论文的研究工作是教育部科学技术研究重点项目基于本体的水利领域 软件体系结构基础研究及建模分析( 项目编号:1 0 7 0 5 6 ) 的有机组成部分。 在信息技术飞速发展的今天,软件系统已经进入社会的各个领域,成为各 种组织、单位( 如,政府、企业、研究所) 不可或缺的资源。然而,随着信息 化进程的深入,软件系统所需面临的变化越来越多,越来越不确定,传统刚性 的、结构紧耦合的软件系统已无法满足当今日益开放的环境和多变的需求,人 们发现,传统的软件系统质量衰退严重,投入运行不久,就因不能满足当前的 业务需求而被淘汰。因此,为应对不可确定的、多变的变化,软件演化的研究 提上日程。软件需要应对的变化有很多,总结起来有三个方面,第一是运行环 境的变化,包括基础设施的升级,操作系统的变迁等;第二是技术的升级,包 括新技术的引入,高性能算法的发现等;第三是用户需求的变化。本文主要研 究的是软件如何应对第三个方面的变化用户需求的变化。 至今,学术界对软件演化的的定义尚未有统一的认识 1 , 但研究者都肯 定了软件演化的重要性和必要性,d e p e r r y 认为 2 ,演化是软件的基本特征, 除非是被淘汰的软件系统,否则一定会演化。l e h m a n 3 指出:除非系统严格的 保持对环境变化的适应,否则软件系统的质量会严重衰退。本文对软件演化的 定义是指软件为适应用户需求的变化而进行自身调整的过程。从行为上看,软 件的演化性是指软件系统能够根据需求的变化,不仅能够增加,删除和更新软 件系统的组成部分,还可以调整系统的内部结构。软件演化可以分为两种方式: 静态演化和动态演化 4 。静态演化需要停止系统的运行,更新,然后在启动运 行:而动态演化在系统保持运行的同时进行更新,即边运行边演化。 现代软件越来越大,越来越复杂的现状决定了软件演化,特别是软件动态 演化需要从宏观角度进行研究,这样可以避免过早的将软件演化的研究陷入复 杂细节中去。软件体系结构作为软件的蓝图,为人们宏观把握软件的整体结构 河海大学硕士学位论文 第一章绪论 提供了一条有效途径。从而要从宏观角度来研究软件演化,应该从软件体系结 构的角度开始。 1 2 选题依据 1 2 1 研究现状 在实际应用过程中,在面对环境和需求变化时,软件处于既要更新,又不 能停止运行的两难境地时,通常采用硬件冗余的方法。 基于硬件冗余的解决方案是在保持当前系统正常运行的前提下,在另外一 台机器上加载新版本的软件系统,然后将系统切换到新机器上。文献 7 介绍了 v i s a 公司使用2 1 台大型机来运行连接有5 0 0 0 万根线的处理系统,这个系统平均 每年更新2 0 ,o o o 次,但是只有0 5 的时间里是停机的。这是通过关闭系统中的 部分机器,接着更新其中的软件,然后重新启动这部分系统,最后进行系统切 换实现的。文献 8 描述了负责飞机间的通信系统a c a r s 。这个系统用一台路山 器传递消息,而路山器山一台主机( p r i m r ym a c h i n e ) 和一台副机( h o ts t a n d b y m a c h i n e ) 组成。主机负责所有发送和接收信息上作,而且定时的将所有的状态 信息发送给副机。当系统需要更新时,新的软件被安装到副机上,然后主机和 副机交换角色,由原来的副机负责发送和接收消息,而下一次的软件更新将发 生在原来的主机上。 在学术研究方面,国内外己提出许多的软件模型和应用框架。如j d o w l i n g 等人设计了k c o m p o n e n t 元模型 1 0 。在k c o m p o n e n t 元模型中,一个有向配置 图被用来表示应用系统的软件体系结构,其中的图节点表示构件接口,类型标 签表示构件,有向边表示连接件。一个反射机制被设计用来在这个有向配置图 和目标系统之间建立因果连接,有向配置图和同标系统问是模型和实现的关系, 从而使得配置图反映系统的真实软件体系结构。 a r c h s t u d i o 1 1 是一种支持c 2 体系结构的动态修改的工具。a r c h s t u d i o 的 动态性表现在它有一个a e m ( a r c h i t e c t u r ee v o l u t i o nm a n a g e r ) ,a e m 维护从体 系结构模型到实现的映射。对体系结构的更改请求将调用a e m 并由a e m 判断更改 2 河海大学硕士学位论文第一章绪论 是否合法。南京大学马晓星等人提出了一种面向服务的动态协同架构 1 2 该架 构引入了内置的运行时体系结构对象来解藕系统中的各个服务构件,并通过该 对象,从钵系结构的视角来重新解释服务构件之间的引用和交互。这样,就把 体系结构这一抽象的概念具体化为可以直接操作的对象,从而可以利用面向对 象程序设计语言的继承和多态等机制,导出一种面向体系结构的系统动态演化 技术。 w c a z z 0 1 等人提出了一种支持动态演化的反射中间件r a m s e s 1 3 。北京 大学的p k u a s ,是基于体系结构反射的中间件系统,实现了e j b 构件的在线演化 1 4 ,15 。 1 2 2 存在问题 基于硬件冗余的解决方案的虽然有效,当系统发生错误时,可以切换到备 用冗余部分上,以确保了服务运行和可用。但这种方式成本比较大,且演化是 整个应用系统,粒度过大,演化过程耗费的时间也过长 9 。 而在现有的基于体系结构的软件动态演化模型中,通常使用体系结构描述 语言来刻画系统的状态和结构,但以此为基础对软件动态演化及实现机制的研 究工作还不够系统和实用。现有的基于体系结构的软件动态演化模型中体系结 构描述语言通常是基于n 演算、z 语言等形式化的描述方法,这些描述的方法能 准确、严格的刻画各种软件体系结构的各种约束、属性以及个各种风格规约等 信息,并能从逻辑上证明其描述的难确性和一致性,但从应用的角度看,这些 形式化描述语言过于抽象、复杂和庞大,不适合用于指导实际应用的开发和演 化。 1 2 3 研究意义 本文的研究内容依托软件体系结构的研究成果,结合应用领域内学信息系 统发展中存在着需求变化越来越快、越来越复杂的现状,在体系结构的层次对 软件的动态演化及轻量级的实现机制进行研究,研究基于体系结构的软件动态 演化具有如下的理论意义和应用价值。 河海大学硕士学位论文第一章绪论 第一,动态演化的实现的难度要远远高于静态演化,但动态演化有其重要 的实用意义和不可替代的优势,比如在防汛指挥系统等的需要7 2 4 运行的系统 中,就需要边不问断运行的同时更新软件。 第二,即便是一般应用需求,如果软件具有动态演化特性,将大大提高系 统的动态性、可开发性和柔性,延长系统的生命周期。由此可见,软件的动态 演化的能力显得日益重要,动态演化得到学术界和业界的大力亲睐,成为软件 工程研究的热点课题。 第三,本论文的研究工作是教育部科学技术研究重点项目基于本体的水 利领域软件体系结构基础研究及建模分析( 项目编号:1 0 7 0 5 6 ) 的有机组成 部分,完成该项目的初步研究。 第四,为探讨下一代的水利信息系统做基础工作。现有的水利信息系统中, 软件资源重复开发严重,严重阻碍了资源共享的实现,严重影响了特定领域信 息化的发展,本文的研究提出了一种基于资源集成和业务应用动态构的领域应 用模式,为水利信息化的基硎:研究。 1 3 本文工作 本文的研究思路是,系统的从软件演化、软件体系结构求精,运行时体系 结构标记语言、反射机制、软件模型和支撑平台等方面逐步展丌研究。首先在 研究现有的轻量级j 2 e e 框架的基础上,并且提出一个改进的轻量级框架,然后 用结构化的方法对其运行时体系结构进行描述,提出运行时体系结构标记语言: l j r a m l ;根据l j r a m l 设计一个基于改进轻量级框架、支持动态演化的软件模 型l j r s a b m ;并结合水利领域,实现一个支撑平台w i s e ,w i s e 将根据l j r s a b m 模型所设计和开发,支持符合l j r s a b m 模型的应用软件的构造、部署和演化, 并能提供基本的运行环境。 本文的具体工作如下: ( 1 ) 提出一个改进的轻量级框架,及该框架的运行时体系结构标记语言 l j r a m l 。 4 河海大学硕士学位论文 第一章绪论 在研究现有的轻量级j 2 e e 框架的基础上,提出一个改进的轻量级框架及其 运行时体系结构标记语言l j r a m l ,与其他软件体系结构描述语言不同,l j - r a m l 的设计并不是为了描述任意风格的软件体系结构,而是针对特定的轻量级应用 的描述语言,相对于其他的软件体系结构描述语言,l j r a m l 是一种更加实用, 更加简约的语言,因此,l j r a m l 是一种轻量级的标记语言。 ( 2 ) 根据l j r a m l ,提出基于轻量级框架的支持软件动态演化的软件模型 l j r s a b m 。 l j r s a b m 使用反射技术构造,其元层由l j r a m l 标记组成,基其层由可运行 的物理构件形成,元层和基层因果相联。通过对运行时软件体系结构的观察, 可获知系统的结构和行为信息。而软件动态演化是修改元层,即修改运行时软 件体系结构标记语言l j r a m l ,通过反射的因果相联,实现对基层的调整。 ( 3 ) 以水利为领域,根据国家水利信息化规划的需求,设计实现一个支持 l j r s a b m 模型的应用平台w i s e 。 w i s e 支撑平台以水利为特定的应用领域,根据国家水利信息化规划,从水 利信息化综合体系上看,w i s e 支撑平台完成对“水利信息化综合体系”的业务 应用和数据中心的支撑。同时,w i s e 支撑平台支持符合l jr s a b m 模型应用的构 造、部署、演化,并提供基本的运行环境。 1 4 本文结构 本文组织结构如下 第一章为绪论,重点分析本课题的研究背景、选题依据,并讨论国内外软 件演化的研究现状和文章的主要工作。 第二章简要讨沧软件演化和软件体系结构的基本内容,主要讨论软件演化、 软件体系结构及软件体系结构和软件演化之问的关系,重点说明运行时体系结 构在软件演化中的作用和意义。 第三章主要改进的轻量级框架下的运行时体系结构标记语言l j r a m i 河海大学硕士学位论文第一章绪论 ( l i 曲t w e i 曲tj 2 e e r u n t i m ea r c h i t e c t u r em a k e u pl a n g u a g e ,运行时轻量级 j 2 e e 体系结构标记语言) 。在研究现有的轻量级j 2 e e 框架的基础上,本文提出 一个改进的轻量级框架,并设计出该框架的运行时体系结构描述语言l j r a m l 。 与其他软件体系结构描述语言不同,l j r a m l 的设计并不是为了描述任意软件的 体系结构,而是针对轻量级运行环境下运行时软件体系结构的描述,相对于其 他的软件体系结构描述语言,l j r a m l 是一种更加实用,更加简约的语言,因此, l j r a m l 是一种轻量级标记的语言。 第四章提出基于l j r a m l 的软件模型l j r s a b m ( l i 曲t w e i g h tj 2 e e r u n t i m es o f t w a r ea r c h i t e c t u r eb a s e dm o d e l ) 。该软件模型使用了反射机制, 元层是根据第三章提出的具有树形结构的体系结构标记语言组成,基层由可运 行的构件组成,元层和基层之问建立因果相联的关系,可以通过对元层的运行 时体系结构描述进行修改,来达到基层运行的改变,这也是l j r s a b m 实现动态 演化的机制。 第五章是关于w i s e 支撑平台的设计、实现以及在实际应用下的演化应用案 例。w i s e 支撑平台是以水利为特定领域对象,根据围家水利信息化规划的需求, 实现的一个支持l j r s a b m 模型的应用平台。w i s e 支撑平台支持符合l j r s a b m 模 型应用的构造、部署、演化,并能提供基本的运行环境。而从水利信息化综合 体系上看,w i s e 支撑平台实现了对“水利信息化综合体系”的业务应用层和数 据中心的共同支撑,初步形成了一种以资源描述与体系结构动态配置为特色的 新一代水利领域业务应用模式。 第六章是全文总结和进一步研究工作展望。 6 河海大学硕士学位论文 第二章软件演化与软件体系结构 2 1 引言 第二章软件演化与软件体系结构 本章简要讨论软件演化技术和软件体系结构的内容,主要讨论软件演化与 软件体系结构之间的关系,并对基于体系结构的软件演化的现状和u j 题进行分 析。首先概述软件演化,包括软件演化的概念、分类和内容,然后介绍软件体 系结构,最后说明了软件演化和软件体系结构之间的关系,重点说明运行时体 系结构在软件演化中的作用和意义。本章内容主要是为了下文的论述提供理论 基础。 2 2 软件演化技术 2 2 1 软件演化概述 2 2 1 1 软件的演化性和构造性 构造性和演化性是软件的本质特征 1 6 ,软件是对客观世界中问题空间与 解空间的具体描述,是客观事物的一种反映,是知识的提炼和“固化”,而客观 世界是不断变化的,因此,软件也必须要随客观世界的变化而变化,可以认为 软件演化是软件为了适应客观世界的变化而变化。如何使软件具有更强的表达 能力,把客观事物的活动用软件表达出来,就需要讨论软件的本质特点:构造 性和演化性。如何使软件模型具有更强的表达能力,如何使软件系统更能适应 动态变化的环境,在一定意义上来讲,都紧紧围绕了软件的本质特征一构造性 和演化性。一般来说,演化性高的软件其设计具有良好的构造性、更强有力的 模型表示和更高的计算抽象层次。所以软件应该具有更加严谨的结构性。就必 须把客观活动的结构性提炼出来。和其它客观事物一样,软件系统也具有演变 性,并在不断的演化中促使技术不断发展。同样,技术的发展会反作用于系统, 促进系统的演化。 河海大学硕士学位论文第二章软件演化与软件体系结构 2 2 1 2 软件演化与软件维护 在传统的软件生命周期模型中,软件产品一旦交付,就进入了软件维护阶 段直至淘汰。为了修改软件存在的错误,完善应用或适应新的需求而进行的软 件维护是软件整个生命周期中耗时最长,代价最大也是最痛苦的阶段 5 ,6 , 据统计,在欧美国家,软件维护费用占总预算的5 0 一8 0 ,耗时约为开发的5 倍。 而在实际应用中,情况更加严重,随着时间的推移,因文档的逐渐缺失和开发 人员的离去而导致维护信息的丢失,不可避免的导致了软件状况的不断恶化, 使得软件的维护难上加难。软件维护工作的困难主要表现在以下几个方面: ( 1 ) 读懂别人的程序是很困难的,而文档的不足更增加了这种难度。一般 开发人员都有这样的体会,修改别人的程序还不如自己重新编写程序。 ( 2 ) 文档的不一致性是软件维护困难的又一个因素,主要表现在各种文档 之间的不一致以及文档与程序之问的不一致性,从而导致维护人员不知所措, 不知怎样进行修改。这种不一致性是由于开发过程中文档管理不严造成的,开 发中经常会出现修改程序而忘了修改相关的文档,或者某一个文档修改了,却 没有修改与之相关的其他文档等现象,解决文档不一致性的方法就是要加强开 发工作中文档的版本管理。 ( 3 ) 软件开发和软件维护在人员和时间上存在差异。如果软件维护工作是 由该软件的开发人员完成,则维护工作相对比较容易,因为这些人员熟悉软件 的功能和结构等。但是,通常丌发人员和维护人员是不同的,况且维护阶段持 续时间很长,可能是1 0 2 0 年的时问,原来的开发工具、方法和技术与当前有 很大的差异,这也造成了维护的困难。 ( 4 ) 软件维护不是一件吸引人的工作。由于维护工作的困难性,维护经常 遭受挫折,而且很难出成果,所以高水平的程序员自然不愿主动去做,而公司 也舍不得让高水平的程序员去做。 因此,消极的对软件做局部的修改,已无法积极的适应在新环境下用户需 求的变化,这就迫使软件工程师寻求新的方法学。随着技术和观念的进步,在 软件工程活动中,人们开始区分软件维护和软件演化。软件维护和软件演化是 8 河海人学硕士学位论文第二章软件演化与软件体系结构 两个相互联系又具有本质区别的概念: ( 1 ) 从软件的生命周期看,软件维护发生于软件交付之后,而软件演化却 贯穿与软件的整个生命周期。如下图2 1 所示。 图2 1 软件维护与软件演化 ( 2 ) 从粒度上分析,软件维护往往是局部的,小粒度的变化,具体的说就 是指在修改局部的代码,一般情况下不会改变软件的结构;而软件演化主要是 在大粒度上的变化,比如体系结构的变化,具体体现在功能的构件的替换、更 新上。 ( 3 ) 从应对变化的能力上看,软件维护往往是消极的,救火式的应当变化, 即在变化来临时才考虑如何进行修补,而软件演化则是积极的应对变化,在面 对变化时,有相应的演化策略和演化机制支撑,能够快速方便的解决应对变化 的问题。 ( 4 ) 从软件开发上看,传统的软件并不考虑或很少考虑到将来的变化:而 软件演化支持者则认为在软件开发的早期,设计阶段甚至是在需求分析阶段就 要考虑将来可能出现的变化,不仅对需求进行功能性的分析和设计,还要对演 化的策略、演化的机制进行研究、设计和实现。 2 2 2 软件演化的研究维度 作为软件工程的一个新兴研究课题,软件演化的研究内容是什么呢? t m e n s 等人在分析了前人软件演化研究工作上,从软件演化的特点和影响软件 演化的因素出发,总结了研究软件演化的四个维度,分别是:w h e n ,w h e r e ,w h a t , 和h o w 。w h e n 维是指软件演化时问上的属性;w h e r e 维是指演化的对象,即是哪 9 河海大学硕士学位论文第二章软件演化与软件体系结构 儿需要演化;w h a t 维是指系统的属性;h o w 维是指演化的支撑,也就是如何实现 演化 6 。 w h e n 维。w h e n 指软件演化的时间属性,演化的时间属性跟编程的语言和运 行的环境有关,可以根据软件的生命周期中不同阶段来划分。在软件演化中最 常用划分方法是把演化的时间属性划分为三个:编泽时( c o m p i l e t i m e ) 、加 载时( l o a d t i m e ) 、和运行时( r u n t i m e ) 。 ( 1 ) 编译时演化。是指软件的演化需要修改软件系统的代码,修改之后的 软件需要停止运行、重新编译、重新部署,才能完成最终更新。即软件演化要 通过重新编泽才能实现。 ( 2 ) 加载时演化。是指软件演化发生在软件的元素( 比如类和对象) 被加 载到系统时。 ( 3 ) 运行时演化。是指软件能在执行的同时更新。 编译时演化属于静态演化,运行是演化属于动态演化。而加载时演化相对 复杂介于动态和静态演化之问,根据不同的语言的加载机制,加载时演化可以 是静态演化,也可能是动态演化,比如使用j a v a 的c l a s s l o a d e r 的延迟加载来实 现演化就属于动态演化 1 7 。时间维另外一个属性就是对演化历史的记录和演 化的频率。 w h e r e 维。w h e r e 维是指演化的对象,即是哪儿需要变化。主要研究四个方 面:演化的对象、演化的粒度、演化的影响和演化的扩散。 ( 1 ) 演化的对象范围很广,可以从需求、软件体系结构、设计、代码到测 试,不同的演化对象所影响的演化程度,演化机制也是各不相同的。 ( 2 ) 演化粒度可以分为初粒度演化、中粒度演化和小粒度化演化。以面向 对象的系统为例,大粒度演化指的是整个系统、予系统或者包一级的演化;中 粒度演化是指类或者对象一级的演化;而小粒度演化指的是变量、函数或声明 的变化。 ( 3 ) 演化的影响是指演化对系统的影响是局部的还是全局的。 1 0 河海大学硕士学位论文第二章软件演化与软件体系结构 ( 4 ) 演化的扩散是指某一部分的变化影响是否跟以其有关联的部分。 w h a t 维。w h a t 维是指系统的属性。是指软件系统的会对演化有影响的属性, 也可以理解为系统对演化的支撑程度。这几个属性分别为:有效性、积极性、 开放性和安全性。 h o w 维。h o w 维是指演化的支撑,也就是实现演化的机制。h o w 维主要研究的 是软件演化的机制,虽然软件演化的机制各不相同,但可以从几个方面去评价, 自动化程度、形式化程度、过程支持和演化类型。 ( 1 ) 自动化程度可以分为全自动演化、半自动演化和手工演化。全自动的 演化时软件演化研究者追求的目标,但自今为止,全自动的演化尚处于可行性 研究的阶段。事实上,现在能够达到是半自动化的演化。 ( 2 ) 形式化程度是指演化机制是任意的确定的还是有一定的形式化语言作 为基础。形式化的软件演化机制是自动化演化的基础。 ( 3 ) 过程支持是指是否有良好的工具帮助用户实现演化。 按照这四个维度分析本文的研究,从w h e n 维上看,本文研究的重点内容是 运行时演化,属于软件的动态演化;从w h e r e 维的粒度上看,基于体系结构的软 件演化属于粗粒度、高层次的演化;从w h a t 维上看,本文建立的演化支撑平台 是开发性的演化系统;从h o w 维上看,本文采用的是反射机制来实现软件的动态 演化。 2 2 3 软件演化的分类 2 2 3 。1 软件静态演化 软件演化可分为静态演化和动态演化两种 6 ,3 。软件静态演化是指发生 在应用程序停止时的软件修改,可以认为,一般意义下的软件维护、升级和重 构属于软件的静态演化。静态演化比较容易实现,不需要软件具备动态性,没 有状态迁移或活动线程的问题要解决,但静态演化需要停止软件的运行,使其 暂时不能够提供的应用服务。 河海大学硕士学位论文 第二章软件演化与软件体系结构 现在有很多软件静态演化的支持工具,比如支持s m a l l t a l k 的工具 r e f a c t o r i n gb r o w s e o r 1 8 ,c v s 1 9 等。c v s ( c o n c u r r e n tv e r s i o n ss y s t e m ) 并行版本系统 1 9 ,是一个开源的版本控制系统,用于控制多人对同一个软件 的修改时产生的并发问题,c v s 使用相当的广泛,主要用于控制和协调多人同时 对程序进行修改。值得注意的是,c v s 是一个代码管理工具,不能运行其管理程 序,也不负责检查代码的正确性。 2 _ 2 1 3 2 软件动态演化 软件动态演化是指软件在运行期间的演化 6 。在许多重要的应用领域中, 例如金融、电力、电信及空中交通管制等,系统的持续可用性是一个关键性的 要求,运行时刻的系统演化可减少因关机和重新启动而带来的损失和风险。此 外,越来越多的其他类型的应用软件也提出了运行时刻演化的要求,在不必对 应用软件进行重新编译和加载的前提下,为最终用户提供系统定制和扩展的能 力。 软件动态演化可分为两种类型:预设的和非预设的。在w e b 环境中,软件应 用常常需要处理多种类型的信息,因此它们常被设计为可以动态下载并安装插 件以处理当前所面i 临的新类型的信息;而分布式w e b 应用也常常需要增减内部处 理节点的数目以适应多变的负载。这些动态改变都是软件设计者能够预先设想 到的,可实现为系统的固有功能。另有一些必须对系统配置进行修改和调整的 情况是直到系统投入运行以后才发现的,这就要求系统能够处理在原始设计中 没有完全预料到的新需求。这种情况下一般需要关闭整个系统,重新开发、重 新装入并重新启动系统。然而,为了进行局部的修改而关闭整个系统在某些情 况下是不允许的( 例如生命维持系统) 或者代价太高。精心设计的动态演化技术 可以在不关闭整个系统的前提下修改系统的结构配置,并尽量使未受影响的部 分继续工作以提高系统的可用度。 1 2 河海大学硕士学位论文第二章软件演化与软件体系结构 2 3 软件体系结构 2 3 1 软件体系结构概念 软件工程的发展并未彻底解决软件开发周期长、代价高和质量低的问题, 主要原因在于很难有效的将需求转换为相应的设计。为此,软件体系结构 ( s o f t w a r ea r c h i t e c t u r e ,s a ) 应运而生 2 0 ,2 1 。然而,虽然经历了数十年的 发展,对软件体系结构的定义学界仍然没有一致的说法。不同软件体系结构学 者提出了不同的定义和内涵,具有代表性的定义有v e s t a l 模型 2 2 、c f r p 模型 2 3 、g a r l a n s h a w 模型 2 4 、b o e h m 模型 2 5 、i e e e6 1 0 1 2 1 9 9 0 软件工程 标准词汇中的定义 2 6 、p e r r y w 0 1 f 模型 2 7 等。梅宏等人总结了相应的定 义认为较有影响力的定义包括 2 8 : ( 1 ) 软件系统的结构( s t r u c t u r eo rs t r u c t u r e s ) ,包含软件元素、软件元 素外部可见的属性以及这些软件元素之间的关系。 ( 2 ) 软件系统的基本组织,包含构件、构件之间、构件与环境之间的关系, 以及相关的设计与演化原则等这些定义一般都将构件以及构件之间的连接作 为s a 的基本组成部分。 ( 3 ) 而从特定领域的角度看,软件体系结构就是领域软件系统中构件及构 件问的关系,也就是从软件构件和软件构件间的交互关系的角度来刻画软件系 统结构。并且,软件体系结构提供了一种在较高抽象层次观察、设计系统并推 理系统行为和性质的方式,也提供了设计和实现可复用性更好的构件、甚至复用 连接子的途径。 软件的体系结构是决定系统开发成败的重要因素之一。然由于学者对软件 体系结构的定义和理解的不同,导致了软件体系结构的研究内容和途径也大相 径庭,归纳起来,目前对软件体系结构研究可以分为两个派别 2 0 :学院派与实 用派。顾名思义,学院派一般是由指理论研究者组成,重点研究软件体系结构 的形式化研究。而实用派研究者则侧重于软件体系结构的应用,研究软件体系 结构设计、描述与表示,与传统的软件系统建模类似。 河海大学硕士学位论文第二章软件演化与软件体系结构 2 3 2 软件体系结构描述语言 描述软件体系结构是研究软件体系结构的前提,软件体系结构的描述一般 使用软件体系结构描述语言( a r c h i t e c t u r ed e s c r i p t i o nl a n g u a g e , a d l ) 。 a d l 可以视为对构件描述语言( c d l ) 的迸一步扩展。构件描述语言的基本思想是 将构件看成是一个黑盒,通过描述构件接口的语法和语义,使得复用者不必过 多的涉及构件代码细节,就可以在构件描述这一抽象层次之上进行构件组装。 而a d l 除了描述构件接口的语法和语义之外,还负责描述系统中包括的构件以及 它们之间的交互关系、构件的非功能类性质以及构件间协议 2 8 。当前,出现 了许多a d l ,m e d v i d o v i c 等 2 9 在对当前的a d l 进行了比较全面的多因素分析 的基础上,对其中主要的十种a d l ( 这十种a d l 是:a c m e 、a e s o p 、c 2 、d a r w i n 、 m e t a h 、r a p i d e 、s a d l 、u n i c o n 、w e a v e s 、w r i 曲t ) 进行了分类与详细比较。国 内也提出了几种比较有特色的体系结构描述语言,如f r a d l 3 0 、a _ a d l 3 1 、 x y x a d l 3 2 、t r a c e r 3 3 署队b c a d l 3 4 等。 软件体系结构描述语言给出体系结构规约的统一框架,直接提供相应的标 记方法和符号,用来规约体系结构的基本元素。对于软件体系结构描述语言的 用途,不同的学派有不同的意见,学院派的主要应用形式化的方法,用于证明 软件体系结构与需求的的一致性和完备性;而实用派则侧重于使用,用于表达 对具体系统结构的无二义理解,一开始软件体系结构描述语言用于设计者与开 发者之间的交流,及设计者根据需求所设计的软件体系结构,用件体系结构描 述语言表达成开发文档,而开发者则根据文档开发对应的软件;随着观念和技 术的进步,软件体系结构描述语言应用不仅仅限于设计者与开发者之刚的交互, 也成为系统运行的重要依据,将软件的体系结构用某种方法形式化( 通常是x m l 文件) 描述成软件体系结构配置文件( c o n f i g u r a t i o n ) ,而系统的运行则以配置 文件作为重要的依据。因此,现在的软件体系结构描述语言不仅仅作为人与人 之间交互的方式,也成为系统运行的重要依据。 软件体系结构配置是确定体系结构的构件与构件的连接关系和拓扑要求。 构件体系结构配置提供限制来确定构件是否正确连接、接口是否匹配、通信是 否正确,并说明实现要求行为的组合语义。 1 4 河海火学硕士学位论文第二章软件演化与软件体系结构 2 4 基于体系结构的软件演化 2 4 1 引言 为什么要从体系结构角度去研究软件演化? 原因有两个。 第一,现代软件越来越大,越来越复杂的现状决定了软件演化,特别是软 件动态演化需要从宏观角度进行研究,这样可以避免过早的将软件演化的研究 陷入复杂细节中去。软件体系结构作为软件的蓝图,为人们宏观把握软件的整 体结构提供了一条有效途径。从而要从宏观角度来研究软件演化,应该从软件 体系结构的角度开始。 第二,在软件开发过程中需求与实现之间仍存在一条很难逾越的鸿沟。而 软件体系结构则是在软件需求与软件实现之问架起一座桥梁,着重解决软件系 统的结构和需求向实现平坦地过渡的问题。因此,从软件体系结构的层次去研 究软件演化,更能贴切用户的需求。 2 4 2 软件体系结构与软件演化 软件体系结构作为对软件结构的刻画和表达,对于软件的演化起到了重要 作用,总结如下: ( 1 ) 将系统的软件体系结构显式化的表达出来,可以使软件的构造性得到 提高,从而易于软件的演化。 ( 2 ) 在系统设计阶段,设计人员可以充分考虑到将来可能的需求变化,并 且从软件体系结构的层面表达出来,有助于开发人员理解到将来可能的系统变 化,并做好相应的应对策略。 ( 3 ) 由于软件体系结构从一个粗粒度、宏观层次描述了当前系统的结构, 即能够清晰的描述了构件与构件之间的相互关系和整个系统的框架,可以给系 统的演化提供依据。 在软件开发过程中需求与实现之间仍存在一条很难逾越的鸿沟。而软件体 河海大学硕士学位论文第二章软件演化与软件体系结构 系结构则是在软件需求与软件实现之间架起一座桥梁,着重解决软件系统的结 构和需求向实现平坦地过渡的问题,担当从需求到实现的桥梁。在早期,软件 体系结构是一个抽象层次的概念,往往是以文档的方式存在,作为开发过程中 不同人员交流工具,可以认为,早期的软件体系结构是隐式的存在于软件系统 中。因此,早期软件体系结构与软件演化的关系如下图2 2 所示。 彳卜塑里塑_ 八夕 钵 慝。嚣 春 瓴
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国消毒设备行业市场发展现状及发展趋势与投资风险研究报告
- 生态修复外包合同
- 能源环保技术研发与转让合同
- 钢结构房施工合同
- 健康生活消费指导合同
- 公司技术转让协议与保密义务约定事项说明
- 资源共享与市场分割协议书
- 社区垃圾分类及处理技术服务合同协议
- 车辆租赁合同2025简单版10篇
- 大学生实习劳动合同协议9篇
- GB/T 13869-2017用电安全导则
- GB/T 13738.2-2017红茶第2部分:工夫红茶
- GB/T 13012-2008软磁材料直流磁性能的测量方法
- GA/T 1768-2021移动警务身份认证技术要求
- 贯彻中国式《现代化》全文解读
- 日本神话课件
- 2023年广东成人学士学位英语考试真题与答案
- 部编人教版道德与法治四年级下册《合理消费》优质课件
- 毕业设计(论文)-基于安卓平台的签到管理系统设计
- 大学生中长跑锻炼焦虑心理的原因及对策研究获奖科研报告
- 烟花爆竹安全培训课件
评论
0/150
提交评论