




已阅读5页,还剩58页未读, 继续免费阅读
(计算机软件与理论专业论文)自适应对象模型体系结构风格的应用研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 摘要 人们将公认的、被多次成功使用的软件体系结构称为软件体系结构风格,软 件体系结构风格是解决软件危机的主要技术手段之一。软件规模的不断扩大以及 需求的快速变更,使得人们对软件系统的灵活性、动态性和适应性提出了更高的 要求。自适应软件能够自动适应需求变化,因此,成为当前软件人员的研究热点。 自适应对象模型体系结构风格集软件体系结构风格和自适应软件技术为一 体,以创建动态的、可配置的、具有自适应能力的应用系统为目标。本文重点论 述了这种风格的组成,构成元模型的基本模式等内容,并对模型引擎的原理作了 深入的分析。在此基础上,提出将d o m 解析方式和抽象工厂模式引入模型引擎, 以实现对模型引擎的改进,从而能够更好的在运行时解释元模型。 作为一个应用实例,本文以风险管理系统为例,应用自适应对象模型体系结 构风格设计该系统的元模型,并通过模型引擎,对存储在x m l 配置文件中的元 数据进行解释和实例化,实现对类、属性和业务规则的动态定义,使系统具有灵 活性和自适应性。 实践结果表明,应用自适应对象模型体系结构风格开发软件系统,能够很好 的提高系统的灵活性、适应性和可配置性。 关键词:自适应对象模型体系结构风格;元模型;模型引擎;风险管理 英文摘要 a p p l i c a t i o na n dr e s e a r c ho na o m a r c h i t e c t u r a ls t y l e a b s t r a c t t h ea r c h i t e c t u r e sw h i c ha r er e c o g n i z e da n d s u c c e s s f t d l yu s e da r ec a l l e ds o f t w a r e a r c h i t e c t u r es t y l e s o f t w a r ea r c h i t e c t u r es t y l ei so n eo f t h em o s t i m p o r t a n tt e c h n i q u e s t or e s o l v et h es o f tc r i s i s w i t ht h es o f t w a r es i z ec o n t i n u o u s l yi n c r e a s i n ga n dt h e m q u k e m e n tc h a n g i n gt o of a s t ,p e o p l er a i s en e wr e q u i r e m e n ta b o u ts y s t e m s f l e x i b i l i t y , d y n a m i ca n da d a p t a t i o n s e l f - a d a p t i v es o f t w a r ei sak i n do fs o f t w a r ew h i c hc a n a d a p t t h ec h a n g i n go f r e q u i r e m e n ta u t o m a t i c a l l y , s oi tb e c o m e s r e s e a r c h e r s h o t s p o t a d a p t i v eo b j e c tm o d e l ( a o m ) a r c h i t e c t u r es t y l e a m a l g a m a t e s s o f t w a r e a r c h i t e c t u r es t y l ea n ds e l f - a d a p t i v es o f l a v a r ev e r yw e l l t h ep u r p o s eo fi ti st ob u i l d s y s t e mw i t hd y n a m i c ,c o n f i g u r a b l ea n ds e l f - a d a p t i v ea b i l i t y i nt h i st h e s i sw ed i s c u s s t h ec o m p o s i t i o no fa o ma n db a s i cp a t t e r n st ob u i l dm e t a m o d e la r ea n a l y z e di nd e t a i l t h e nw er e s e a r c ho nt h ep r i n c i p l eo f m o d e le n g i n e b a s eo nt h er e s e a r c :h , w ea d v a n c e t oe x t e n dt h em o d e le n g i n ew i t hd o m a n da b s t r a c tf a c t o r yp a t t e r n a sat y p i c a lu s eo f a o ma r c h i t e c t u r es t y l e t h i st h e s i su s e di tt od e s i g nt h er i s k m a n a g e m e n ts y s t e m sm e t a m o d e l ,t h e nu s e dm o d e le n g i n et oe x p l a i na n di n s t a n t i a t e t h em e t a d a t 乱t h i sr e a l i z e dt h ed y n a m i cd e f i n i t i o no fc l a s s e s ,a t t r i b u t e sa n db u s i n e s s r u l e s t h ep r a c t i c ei n d i c a t e du s i n ga o ma r c h i t e c t u r es t y l et od e v e l o ps o f ts y s t e mc o u l d i m p r o v et h es y s t e m sf l e x i b i l i t y , a d a p t a t i o na n dc o n f l g u r a b l ep e r f o r m a n c e k e yw o r d s :a o ma r c h i t e c t u r es t y l e ;m e t a m o d e l ;m o d e l e n g i n e ; r i s km a n a g e m e n t 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果,撰写 成硕士学位论文“自适应过筮搓型佳丕结掏拯揸啦廛旦班宜”。除论文中已经注明 引用的内容外,对论文的研究做出重要贡献的个人和集体,均已在文中以明确方 式标明。本论文中不包含任何未加明确注明的其他个人或集体己经公开发表或未 公开发表的成果。 本声明的法律责任由本人承担。 敝储鹕:绱冲3 肥胡 学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连海事大学研究生学位论文提交、 版权使用管理办法”,同意大连海事大学保留并向国家有关部门或机构送交学位论 文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将本 学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印,缩印或扫 描等复制手段保存和汇编学位论文。 保密口,在年解密后适用本授权书。 本学位论文属于:保密口 不保密囹( 请在以上方框内打“4 ”) 论文作一:姻 日期: 导师签名: 2 译3 月 , 、7 自适应对象模型体系结构风格的应用研究 第1 章绪论 1 1 课题来源 本课题是在研究软件体系结构和自适应软件的基础上提出的预研课题。软件 体系结构的研究已经进入到实际应用阶段,而上世纪9 0 年代末产生的自适应对象 模型( a d a p t i v eo b j e c tm o d e l ,a o m ) 体系结构风格的研究还不十分成熟。当今许 多应用系统都要求具备动态性和可配置性,以便能够快速变更系统,及时适应新 的需求。创建动态的、可配置的和具有自适应能力的应用系统己成为软件开发人 员追求的目标。a o m 体系结构风格能满足上述要求,因此,围绕a o m 体系结 构风格的组成及其应用,结合元数据及设计模式等知识,研究a o m 体系结构风 格,是本课题的中心议题。本文将围绕该中心问题的研究过程中的相关技术和方 法进行论述,并通过“风险管理系统”的开发实践,重点论述其应用过程。 1 2 研究背景及意义 自1 9 6 8 年f r i t zb a u e r 第一次提出软件危机的概念以来,软件工业一直被生 产效率低下、产品质量不高、开发成本巨大、开发周期过长等问题困扰,这已经 成为限制软件企业发展的重要原因。具体地说,软件危机主要表现在如下几方面: ( 1 ) 软件开发成本高,软件生产者对软件开发成本不能预先准确地做出判断, 开发成本往往超出预算。 ( 2 ) 开发出来的软件不能很好地满足需求,需求变化常常引起软件产品的大 量修改,费时费力。 ( 3 ) 在软件开发周期的压力下,软件产品的质量不能得到保证。 ( 4 ) 随着软件规模的扩大和复杂程度的提高,软件的维护也越来越困难。软 件危机的日益加剧、已有软件工程方法的力不从心,这些都使得人们开始重视软 件工程新领域的研究【l 】。 软件危机的产生和计算机硬件技术的飞速发展,对计算机软件的功能、结构 和复杂性提出了更高的需求。随着计算机软件规模的扩大及复杂性的不断增加, 在软件设计环节中,软件的局部和整体系统结构得到了越来越多的关注,其重要 性甚至超过了算法和数据结构这些常规软件设计的概念。软件体系结构概念的提 第1 章绪论 出和应用,表明软件工程走向新的发展阶段,标志着软件设计技术开始在更高层 次上发展并走向成熟。未来的软件开发会逐步发展成为如同机械和建筑设计的机 械组装过程一样,从而摆脱艰难的脑力劳动和无可靠质量保证的手工劳动。这其 中软件体系结构将起到主导作用,即新一代软件工程将是软件体系结构的工程1 2 】。 近年来,计算技术及企业业务的不断发展,企业应用常常面临这样的问题: 软件开发运行后不久,随着外部环境的变化、用户需求的调整和技术的进步,系 统很快便不能满足用户的要求。随着需求变更越来越频繁,如何找到一种开发模 式,使得所开发的软件能够适应需求的快速变化以及满足用户个性化的需要,己 成为软件研究人员奋斗的目标。 软件系统不能适应需求变更,对于需求变化相对滞后的原因是:传统的软件 过程模型大多是静态的、机械的、被动的,它们要求软件工程人员在描述软件过程 时预期所有可能发生的情况,并且显式地定义这些问题的解决方案。当软件过程所 处的环境发生变化时,软件过程无法自适应地对这些变更做出相应的调整【3 】。 事实上,软件本身的可扩展性和适应性,是软件生命力的真正体现,能更大 程度地解决软件危机。i a ns o m m e r v i l e 很重视软件的可维护性和可靠性,把软件 能否不断演变以满足用户变化的需求作为衡量一个优秀软件的标准【4 】。因此,具 有自适应能力的软件体系结构风格得到了软件研究者的广泛关注,这种软件体系 结构风格有助于开发具有动态性、可配置性和自适应性的软件系统,可以有效地 快速适应需求变化、缩短软件产品开发时间和规模。它在收集熟练设计者和软件 工程师的经验方面起到了“根基”的作用,是解决上述问题的有效方法。 1 3 论文研究内容 在规模庞大、功能复杂、需求不断变化的系统开发中,只有选择设计合理的 软件体系结构风格,才能使开发的软件系统满足可维护性、可重用性、可适应性、 易管理性、可伸缩性、便于扩充并容易修改等方面的要求。因此,本文围绕a o m 体系结构风格这一核心内容,从增强软件自适应性的角度出发,在对现有理论基 础和技术进行研究的基础上,从如下几方面加以研究: ( 1 ) 软件体系结构风格的相关概念及其在面向对象软件开发中的重要作用。 ( 2 ) 研究软件体系结构风格与设计模式之间的关系,为改进a o m 体系结构风 自适应对象模型体系结构风格的应用研究 格奠定理论基础。 ( 3 ) 对现有的自适应软件体系结构风格进行比较研究,分析这些风格的优点 与不足,重点研究a o m 体系结构风格的基础理论,在深入理解的基础上对其进 行改进。 ( 4 ) 将改进后的a o m 体系结构风格应用于软件项目管理系统的风险管理子 系统的开发实践。 1 4 论文结构 本文首先介绍了软件体系结构的相关理论,侧重于对目前已经存在的自适应 软件体系结构风格进行研究对比,然后重点探讨了自适应的相关理论知识,接下 来,着重描述了a o m 体系结构风格,并对其进行改进,最后阐述了a o m 体系 结构风格在项目风险管理系统中的应用实现。本文的具体结构如下: 第1 章绪论。本章论述本课题的研究背景及意义,并简单介绍本论文的主要 研究内容。 第2 章软件体系结构的基础理论。本章就软件体系结构的起源和定义、体系 结构风格的相关概念、自适应软件体系结构风格、体系结构风格与设计模式的关 系进行详细的论述。 第3 章自适应软件的相关研究。本章着重论述自适应软件的分类及研究现 状,并对目前国内外比较有影响力的自适应软件开发技术进行对比,阐明a o m 体系结构风格的必要性、适用领域及其优点等相关概念。 第4 章a o m 体系结构风格及其扩展。本章首先论述a o m 体系结构风格的 组成( 元模型、模型引擎和支撑工具) ,介绍组成元模型的6 个经典模式。针对原 有模型引擎的不足,重点阐述如何运用x m l d o m 解析方式与抽象工厂模式相结 合的方法实现对模型引擎的扩展,最后总结出a o m 体系结构风格的抽象层次结 构。 第5 章基于a o m 体系结构风格的风险管理系统的设计与实现。本章论述系 统实现的工具,以及对风险识别和风险控制两个子模块的元模型进行设计的详细 过程,并利用扩展后的模型引擎来解释元模型,实现目标系统。 第6 章结论。对本文所做工作进行总结,并提出今后的研究方向与研究内容。 第2 章软件体系结构的理论研究 第2 章软件体系结构的基础理论 六十年代的软件危机使得人们开始重视软件工程的研究。起初,人们把软件 设计的重点放在数据结构和算法的选择上,随着软件系统规模越来越大、越来越 复杂,整个系统的结构和规格说明显得越来越重要。软件危机的程度日益加剧, 现有的软件工程方法对此已经显得力不从心,对于大规模的复杂软件系统来说, 系统结构设计和规格说明的重要性已经明显超过了对于算法和数据结构的选择。 在此种情况下,人们逐步认识到了软件体系结构的重要性,并认为对软件体系结 构加以深入的研究,将会成为提高软件生产率和解决软件维护问题的新的最有希 望的途径。 2 1 软件体系结构的起源与发展 2 1 1 软件体系结构的起源 自1 9 6 8 年提出软件工程概念以来,在软件工程领域己经提出了一系列理论、 方法、语言和工具,解决了软件开发过程中的若干问题。但是,软件固有的复杂 性、易变性和不可见性,使得软件开发周期长、代价高和质量低的问题依然存在。 大量实践统计表明:大系统软件开发中7 0 的错误是由需求和设计阶段引入的, 而且错误在系统中存在的时间越长则越难发现,解决这些错误的代价也就越高。 为了提高软件需求和软件设计的质量,各种需求分析工程技术和软件建模技术应 运而生。但是,即使如此,在需求与设计之间仍就存在一条很难逾越的鸿沟,软 件设计人员很难有效地将软件需求转换为相应的设计。为了解决这个问题,软件 体系结构概念应运而生,并试图在软件需求与软件设计之间架起一座桥梁,着重 解决软件系统的体系结构和需求向实现平坦地过渡的问题【5 1 。 从机器语言、汇编语言、过程式程序设计语言、面向对象程序设计语言、形 式化( 半形式化) 规格说明语言( 如体系结构描述语言a d l ) 发展过程中,可以发 现:计算机语言越来越适合于开发人员的思维活动模型,代码重用的级别也在不 断地提升。软件体系结构的研究,使软件重用从代码重用发展到设计重用和过程 重用。鉴于软件体系结构的重要性,d e p e r r y 将软件体系结构视为软件开发中 第一类重要的设计对象,而b a r r yb o e h m 明确指出:“在没有设计出体系结构及 自适应对象模型体系结构风格的应用研究 其规则时,那么整个项目不能继续下去,而且体系结构应该看作是软件开发中可 交付的中间产品”嘲。由此可见,软件体系结构在软件开发中为不同的人员提供 了共同交流的语言,体现了系统早期的设计决策,并作为系统设计的抽象,为实 现框架和构件的共享与重用、基于软件体系结构的软件开发提供了有力的支持。 2 1 2 软件体系结构的发展 纵观软件体系结构的发展过程,从最初的“无结构”设计到现行的基于体系 结构的软件开发,经历了如下四个阶段翻: ( 1 ) “无体系结构”设计阶段:以汇编语言进行小规模应用程序开发为特征; ( 2 ) 萌芽阶段:出现了程序结构设计主题,以控制流图和数据流图构成软件 结构为特征; ( 3 ) 初期阶段:出现了从不同侧面描述系统的结构模型,以统一建模语言 6 0 n i f i e dm o d e l i n gl 觚g u a g e ,u m l ) 为典型代表; ( 4 ) 高级阶段:以描述系统的高层抽象结构为中心,不关心具体的建模细节, 划分了体系结构模型与传统的软件结构的界限,该阶段以k r u c h t e n 提出的“4 + 1 ” 模型为标志 7 1 。 2 2 软件体系结构的定义 软件体系结构迄今为止还没有一个公认的定义,许多专家学者从不同角度和 不同侧面对软件体系结构进行了刻画。以下将列举出几个具有代表性的软件体系 结构定义: 定义1 g a r l a n & s h a w 模型【8 】: s a = c o m p o n e n t s ,c o n n e c t o r s ,c o n s t r a i n s 该模型认为软件体系结构是软件设计过程中的一个层次,用于处理算法和数 据结构之上的,关于整体系统结构设计和描述方面的一些问题。其中构件 ( c o m p o n e n t ) 可以是一组代码( 如程序的模块) ,也可以是一个独立的程序( 如数据 库的s q l 服务器) 。连接器( c o n n e c t o r ) 表示构件之间的相互作用,它可以是过程 调用、管道、远程过程调用等。一个软件体系结构还包括某些约束( c o n s t r a i n ) , 即对结构的限制,它通常依赖于局部约束。 第2 章软什体系结构的理论研究 定义2 p e r r y & w o l f 模型【9 】: s a = e l e m e n t s ,f o r m ,r a t i o n a l 该模型认为软件体系结构是由一组元素( e l e m e n t s ) 构成,这组元素分成3 类:处理元素( p r o c e s s i n ge l e m e n t ) 、数据元素( d a t ae l e m e n t ) 和连接元素( c o n n e c t i n g e l e m e n t ) 。处理元素负责对数据进行加工,数据元素是被加工的对象,连接元素 把软件体系结构的不同部分组合连接起来。软件体系结构形式( f o r m ) 由专有特性 ( p r o p e r t i e s ) 和关系( r e l a t i o n s h i p ) 组成,专有特性用于限制软件体系结构元素的选 择,关系则用于限制软件体系结构元素组合的拓扑结构,而在多个软件体系结构方 案中选择合适的软件体系结构方案则往往要基于一组准则( r a t i o n a l ) 的。 本文将采用v e s t a l 模型中给出的软件体系结构的定义【5 1 : 定义3 v e s t a l 模型: s a = c o m p o n e n t ,i d i o m s s t y l e s ,c o l n r t l o r lp a t t e r n so f i n t e r a c t i o n 该模型认为软件是由构件( c o m p o n e n t ) 组成的,构件之间通过通用的互操作模 式相连接。惯用法( i d i o m s ) 描述如何用给定语言的特征来实现构件的特定方面或 构件之间的关系。风格( s t y l e ) 是描述某一特定应用领域中系统组织方式的惯用模 式,它反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块 和予系统有效地组织成一个完整的系统。风格描述了一种通用的设计模式,可满足 特定系统的应用需求。 2 3 软件体系结构的重要性 软件体系结构是软件工程的一个重要研究领域,它提供了软件系统的高层抽 象。 从技术的角度分析,软件体系结构的重要性如- f t l 0 】: ( 1 ) 项目干系人之间交流的手段 软件体系结构代表了系统公共的高层次抽象。这样,项目干系人可以将它作 为一个相互理解的基础,形成统一认识,互相交流。软件体系结构提供了一种共 同语言来表达各种关注和协商,进而对大型复杂系统能进行有效管理,这对项目 最终的质量和运用,将有极大的影响。 ( 2 ) 软件体系结构是早期设计决策的体现 自适应对象模型体系结构风格的应用研究 软件体系结构是早期设计决策的体现主要表现在如下几个方面: 软件体系结构明确了对系统实现的约束条件; 软件体系结构决定了开发和维护的组织结构; 软件体系结构制约着系统的质量属性; 通过软件体系结构可以预测软件的质量; 软件体系结构使推理和控制更改更简单; 软件体系结构有助于循序渐进的原型设计; 软件体系结构可以作为项目人员培训的基础。 由此可见,软件体系结构所体现的早期决策对系统的后续开发、部署和维护 都将具有重要的影响。 ( 3 ) 软件体系结构是可传递和可重用的模型 软件体系结构是关于系统构造及系统各构件之间工作机制的相对较小但又能 突出反映问题的模型。软件体系结构级的重用,意味着软件体系结构的决策能在 具有相似需求的多个系统中发生影响,这个模型可以在多个系统之间传递,促进 大规模的软件重用。 ; 2 3 软件体系结构的研究热点 本章开篇已经提及系统开发人员将软件设计的重点从算法和数据结构的选择 转向对系统总体结构设计和规格说明上来。即,软件开发不再是“算法+ 数据结构,j , 而是“构件开发+ 基于软件体系结构的构件组装”【1 1 】。在基于构件和软件体系结 构的软件开发方法的模式影响下,程序开发模式也相应地发生了相应的变化。那 么,如何描述、表示、设计软件体系结构? 如何验证一个软件体系结构是否符合 期望的系统需求? 如何基于软件体系结构开发实例化的软件系统? 这些问题将是 基于构件和软件体系结构的软件开发方法所必须研究和解决的核心问题。现有的 软件体系结构的研究主要集中在以下几个方面: ( 1 ) 软件体系结构理论模型的研究: ( 2 ) 软件体系结构描述研究:主要研究软件体系结构描述语言及其支持环境、 软件体系结构描述规范; ( 3 ) 软件体系结构设计研究:包括软件体系结构设计方法、软件体系结构风 第2 章软件体系结构的理论研究 格、软件体系结构设计空间等内容; ( 4 ) 软件体系结构分析与验证:研究如何将软件的非功能特性转化为软件体 系结构的需求,对软件体系结构的语法、语义、类型失配等进行检查与验证的研究; ( 5 ) 软件体系结构演化与复用研究:研究产品线中软件体系结构演进的理论 与方法,从已有文档、系统设计和代码中,逆向提取软件体系结构,实现软件体系 结构复用等; ( 6 ) 动态软件体系结构研究:将运行时的适应性机制加到复杂的大规模软件 系统中,以满足系统能够动态演化等诸多方面的要求i 埘。 ( 7 ) 基于软件体系结构的软件开发:研究引入软件体系结构后的软件开发过 程、基于软件体系结构开发与中间技术集成、基于软件体系结构的程序框架自动 生成技术等。 目前,人们在软件体系结构领域主要致力于模块接口语言、特定领域的软件 体系结构、软件重用、软件模式的规范化、软件体系结构描述语言、软件体系结 构设计的形式化基础和设计环境等方面的研究。针对软件体系结构发展趋势, c l e m e n t s 预测在未来的5 1 0 年内软件体系结构研究将围绕如下5 个方面展开: 软件体系结构创建与选择: 软件体系结构表示; 软件体系结构分析; 基于软件体系结构开发; 软件体系结构演化。 p e r r y 在i f i p 2 0 0 0 年世界计算机大会主题演讲中认为,目前软件体系结构领 域最为重要的3 个研究方向1 3 1 是: 软件体系结构风格; 软件体系结构连接件; 动态软件体系结构。 此外,基于软件体系结构的实用软件开发方法及相应的支撑环境的研究,也 将是软件体系结构研究的一个重要方向。 2 4 软件体系结构风格 自适应对象模型体系结构风格的应用研究 由于软件规模的不断增大和软件复杂性的不断提高,传统的软件设计方法和 模式已经不能适应应用程序的开发。基于软件体系结构的开发方法正成为解决这 一问题的新方向,并已经引起广泛的关注。在软件体系结构研究领域中,风格的 研究与应用是一个重要的领域。 2 4 1 软件体系结构风格的定义 1 9 9 2 年,p e r r y 和w o l f 提出了软件体系结构风格的概念f 1 4 1 ,将那些公认的、 被多次成功使用的软件体系结构称为软件体系结构风格。 m e t a y e r 给出了一个较为直观的定义f 1 5 】:软件体系结构风格或者说是软件体 系结构惯用模式( i d i o m a t i cp a r a d i g m ) ,是一类具有许多共同特征的软件体系结构 的共同描述,软件体系结构可以看作是某种软件体系结构风格的具体实例。 软件体系结构风格还可视为不同系统所拥有的共同的结构组织模式和语义特 性,是软件系统中各构件和连接件之间相互协调与处理的形式说明,它反映了领 域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地 组织成一个完整的系统“6 1 。因此,一种软件体系结构风格决定了系统所采用的构 件、连接件和一组如何将它们结合一起的约束限制,包括拓扑限制、执行语义限 制等。 2 4 2 自适应软件体系结构风格 o a r l a n 和s h a w 曾对已有的软件体系结构风格进行了分类【1 7 1 :数据流风格( 包 括批处理风格和管道一过滤器风格) ;调用返回风格( 包括主程序子程序风格、 面向对象风格和层次结构风格) ;独立构件风格( 包括进程通讯风格和基于事件的 隐式调用风格) ;虚拟机风格( 包括解释器风格和基于规则的风格) ;仓库风格( 包 括数据库、超文本系统和黑板风格) 。除此之外还有:特定领域软件体系结构风格 ( 如过程控制、模拟器等) ;特定结构软件体系结构风格( 如分布式处理、状态转移 系统) ;不同体系结构集成的异构软件体系结构风格等。 近年来,随着网络和许多新兴软件技术( 如a g e n t 、p 2 p 、网格计算、普适计 算、移动计算等) 的发展,对软件系统体系结构提出了许多新的要求。如软件体系 结构的适应性、可靠性、安个性、扩展性、复用性、可用性等【l s l 。p e r r y 也提出 软件体系结构风格和动态体系结构研究将成为目前软件体系结构领域最为活跃的 第2 章软件体系结构的理论研究 研究方向。这里要强调的是,p e r r y 所说的动态性与本文中所说的自适应性具有相 同的内涵,即指当软件生存环境发生变化时,软件实体结构与行为可以随之改变 并满足新环境需要的特性。 目前,具有代表性的自适应软件体系结构风格包括c 2 软件体系结构风格、 基于多代理的软件体系结构风格、面向服务的软件体系结构风格等【l 9 】,下面对以 上列出的白适应( 动态) 软件体系结构风格作进一步论述。 ( 1 ) c 2 软件体系结构风格 c 2 是一种基于构件和消息的软件体系结构风格,可用于创建灵活的、可伸缩 的软件系统1 2 0 】。一个c 2 软件体系结构,可以看成是按照一定规则由连接器连接 的许多构件组成的层次网络。系统中的构件和连接器都有一个“顶部”和“底部”; 一个构件的“顶部”或“底部”可以连接到一个连接器的“底部”或“顶部”;对 于一个连接器,和其相连的构件或连接器的数量没有限制,但是构件和构件之间 不能直接相连。c 2 软件体系结构风格最重要的特性就是“底层无关性”,这一特 性在构件的可替代性和可重用性方面具有显著的作用。另外,c 2 架构引入了“事 件转化”的概念,域解释器把构件的请求转化为接收方能够接收的特定形式,同 时也将通知转化为该构件能够理解的形式。图2 1 展示了一个简单的c 2 软件体系 结构风格,当一个构件改变其内部的状态,它将向下层的连接器发布一个通知来 宣布其状态的改变,连接器向所有的构件发布这一通知。c 2 软件体系结构风格不 同层次之间的独立性使得构件之间的依赖性进一步缩小,有助于在运行时刻方便 快捷地对构件进行添加、删除和重新布局。 图2 1c 2 软件体系结构风格 f i g 2 1c 2s o f t w a r ea r c h i t e c t u r es t y l e ( 2 ) 基于多代理的软件体系结构风格 自适应对象模型体系结构风格的应用研究 多代理的软件体系结构风格是为适应复杂控制系统的动态实时控制和优化而 提出的,它主要研究在复杂实时动态环境下如何用软件或硬件的方式实现a g e n t , 多代理系统( m u l t i a g e n t s y s t e m ,m a s ) 是由多个a g e n t 组成的a g e n t 社会,是一 种分布式自主系统。该系统能根据环境和被控对象的动态变化,自适应地改变控 制结构,调整控制策略,修改控制参数。为了以协同工作方式求解问题,多个a g e n t 间如何协调各自的知识、目标、策略和规划等,是m a s 的主要研究内容。在表 达实际系统时,m a s 通过各a g e n t 间的通讯、合作、互解、协调、调度、管理及 控制,来表达系统的结构、功能及行为特性。m a s 研究中有以下3 种典型的a g e n t 软件体系结构1 2 1 】: 慎思型软件体系结构 基于s i m o n 和n e w e l l 的物理符号系统假设,a g e n t 维持着对世界的内部表示, 具有能用一定形式的符号推理加以修正的精神状态。根据大多数通用的慎思方法, 认知构件基本上由两部分组成:规划器和世晃模型。这种方法中有一个基本的假 设:对认知功能进行模块化是可能的,即可以独立的研究不同的认知功能( 如感知、 学习、规划和动作) ,然后把他们组装在一起构成智能自治a g e n t 。从工程角度看, 功能模块化降低了系统的复杂性。 反应型软件体系结构 起源于b r o o k s 的思想,即a g e n t 不依赖任何符号表示,直接根据感知输入产 生行为。反应a g e n t 只是简单地对外部刺激发生反应,没有符号表示的世界模型, 并且不使用复杂的符号推理。反应结构的设计部分是来自下面的假设:a g e n t 行 为的复杂性可以是a g e n t 运作环境复杂性的反应,而不是a g e n t 复杂内部设计的 反应。 混合型软件体系结构 混合型软件体系结构是上述两种软件体系结构的结合,既能实现面向目标的 长期规划,又具有实时性的特征,是m a s 应用中最常用的软件体系结构。比较 著名的有p r s ( p r o c e d u r a lr e a s o n i n gs y s t e m ) ,t o u r i n gm a c h i n e ,w i l l 及t n t e r r r a p 。 它们又可分成两类:层次型软件体系结构( 如p r s ,t o u r i n g m a c h i n e 和t n t e r r r a p 等) ;环型软件体系结构( 如w i l l 等) 。 第2 章软件体系结构的理论研究 ( 3 ) 面向服务的软件体系结构风格 面向服务的软件体系结构( s e r v i c e o r i e n t e ds o f t w a r ea r c h i t e c t u r e ,s o a ) 风格是 为解决资源分布异构及需求动态变化而提出的,通过这种软件体系结构风格开发 的软件系统,从对影响软件的环境要素分析入手,通过对质量属性驱动的软件体 系结构分析,重点针对应用要适应的变化进行结构设计,最终通过以体系结构为 基础的业务端编程,实现面向服务应用的即时开发与演化f 2 矾。 面向服务的软件体系结构是一种用于构建分布式系统的方法,采用s o a 构建 的分布式应用程序,可以将功能作为服务交付给终端用户,或为其它服务提供服 务。在面向服务的软件体系结构中,服务被封装成用于业务流程的可重用组件形 式】。可将面向服务的软件体系结构视为构件模型,该模型通过服务间定义的良 好接口将不同的功能单元联系起来。接口的定义独立于实现服务的硬件平台、操 作系统和编程语言,这使得构建在这样系统上的服务可以通过一种统一和通用的 方式进行交互。 s o a 是由服务提供者( s e r v i c ep r o v i d e r ) 、服务请求者( s e r v i c er e q u e s t e r ) 、服 务器代理者( s e r v i c eb r o k e r ) 三种角色组成的,分别承担了不同的任务。在这三种 角色上又有三个操作:发布( p u b l i s h ) 、查找( f r e d ) ,绑定( b i n d ) ,它们之间的关系 如图2 2 所示。 图2 2s o a 关系图 f i g 2 2r e l a t i o n s h i po f s o a 以上的软件体系结构风格都是在特定应用领域中产生的特定风格,它们大多 依赖于特定计算环境和实现技术,因此在通用性上具有一定的局限性。本文所研 究的a o m 体系结构风格,从研究适应性软件体系结构的共性特征和通用理论的 自适应对象模型体系结构风格的应用研究 角度出发,探讨适应性的产生机理,目标是要创建动态的、可配置和具有自适应 能力的应用系统。 2 5 设计模式 面向对象的软件开发方法通常给出了软件设计的一般原则和步骤,但缺乏解 决具体设计问题的方法,而且还存在两个重要的局限1 2 4 1 : ( 1 ) 缺乏描述成组对象之间的复杂交互的能力; ( 2 ) 缺乏打包相关对象集合以便于复用的能力。 设计模式能够很好的解决上述问题。 2 5 1 设计模式的基本概念 关于模式这一概念,最早出现在城市建筑领域,c h r i s t o p h e r a l e x a n d e r 从建筑 学的角度明确给出了模式的概念,他说:“每一个模式描述了一个在我们周围不断 重复发生的问题,以及该问题的解决方案的核心,这样你就能一次又一次的使用 该方案而不必重复劳动。”这一思想同样适用于面向对象的设计模式。 一个设计模式提供了一个针对某一特定问题的解决方案。在面向对象的程序 设计中,一个设计模式有一个特定的结构,使用这样的结构,程序的软件体系结 构更加灵活、代码可以更加方便地复用和维护,系统也就具有更好的适应性。 2 5 2 设计模式与软件体系结构风格的关系 设计模式和软件体系结构风格具有十分相近的含义,但是总体来说,风格更 加关注高层设计,而模式则重点关注在设计中应用通过经验提取的准则或指导方 案。 软件体系结构风格和设计模式在如下两个方面紧密相关: ( 1 ) 软件体系结构风格可看作是某种类型的设计模式,更确切地说是某种模 式定义语言; ( 2 ) 给定一种软件体系结构风格,通常存在一组习惯用法,通常将这些习惯 用法称作在特定风格下工作的设计模式。 设计模式和软件体系结构风格是封装设计经验的两种互补的机制,一种软件 体系结构风格提供了一组设计构件、合成这些构件的规则和约束,以及相应的分 第2 章软件体系结构的理论研究 析工具;设计模式一般包含以下内容:目的、动机、适用性、结构、参与者、协 作、后果、相关设计模式等【2 5 】【2 6 1 。 总之,设计模式和软件体系结构风格是两种互补的封装设计和开发经验的技 术,它们在实际的开发中处于密切相关的不同阶段和抽象层次。软件体系结构风 格为构造特定领域的软件体系结构提供指导和分析,而设计模式主要解决在某种 风格下的具体的、规模较小的问题。本文论述的a o m 体系结构风格很好地体现 了软件体系结构风格与设计模式之间的互补性。在应用系统的设计与开发中,应 该根据两者各自特点,首先从软件体系结构层次上对软件系统的整体特性进行分 析,然后在此基础上选择和应用具体的设计模式,有效地结合这两种技术,能最 大限度地实现创建动态的、可配置和具有自适应能力的应用系统,从而有效的提 高软件生产率和产品质量。 2 5 3 设计模式的要素 一般而言,设计模式有四个基本要素伫7 】【2 8 】: ( 1 ) 模式名称:用来描述模式的问题、解决方案和效果的简单词语。模式名 必须独一无二,可以帮助软件人员思考,也便于项目干系人间交流设计思想及设 计结果。 ( 2 ) 问题:描述了应该在何时使用模式。它解释了设计问题和问题存在的前 因后果,也可能描述了特定的设计问题,如怎样用对象表示算法等。有时,问题 部分会包括使用模式必须满足的一系列先决条件。 ( 3 ) 解决方案:描述了设计的组成成分及其相互关系与各自的职责和协作方 式。因为模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一 个特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一 般意义的元素组合( 类或对象组合) 来解决这个问题。 ( 4 ) 效果:描述了模式应用的效果以及使用模式应权衡的问题。尽管在描述 设计决策时,并不总是涉及到模式效果,但它对于评价设计选择和衡量使用模式 的代价与优势,将具有重要的意义。软件使用效果大多关注软件的时空特性,而 时空特性也反映了所选择的计算机语言和实现方面的问题。模式效果应包括它对 系统的灵活性、扩充性或可移植性所产生的影响,显式地列出这些效果,对理解 自适应对象模型体系结构风格的应用研究 和评价所采用的模式是很有帮助的。 2 5 4 设计模式的图形表示 在本文的2 5 2 中阐述了设计模式与软件体系结构风格的关系,即体系结构风 格由一些设计模式组成。本文的研究核心a o m 体系结构风格亦不例外,本文采 用u m l 表示模式,一般使用以下三种不同的图形符号: ( 1 ) 类图 类图描述类和类之间的静态关系,它不仅显示了信息的结构,同时还描述了 系统的行为,类图是定义其它图的基础。在u m l 中,类图表示为一个划分成三 个分栏:名称,属性和操作,如图2 3 所示。 图2 3 类圈 f i g 2 3c l a s sd i a g r a m ( 2 ) 对象图 对象图是类图的实例,几乎使用与类图完全相同的标识。它们的不同点在于 对象图显示类的多个对象实例,而不是实际的类。对象图的价值在于可以通过建 立问题领域模型的一个例子进行需求分析,由于对象存在生命周期,因此对象图 只能在系统某一时间段存在。 ( 3 ) 交互图 交互图描述对象间的交互关系,包括顺序图和合作图。其中顺序图显示对象 之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交 互;合作图描述对象间的协作关系,合作图与顺序图相似,显示对象间的动态合 作关系,除显示信息交换外,合作图还显示对象以及它们之间的关系。如果强调 时间和顺序,则使用顺序图;如果强调上下级关系,则选择合作图,这两种图统 称为交互图。 交互图从上到下表示时间流向,一条垂直实线表示一个特定对象的生命周期。 如果某对象在本图所示的时间区间开始时还未被创建,则用垂直虚线表示,这条 第2 章软件体系结构的理论研究 虚线一直延伸到它被创建的时间点。一个垂直的矩形表示对象在活动,也就是说 它正在处理某个请求。在操作过程中也可以向其它对象发出请求,用一个指向接 收对象的水平箭头表示请求,标注在箭头上方的文字是请求内容。创建对象的请 求以虚线箭头表示,交互图的具体实例如图2 4 所示。 a c r e a t i o n t o o l a d r a w i n g a l i n e s h a p e 图2 4 交互图 f i g 2 4i n t e r a c t i o nd i a g r a m 自适应对象模型体系结构风格的应用研究 第3 章自适应软件的理论基础 软件工程的目标就在于使软件系统向高性价比方向发展,即使得软件系统在 整个生命周期中都要保持完全的可塑性,软件系统要方便维护。为此,自适应软 件就逐渐成为软件研究者所关注的重点研究方向。 3 1 自适应软件的兴起 自适应软件的研究兴起于二十世纪九十年代前后。近年来,随着因特网技术 的发展和应用范围的普及,使得软件在规模性和复杂性方面不断增加,对软件开 发提出了挑战,自适应软件就是在这样的一种背景下产生的。 ( 1 ) 自适应软件首先在人工智能领域得到关注,在遗传算法、神经网络等研究 方向上获得了较大的进展。 ( 2 ) 1 9 9 8 年开始从软件适应性角度对自适应进行研究。 ( 3 ) 随着嵌入式软件和因特网的普及与发展,近年来关于软件自适应的研究 逐步成为软件界研究热点。由m t t 实验室发起的关于自适应软件的国际研讨会 分别在2 0 0 1 年,2 0 0 2 年,2 0 0 3 年召开会议。会议讨论了自适应软件的定义、适 用领域及分类、如何建立自适应软件的数学基础和系统理论等。自适应软件的兴 起与发展有如下几方面的因素 2 9 1 3 0 】: 首先,是软件在管理和维护方面压力的增加。目前许多大型软件已经达到了 千万行代码的量级,伴随这种规模不断增加的,是软件复杂性的持续增加。如果
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度深海油气田钢结构检修与加固服务协议
- 2025年公共场所食品安全管理与监督协议
- 2025年胆囊疾病试题及答案
- 2025年城市地下车库使用权转让及管理服务合同规范文本
- 2025年绿色食品冷链运输及售后服务一体化合同范本
- 2025年夫妻共同财产分割与补偿协议范本解析
- 2025年生物医学工程创新项目合作协议书
- 2025年度租赁房产安全管理及能耗优化服务合同
- 2025年政府机构网络安全事件应急响应与预案制定合同
- 2025年绿色环保型家庭保洁服务人员劳动合同范本
- 2025合作劳务外包协议范本
- 《软件供应链安全技术白皮书》
- GB/T 34487-2017结构件用铝合金产品剪切试验方法
- GB/T 31703-2015陶瓷球轴承氮化硅球
- 绿色黑板卡通风初中数学开学第一课PPT模板
- 水泥熟料生产工艺及设备课件
- 代运营协议合同范本
- 浙美版美术三年级上册全册教案
- 座位表模板(空白)
- 部编版高一语文必修上册教学计划
- 青岛版六三制四年级上册数学1万以上数的认识和读法教学课件
评论
0/150
提交评论