




已阅读5页,还剩108页未读, 继续免费阅读
(计算机应用技术专业论文)基于消息和构件运算的软件体系结构演化研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 基于构件的软件开发有利于实现构件重用,提高软件的开发效率 和质量;基于消息传递实现构件之间的交互使软件更可靠,构件更独 立;软件演化是软件生命周期中的重要组成部分,如何开发可演化软 件已经成为i t 界的研究热点;软件体系结构为构件组合和软件演化提 供了基础。本文对基于消息和构件组合运算的软件体系结构演化进行 研究,具有重要的理论意义和应用价值。 本文根据构件能够接收和发送的消息类型,给出了基于消息的构 件组合模型,定义了构件组合的执行路径,并对构件组合运算进行了 形式化描述;给出了基于构件组合运算的软件体系结构的图形与代数 表达式,以及它们之间的转换。 在软件体系结构描述的基础上,本文使用设计模式描述了非功能 需求的分解,使用结构工作链建立了非功能需求与软件体系结构之间 的关联,使用结构工作链和组合运算对软件体系结构的非功能属性进 行评估,并利用评估结果,提出了一种基于非功能需求的软件体系结 构演化方法。考虑到复杂是使软件系统出错、难于理解和产生安全问 题的重要原因,提出了软件体系结构的直观复杂性度量方法和构件演 化运算,设计了基于构件演化运算的软件体系结构演化算法,为软件 体系结构演化的自动化研究提供了基础。本文从构件组合运算和软件 体系结构两个层次分析了构件操作的波及效应,提出了一种新的软件 体系结构可演化性度量方法,设计了度量算法,克服了传统方法需要 大量数据、过度依赖人工参与和个人经验、只适合小规模系统等不足。 为了保持业务的连续性,避免关闭和重启系统可能招致的不可接 受的延迟、费用和风险,本文在对基于消息的构件和连接件的动态特 性描述的基础上,使用反射机制,给出了以连接件为中心的软件体系 结构动态演化的框架,消除了软件体系结构动态演化的不一致性。 为了建立需求变化与软件演化之间的关联,本文提出了消息依赖 矩阵的概念,设计了利用消息依赖矩阵获得特征迹的算法;把变化的 需求与支持它的特征迹联系起来,定义了基于需求和特征迹的软件演 化,根据需求变化的类型对软件演化进行了分类,利用特征迹对演化 影响进行了定量分析。基于特征迹的软件演化,有利于演化的定位、 管理和验证。 关键词构件组合运算,软件体系结构,软件演化,软件度量 a b s t r a t s o f t w a r ed e v e l o p m e n tb a s e d o nc o m p o n e n t sa r eb e n e f i c i a lt o r e u s e c o m p o n e n t s ,t oi m p r o v ed e v e l o p m e n te f f i c i e n c ya n ds o f t w a r eq u a l i t y i n t e r a c t i o nb yp a s s i n gm e s s a g e sa m o n gc o m p o n e n t sm a k e ss o f t w a r em o r e r e l i a b l e ,c o m p o n e n t s m o r e i n d e p e n d e n t s o f t w a r ee v o l v e m e n t i s a n i m p o r t a n tp a r t o fs o f t w a r el i f e c y c l e ,a n dh o wt od e v e l o pe v o l v a b l e s o f t w a r eh a sb e c o m ea h o t s p o ti ni tc o m m u n i t y s o f t w a r ea r c h i t e c t u r e ( s a ) o f f e r s ab a s ef o rc o m p o n e n tc o m b i n a t i o na n ds o f t w a r ee v o l u t i o n i t h a ss i g n i f i c a n c ei nt h e o r ya n da p p l i c a t i o n st or e s e a r c hs o f t w a r ea r c h i t e c t u r e e v o l u t i o nb a s e d o nm e s s a g e sa n dc o m p o n e n tc o m b i n a t i o no p e r a t i o n si n t h i sp a p e r a c c o r d i n gt ot h em e s s a g et y p e sw h i c hac o m p o n e n tc a nr e c e i v ea n d s e n d ,ac o m p o n e n tc o m b i n a t i o nm o d e lb a s e d - o nm e s s a g e si se m p l o y e d , c o m p o n e n te x e c u t i n gp a t h sa r ed e f i n e d ,a n dc o m b i n a t i o no p e r a t i o n sa r e d e p i c t e df o r m a l l y g r a p h sb a s e d o nc o m p o n e n tc o m b i n a t i o no p e r a t i o n sa r e g i v e n ,a na l g o r i t h mo nc o n v e r s i o nb e t w e e nt h eg r a p ha n da l g e b r a i ce x p r e s s o fs ai sd e s i g n e d t h ed e s i g np a t t e r ni su s e dt ob e w r i t et h ed e c o m p o s i t eo fn o n f u n c t i o n r e q u i r e s ,t h er e l a t i o nb e t w e e nn o n f u n c t i o nr e q u i r e sa n ds ai ss e tu pw i t h s t r u c t u r ew o r k f l o w s t h en o n f u n c t i o na t t r i b u t e so fs o f t w a r ea r c h i t e c t u r e s a r ee v a l u a t e ds y n t h e t i c a l l yb a s e do ns t r u c t u r ew o r k f l o w sa n dc o m p o n e n t c o m b i n a t i o n a lo p e r a t i o n s a c c o r d i n gt ot h ee v a l u a t i o nr e s u l t am o d e lo n s o f t w a r ea r c h i t e c t u r ee v o l u t i o nb a s e d o nn o n f u n c t i o n r e q u i r e m e n t si s g i v e n s a i n t u i t i o n i s t i c c o m p l e x i t y m e t r i cm e t h o di s g i v e n ,b e c a u s e s o f t w a r ec o m p l e x i t yi s p r o n e t oi n t r o d u c e e r r o r s ,t om a k es o f t w a r e u n d e r s t a n dd i f f i c u l t l y ,a n dt oc a u s es o f t w a r ei n s e c u r e a s i m p l i f y i n g a r i t h m e t i co fs y s t e mm o d e l si s p r o p o s e d ,a n dt h i sl a y saf o u n d a t i o nf o r r e s e a r c ho ns o f t w a r ea r c h i t e c t u r ee v o l u t i o n a u t o m a t i c a l l y a na n a l y s i s a p p r o a c ho fr i p p l e - e f f e c to fc o m p o n e n to p e r a t i o n si sd e s c r i b e db a s e d o n c o m p o n e n tc o m b i n a t i o no p e r a t i o n sa n ds a ,an e wm e t r i co fs ae v o l u t i o ni s d e v e l o p e d ,a n d a nm e t r i c a l g o r i t h m i s d e s i g n e d t r a d i t i o n a l m e t r i c d e f i c i e n c yo ft o om u c hd a t an e e d e d ,e x c e s s i v ed e p e n d e n c eo nm a n p o w e r p a r t i c i p a t i n gi na n di n d i v i d u a le x p e r i e n c e ,a n do n l ya d a p t a t i o nt os m a l ls i z e l i s y s t e m s ,i so v e r c o m e i no r d e rt ok e e pa p p l i c a t i o nb u s i n e s sc o n t i n u o u st oa v o i du n a c c e p t a b l e d e l a y , e x p e n s ea n dr i s kb yc l o s i n ga n dr e s t a r t i n gs y s t e m s ,t h ed y n a m i c c h a r a c t e r i s t i co fc o m p o n e n t sa n dc o n n e c t o r s b a s e d - o n m e s s a g e s i s d e p i c t e d ;ad y n a m i c e v o l u t i o nf r a m e w o r ko fs o f t w a r ea r c h i t e c t u r e c e n t e r i n gc o n n e c t o r si sg i v e nb yu s i n gr e f l e c t i v em e c h a n i s m i no r d e rt oa s s o c i a t e r e q u i r e m e n t v a r i a t i o n sw i t h s o f t w a r e e v o l u t i o n ( s e ) ,t h em e s s a g ed e p e n d e n c ym a t r i xl sd e f i n e d ,a n da r i t h m e t i ci s 。 一 d e s i g n e d t o g e t f e a t u r et r a c e sf r o mm e s s a g ed e p e n d e n c ym a t r i x e s a c c o r d i n gt ot h er e l a t i o nb e t w e e nr e q u i r e m e n tv a d a t i o n s a n df e a t u r e t r a c e s ,s e i sd e f i n e d ,a n dc l a s s i f e db a s e d o nt h et y p e so fr e q u i r e m e n t v a r i a t i o n s ,i t si n f l u e n c ei sa n a l y z e dq u a n t i f i c a t i o n a l l yb a s e d - o nf e a t u r e t r a c e s s ef o u n do n r e q u i r e sa n df e a t u r et r a c e si sp r o p i t i o u st oe v o l u t i o n l o c a t i o n e v o l u t i o nm a n a g e m e n ta n de v o l u t i o nv e r i f i c a t i o n k e yw o r d sc o m p o n e n tc o m b i n a t i o no p e r a t i o n s ,s o f t w a r ea r c h i t e c t u r e , s o f t w a r ee v o l u t i o n ,n o n f u n c t i o na t t r i b u t e s ,m e a s u r i n gs o f t w a r e 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除了论文中特另, l d n 以标注和致谢 的地方外,论文中不包含他人己经发表或撰写过的研究成果,也不包 含为获得中南大学或其他单位的学位或证书而使用过的材料。与我共 同工作的同志对本研究的贡献均已在论文中作了明确说明。 作者签名:兰三睦 日期:兰塑年上月王日 关于学位论文使用授权说明 本人了解中南大学有关保留、使用学位论文的规定,即:学校有 权保留学位论文,允许学位论文被查阅和借阅;学校可以公布学位论 文的全部或部分内容,可以采用复印、缩印或其他手段保存学位论文; 学校可根据国家或湖南省有关部门规定送交学位论文。 作者签名:芝圣臣导师签名作者签名:之圣导师签名 醐:尘坠上月上日 博士学位论文 第一章绪论 1 1 研究背景与意义 第一章绪论 传统的软件开发,总是尽快地开发出原型系统,并通过原型系统的运行得到 用户的反馈,进一步明确系统的需求,改进系统的设计,这对提高软件质量、保 证软件系统的开发成功具有重要意义n 1 ;一个软件系统丌发完毕正式投入使用之 后,如果需求发生变化,或者要将该系统移植到另外一个环境下运行( 环境需求 变化) ,就需要对软件进行修改,包括静态修改和动态修改。因此,无论是软件 开发,还是软件使用,都涉及软件的变化,只有不再使用的软件才保持不变。我 们把软件为满足新的需求而发生的变化称为软件演化。软件开发是困难的,成功 的软件演化更困难0 5 1 。 为了满足新的用户需求,不断改变软件,使软件越来越复杂,从而导致软件 质量持续下降,最终导致软件老化。由于经济和技术两个方面的原因,导致变化 违反隐含假定;即使只有很小的变化,验证技术也必须对整个软件进行验证,这 导致费用j 下比于整个软件系统。为了使软件易于扩展,开发者倾向于使用提供功 能多的构件呻1 ,使得软件实际上只使用构件提供的众多功能中的少数几个,而依赖 的却是构件所依赖的全部功能,这不仅使基于构件的软件变得复杂,也使软件演 化更加困难。软件演化不仅是软件生命周期中的一个完整的组成部分,而且丌发 可演化软件已经成为i t 界的研究热点情7 1 。研究软件演化的目的,是为了能够预 见软件的演化,开发可演化的软件盯1 ,方便演化的定位、形式化说明、证明、确认 和管理,减少软件演化费用。 研究者把整个软件工程分成问题空间和解空间。用户总是关心系统功能( 直 接与问题空问相关) ,以确定需求是否得到满足;软件丌发者关心软件产品的创建 和维护( 直接与解空间相关) 。开发、分发和演化成功软件困难的根源是问题空间 和解空间之间存在鸿沟瞳1 。首先,需求通常是以系统特征的观点给出的,定位需要 改变的代码要花费大量的时间;其次,如果不清楚系统特征之间的相互作用,改 变可能导致有害的副作用d 1 。虽然a l b e r t 等己指出构件之间的关系及其方法的依 赖关系,对于改变时定位是关键的,但是存在的形式化方法不能很好地支持软件 演化。 软件体系结构( s o f t w a r ea r c h i t e c t u r e ,简称s a ) 描述了软件单元、软件单元 的属性以及这些单元之间关系,是在高抽象层次上对软件的一种描述。使用s a 不 但可以提高软件质量、减少软件开销,提高软件生产率,而且还决定了一个组织 博士学位论文第一章绪论 如何实现其业务目标。s a 直接决定了软件系统的运行框架,其优劣不但决定了软 件系统是否可以满足针对此软件的功能需求,而且还决定了这些功能需求是否能 被合理、高效地实现,即也决定了软件系统的非功能属性。因此,开发软件系统 时,经常面临的问题是如何在同样的功能条件下选择不同的s a 。 软件演化是软件固有的本质特性,特别是在网络时代,为了保持业务的连续性, 维护企业形象,支持多变的用户需求,适应动态的变化环境,避免关闭和重启系 统可能招致的不可接受的延迟、费用和风险,要求软件的演化在不停止系统运行 的情况下,动态地实现构件增减并调整软件自身的结构,即要求进行软件的动态 演化,使系统具有连续的可用性阳9 。虽然操作系统、编程语言以及编译器提供了 动态改变软件的机制,但这些机制主要研究动态改变的实现,既不能保证改变是 否达到预期的效果,也不能保证系统的完整性。另外,由于系统越来越复杂,演 化费用也不断提高。造成这种局面的重要原因之一是理解软件系统困难。 虽然s a 语言通过说明对构件、连接件和配置进行建模的语法和语义为描述s a 提供了一个形式化基础,但大多数体系结构描述语言主要用于静态分析和系统生 成,而没有提供说明动态结构的方法。纯粹的结构模型由于缺乏对系统行为的描 述而只能提供有限的信息,不能保证运行时系统的完整性。使用行为模型对存在 的s a 描述语言进行扩展,成为设计动态软件结构描述语言的常用方法,但不同的 方法有各自的优缺点。州。 基于构件的软件开发( c b s d ) 提供了一种从底向上的丌发方法,该方法通过存 在的中间件基础设施实现了构件重用,提高了软件的丌发效率和软件质量,有利 于软件的演化。构件的组合是c b s d 中涉及的重要活动之一心,是基于构件的s a 演化的重要基础。由于非功能需求的作用在有些系统中是关键的,必须得到满足, 而基于构件的软件开发是复用第三方构件,第三方构件的非功能属性,如安全性, 尤其是在线构件瞳引和即插即用构件的安全性,成为影响构件复用的关键因素,因 为对它们的集成被认为是危险的,安全关键的系统如电子商务系统和电子医疗系 统,其危险性更大心引。 非功能需求通常具有全局特性,特别适合使用s a 进行研究。s a 的非功能需求, 如性能、可靠性、拓扑约束或经济约束等,对系统功能进行约束,其关键作用是 作为标准,帮助软件丌发人员在设计阶段选择合适的设计方案。在设计阶段识别 问题,可以减少开发费用和时间,提高软件质量5 | 。把一种非功能需求集成到软 件开发过程中应该是自然的,而且形式化的方法也可以帮助我们进行非功能需求 检验。非功能需求和功能需求密切相关,非功能需求没有满足的后果如同功能需 求没有得到满足,显示地处理非功能需求也可以使我们以一种更合理和更可靠的 方式预期产品的一些质量特性6 | 。但是在实际系统的开发中却往往忽视了软件的 非功能属性。有些系统的非功能属性是在软件开发完成后再考虑的,有些系统虽然 2 博十学位论文第一章绪论 开始考虑到一些非功能属性,但没有进行良好的设计、分析和验证,当产品完 成后才发现不能满足当初的需求,导致软件结构需要改变,大量代码需要重新编 写,需要更多的时间、人力和物力。 1 2 国内外研究现状述评 s a 已经发展成为软件工程的一个重要研究领域引。为了控制软件复杂性、提 高软件系统质量和支持软件复用与演化,s a 的研究贯穿了整个软件生命周期。 软件演化由一系列复杂的变化活动组成,j 下是这种复杂性决定了对软件演化 的研究首先应从宏观层面入手。s a 是系统实现的蓝图,为构件的组合提供基础, 为人们宏观把握软件的整体结构和软件演化提供了一条有效的途径1 。l e id i n g 研究了从面向对象的软件中恢复软件体系结构,然后以软件体系结构为基础进行 软件演化研究o 。进行基于构件的s a 演化研究,必须对基于构件的s a 进行适当 的描述,而软件非功能性度量是进行软件结构演化的依据。因此,本节着重综述 软件演化与s a 、构件组合和软件非功能属性度量相关的内容。 1 2 1 软件体系结构 1 软件体系结构的定义与描述 s 至今没有统一的定义,研究者从不同领域或研究需要对s a 进行定义,其中较 有影响力的有:软件系统的结构,包含软件元素和软件元素外部可见的属性以及 它们之间的关系;软件系统的基本组织,包含构件和环境以及它们之间的关系, 相关的没计与演化原则等。这些定义一般都将构件以及构件之f l | j 的连接作为s a 的 基本组成部分引。赵会群等给出了一个s a h i b 象模型乜引,用抽象代数理论对组件、 连接器和软件体系结构的属性和行为特征进行了抽象,提出了组件连接“运算” 这一新的观点,但只讨论激发和使用两种运算。 s a 的描述可分为3 个层次:首先是s a 的基本概念,包括构件和连接件以及一 些基本的模块互联机制,其中连接件的作用包括通信、协调、转换和辅助交互; 其次是体系结构描述语a d l ( a r c h i t e c t u r ed e c r i p t i o nl a n g u a g e ) ,在s a 基本概 念的基础上,选取适当的形式化或半形式化的方法来描述一个特定的体系结构。 典型的a d l 包括u n i c o n 、r a p i d e 、d a r w i n 、w r i g h t 、c 2s a d l 、a c m e 、x a d l ,、 x y z a d l 和a b c a d l 等。为了探讨a d l 的共同特征,m e d v i d o r i cn 等对典型的a d l 进行分类和比较乜刚,分析了它们各自的特点;最后是s a 模型的多视图表示,从不 同的视角描述特定系统的体系结构,从而得到多个视图,并将这些视图组织起来 博士学位论文 第一章绪论 以描述整体的s a 模型。 a d l 必须通过允许构件子类型和构件特征精练来支持构件演化,但是支持构件 演化的a d l 不仅少,而且对演化的支持非常有限,通常依赖于选择的实现语言。 另外,大多数的a d l 都不支持非功能属性。 2 软件体系结构风格 体系结构风格和模式用来总结和复用软件设计经验,常见的体系结构风格包 括数据流风格、调用返回风格、独立构件风格、虚拟机风格、仓库风格一和基于 消息的c 2 风格等。张世琨等提出了基于层次消息总线的s a 风格乜川,徐正权提出 了一种基于a d a p t e r 的软件总线体系结构哺9 。,g u o 等提出了一种基于消息的树形 s a 风格们。无论是风格的非形式化描述模型,还是提供精确风格特征的形式化规 约,都缺乏一个行之有效的开发方法来指导风格的建模,而且在混合风格问题出 现之后,风格陷入了发展的瓶颈【l9 1 。如何选择体系结构风格和模式还处于探索阶 段,子风格的验证也相当困难。而在软件演化过程中,要求s a 风格在演化前后保 持一致。 由于通过消息传递来实现构件之间的交互使软件更可靠,组件更独立,一个 构件可以不感知其他构件的存在和变化,更有利于系统的维护比3 1 ;而且,构件之 间通过调用进行的交互可以转化为通过消息传递来进行引。所以我们所采用的s a 是基于消息的。但是在基于消息的s a 中,构件之间的连接并没有显示的给出构件 的组合语义。基于消息的s a 具有的共同缺陷是效率低,实现比较凼难,构件之间 的连接语义不能通过体系结构显示表示出来。 ( 1 ) c 2 风格 构件和连接件都有称为”t o p ”和”b o t t o m ”的连接接口,构件的每一个接口 能连接到零到一个连接件上,而每一个连接件的每一个接口能连接到多个构件或 连接件上。构件或连接件之间使用消息进行异步通讯,向上发出请求、向下发出 通知,并且没有指针传递;构件假定其上方的构件为其提供服务,但没有明确是 哪些构件;每一个构件或连接件都拥有独立的控制线程阳制。c 2 风格具有灵活、分 布和并发等优点。 ( 2 ) 基于层次消息总线的软件体系结构风格 该风格基于层次消息总线、支持构件的分布和并发,构件之间通过消息总线 进行通讯,消息总线是系统的连接件,负责消息的分派、传递和过滤及处理结果 的返回。各个构件挂接在消息总线上,向总线登记感兴趣的消息类型;构件根据 需要发出消息,由消息总线负责将接受的消息分派到系统中所有对此消息感兴趣 的构件,消息是构件之间通讯的唯一方式;构件接收到消息后,根据自身状态对 消息进行响应,并通过总线返回处理结果啪1 。由于构件通过总线进行连接,并不 要求各个构件具有相同的地址空同或局限在一台机器上。该风格可以较好地刻划 4 博七学位论文 第一章绪论 分布式并发系统,包括基于c o b b a 、c o m 和e j b 规范的系统1 。 ( 3 ) 树型软件体系结构风格 树型软件体系结构风格的关键元素是根据一些约束条件相互连接起来的构件 和连接件。这些构件和连接件都有它们自己的地址空i 白j 和控制线程。一个连接件 有一个顶端端口和多个底部端口,而一个构件只有一个顶端端口。构件和连接件 的顶部端口都只能连接到一个连接件的底部。连接到一个连接件底部的构件数目 没有限制。构件之问的通讯是通过连接件传递消息实现的,不允许直接通讯。川。 虽然树型s a 简单,但与基于总线的s a 一样,构件之间的连接语义不能通过体系 结构显示表示出来。因此对这种结构的进一步研究存在许多困难。 3 软件体系结构分析 通过对s a 的非功能属性进行分析,预测系统的质量属性并界定潜在的风险。 从精度上看,体系结构分析方法可以分为两类:一类是基于形式化方法、数学模 型和模拟技术,得出量化的分析结果,包括基于进程代数、c h a m 、有穷状态自动 机和l t s 等分析s a 模型。这类方法需要较高的数学背景,并且需要提供大量数据, 往往只适用于较小规模的系统。如果将这些方法应用到大规模系统,则会出现描 述复杂、难于理解和运用等问题。另一类是基于调查问卷、场景分析、检查表等 手段,侧重于得出关于s a 可维护性、可演化性、可复用性等难以量化的质量属性。 这类方法主要通过手工完成,且过度依赖参与者的经验,方法本身只给出了分析 的流程,也没有有效的支撑工具。所以,虽然目前存在着多种的体系结构分析方 法,但在实际应用中,这些方法却很难发挥作用。另外,一些软件分析方法不适合 或不能直接应用于基于消息的s a ,如根据软件体系结构图的边数和直观复杂性。”1 度量s a 复杂性的方法。 1 2 2 构件组合与构件运算 构件的组合是c b s d 中涉及的重要活动之一心,是基于构件的s a 演化的重要 基础。可复用构件的组合必须具备两个前提:构件接口标准化和构件组合机制比。 为了伎组合构件容易理解和容易使用并不容易用错“l ,组合必须达到如下两个目 标:显示表示构件的组合语义,隐藏构件的交互细节。在s a 指导下的构件组合包 括:如何支持可复用构件的互联和如何在组装过程中检测并消除体系结构失配问 题3 。 盛津芳等对商业构件进行了评价呻5 眠训,并研究了利用方面以及动态代理实 现核心模块构件和全局性约束构件的组装方法m 驯,王斌等研究了一个面向领域的、 层次构件语义网络组织模型m4 。,任洪敏研究了构件组装及其形式化推导口引,张世 琨等研究了基于s a 的可复用构件制作和组装强,j i a n gg u o 等研究了基于连接件 的构件组合m 1 ,李海波等研究了基于工作流引擎的构件组装体系结构m 引,廖渊等 博士学位论文第一章绪论 从协商和构件选择的角度研究了一种基于o o s 的服务构件组合方法汹3 ;x i a o h u ic u 针对可扩展的流处理研究了最优构件组合阳7 1 。但是,大量软件都是以特别的方式 设计的,其安全需求或非功能需求经常得不到满足瞳7 i ,例如,一个公开的问题是基 于不同的构件或系统构造的软件能够达到怎样的安全级别。h 1 。j u nh a n 提出了基于 分布式构件的动态安全集成框架口5 1 。d a v i d 等提出,使用适当的构件组合方法,可 以增强系统的安全性,克服了安全验证状态空间爆炸问题的制约m 1 。还有一些文 献从系统可靠性等非功能属性的角度研究了构件组合。但是这些构件组合研究在 结构上通常只描述构件之间的依赖与被依赖关系,设计者的其他意图( 如构件之间 的选择关系) 隐藏在大量的文本描述中,没有显示地体现出来,也没有提供组合构 件和组成构件之间的非功能属性的一般性关联方法。 为了描述构件之间的组合关系,z h a o 等研究了激励和使用两种组合运算瞳钔, z h a n g 提出了条件、使用和协作三种组合运算n 驯,r e n 等提出了顺序、连接、选择、 复制、中断、并行等六种组合机制。地1 ;h i l l s t o nj 等利用进程代数定义了顺序、选 择、并发、协同和封装五种运算1 ,v a n d e r 等定义了顺序、并行分支、同步、选 择和简单归并五种服务组合运算0 0 1 。由于提出运算的角度和目的不同,同一种运 算往往存在不同的定义,而且这些运算描述软件体系结构的能力较弱。例如,如 果一个构件多次调用另外一个构件的服务,则很难使用上述的一些运算来准确描 述这两个构件之l 日j 的关系,而这种客户服务器的关系却广泛存在。 1 2 3 软件非功能属性评估 1 非功能属性 非功能属性大都具有全局性,因此非常适合在s a 级别支持非功能属性。s a 描 述语言数量众多,但直接支持非功能属性的仅有少数几个,m e t a h 和u n i c o n 是其 中比较著名的2 个。m e t a h 主要应用于嵌入式实时电子控制系统,提供对性能、 可靠性和安全的描述与分析。u n i c o n 适合于异构系统之间的互连,支持对性能的 建模和分析。然而它们只支持特定的非功能属性,因此不是普遍意义上的非功能 语言。 l n s r o s a 等人提出了支持非功能属性的s a 的求精规则h 引,但没有提出如 何运用这些规则的进一步指导和相应例证,这些规则是否成立也值得商榷。另外, 体系结构风格对于满足不同的非功能需求具有重要影响,如何根据不同的非功能 要求选择合适的体系结构风格,是根据非功能需求设计s a 中的重要一环,然而现 有的方法中没有对这个问题予以充分讨论h 引。 2 软件非功能属性评估 在当前的软件工程研究中,对于s a 非功能属性的评估已经有了一系列研究。 归纳起来,s a 质量评价有两种方法:“面向产品”的研究,反映在对软件质量评 6 博+ 学何论文第一章绪论 价的努力上;面向流程是一种在软件设计、开发过程中显式地考虑非功能属性的 方法。 对于在软件开发过程中对s a 非功能属性进行评估来说,更为重要的是,评估 s a 非功能属性的各种方法是否可以被软件工程师掌握,并能应用于具体的软件系 统开发之中。因此,使用易于为软件开发人员所用的技术和方式,对于将s a 非功 能属性评估切实应用于实践非常重要h6 1 。 3 软件体系结构可演化性度量 利用调用复杂性关系,对软件代码的可演化性进行了度量,认为函数调用关 系越复杂,一个变化导致的潜在的波及效应就越大,理解代码就需要花费更多的 时问,代码演化也就越难维护引,但这种度量方法基于从具体代码获得的表示函 数调用关系的优势树,是一种事后的度量方法。使用基于s a 的可达矩阵,度量每 一个构件的“贡献”旧1 ,但这种方法没有明确“贡献”与s a 可演化性的关系。 1 2 4 软件演化 1 软件演化原则 b e l a d y 和l e h m a n 首先对系统经历的连续变化进行了研究。行1 ,得到了5 条软件 演化规则:连续变化、不断增加的复杂性、程序演化的基本规则、保持组织稳定 和保持相似性。软件演化与软件维护是相关的概念。系统维护主要涉及软件修改。 修改分为改正性、适应性和完善性三类,且必须遵循如下原则:可分析性,可以 识别被修改的部分:可变性,可以实现修改:稳定性,不产生意外的影响;可测 试性,被修改的部分可以被证明;坚持原则,尊从可维护性标准或原则n 1 。 2 软件演化过程 t u d o r 研究了软件开发者与软件演化之间的关系”0 3 1 ,l e h m a n 等研究了基于构 件软件工程的软件演化o2 。,d a v i dh e a r n d e n 等研究了软件演化过程中实体之间的 关系州。h a r nm 等对软件演化过程进行了描述。州,把软件演化对象分成软件演化 步骤和软件演化过程中的构件。在软件演化过程中有七种不同实体:批评、问题、 需求、说明、模块、程序和优化。在软件演化过程中有八个步骤:软件原型演示、 问题分析、需求分析、详细设计、模块实现、程序集成、软件产品展示和软件产 品实现。图卜1 进一步描述了演化实体和演化步骤之间的关系。 博十学位论文第一章绪论 计 图卜1 演化买体与演化步骤的关系 3 软件体系结构演化 覃国蓉等研究了在基于消息的软件构架中改变构件的实现、增加或删除消息 响应登记和改变消息过滤规则;詹剑锋等针对c 2 风格研究了基于s a 的a g e n t 规 约和演化阳5 1 ;钟林辉等研究了版本变化的构件组装与演化阳1 ,王映辉等研究了体系 结构演化中的波及效应和浸润过程阳10 ;余萍等对s a 的动态演化进行了研究引; 黄双喜、俞春等研究了一类通用的适应性s a 9 ;刘绍华研究了基于服务协作中 间件的动态流程模型啪1 ;马晓星研究了一种面向服务的动态协同架构及其支撑平 台眦1 ;汪洋研究了软件构架在系统动念演化中的应用脚3 。;张友生在构件组合运算 的基础上讨论s a 演化3 1 。n a s s i m as a d o u 等对导致s a 演化的操作插入、删除、替 换和修改进行了讨论,并研究了在不同抽象层次对s a 的演化1 ,b a sg r a a f 研究 了在软件生产线上模型驱动的软件体系结构演化0 7 1 。但是这些演化研究侧重于s a 的功能演化,很少有提供演化和被演化的s a 之i 刈的非功能属性的一般性比较方法。 s a 演化根据演化时机可以分为静态演化和动态演化。为了保持业务的连续性,使 系统具有连续的可用性,t i n g t i n gh a r t 等研究了软件体系结构的动态演化吲。另外, 大多数体系结构描述语言主要用于静态分析和系统生成,而没有提供说明动态结 构的方法。描述动态结构重点在于描述对s a 进行动态操作引。存在的动态结构描 述语言,在描述动态结构时也各有侧重点。c 2 是一种基于构件和消息的体系结构 风格,为体系结构的演化提供了特别的支持。c 2 的动态管理机制是使用专门的体系 结构变更语言,这种语言定义了一组在运行时可插入、删除和重新关联体系结构 元素的操作。对于运行时的软件动态体系结构进行操作,通常借助于一个管理s a 的中间件进行。这至少存在两个方面的问题:效率问题和中间件管理的体系结构 与系统实际的体系结构的一致性问题。 4 演化验证 为了证明扩展的构件与被扩展构件保持一致,不违反系统级规则,n g u y e n t r u o n gt h a n g 研究了增加的特征与原系统的一致性叫,w i n n i eq i u 使用一个构件 依赖模型h 叫,显示地给出构件的接口描述和所依赖的构件需求,并根据依赖关系 确定:如果被依赖的构件具有特性q ,那么构件满足特性p 。但构件依赖模型假定 扩展不增加新的接口。 博十学位论文 第一章绪论 5 软件演化跟踪 需求变化是导致软件演化的根本原因。为了使新的用户需求得到满足,明确 软件改变的位置、理由和方法,避免软件质量下降,缩小问题空间和解空间之间 的鸿沟,使用s a 把需求和软件产品联系起来。这种联系主要涉及如下两个方面的 工作:使用s a 的概念和描述手段在较高抽象层次刻画问题空间的软件需求,使用 自动或半自动的方法把软件需求规约变换到s a 模型;填补高层s a 模型和底层实 现之问的鸿沟,实现从s a 设计模型到系统实现的过渡。 需求与s a 的联系:一种面向s a 的需求工程方法,用构件和连接子等s a 的概 念来结构化地组织需求,所得到的需求规约包括构件的需求规约、连接件的需求 规约及约束需求规约等;一种由一组s a 层次u s ec a s e 构成体系结构层次需求 规约的方法,其中每个s a 层次u s ec a s e 包括相应的参与者、语义规约、质量属性 规约等s a 层次的元素2 。这些需求规约文档将是设计阶段进行s a 建模的基础。 s a 与实现的联系:在s a 模型中引入实现阶段的概念,如引入程序设计语言元 素等;通过模型转换技术,将高层的s a 模型逐步精化成能够支持实现的模型;封 装底层的实现细节,使之成为较大粒度构件,在s a 指导下通过构件组装的方式实现 系统川。 软件演化需要从需求到实现的无缝联接,而需求到s a 模型以及从s a 模型到 系统实现的转化技术尚处于探索阶段,还远远没有成熟,从而限制了s a 在软件演 化过程的支持力度。为了建立一个合理的软件演化的形式化基础,t a k u y a k a t a y a r n a 把系统需求r 与实现需求的程序p 联系起来h 3 1 ,建立了需求演化与程序 演化之i 日j 的关系,提出了一个演化域框架,但没有提供演化验证方法。 1 2 5 存在的主要问题 构件组合与软件演化包含的内容十分丰富,这罩只讨论我们关心的一些问题。 1 构件组合与软件体系结构 构件组合研究在结构上通常只描述构件之问的依赖与被依赖关系,设计者的 其他意图隐藏在大量的文本描述中,没有显示地体现出来,也没有提供组合构件 和组成构件之间的非功能属性的一般性关联方法。已提出的组合运算描述软件体 系结构的能力较弱。虽然已有大量关于s a 描述的研究成果,而且各具特色,但很 少有同时达到如下两个目标的:s a 图具有显示的直观语义;方便对软件系统的功 能和非功能属性进行推导和验证。在基于消息的s a 描述中,没有显示地给出构件 之间的连接语义,构件的连接具有随意性,导致体系结构的可理解性差,使结构 的复杂性度量等非功能属性评估陷入困境。 2 软件的非功能属性评估 一些评估方法需要较高的数学背景和大量数据,只适用于较小规模的系统。 9 博士学位论文第一章绪论 还有一些评估方法主要通过手工完成,依赖参与者的经验,方法本身只给出了分 析的流程,也没有有效的支撑工具。总之,缺乏简单实用的软件非功能属性评估 方法,如缺乏简单实用的软件可演化性度量方法;而且一些度量方法,如s a 复杂 性度量方法,不适合度量基于消息的s a 复杂性。 3 软件演化 存在的形式化方法不能很好地支持软件演化,从需求到s a 模型以及从s a 模 型到系统实现的转化技术尚处于探索阶段,限制了s a 对软件演化过程的支持力度。 缺乏有效的方法验证软件演化前后功能特性和非功能属性是否满足需求。缺乏静 态演化自动化的方法和工具;动态演化存在效率、一致性和可跟踪性等问题;演 化定位需要花费大量的时间,缺乏对系统特征之间的相互作用的了解可能使演化 产生有害影响的研究。 1 3 本文的主要研究内容 如何描述基于消息的s a ,使其具有显示的语义? 如何度量一个s a 具有较好的 可演化性? 如何描述非功能需求和如何评估s a 的非功能属性? s a 如何进行演化 ( 包括静态演化和动态演化) ? 如何使演化具有可跟踪性? 这些问题都将是本文 的研究内容。 1 3 1 构件组合运算与软件体系结构描述 构件组合运算:显示表示构件组合语义,根据构件之间传递的消息类型对构 件组合进行分类,利用执行路径来定义构件运算语义,使用构件组合运算从图形 和代数表达式两个方面对s a 进行描述。 1 3 2 软件体系结构的非功能属性评估 对非功能属性进行形式化描述,建立非功能需求与s a 之间的关联,提出简单 可行的s a 非功能属性评估方法,克服现有评估方法存在的缺陷,并对软件体系结 构的复杂性、性能、可用性和可演化性等进行评估。 1 3 3 软件体系结构演化 1 软件体系结构的静态演化 基于构件组合运算的s a 演化:使用构件运算表示s a ,给出并利用构件演化运 算来简化系统体系结构。 i o 博士学位论文第一章绪论 基于非功能属性的s a 演化:对s a 的非功能属性进行评估,如果s a 不满足非 功能需求,则根据组合运算的特点和演化启发式规则,确定s a 演化模型,对s a 进行演化,使s a 满足非功能需求。 2 软件体系结构的动态演化 对基于消息的构件和连接件的动态特性进行描述,使用反射机制,给出以连 接件为中心的s a 动态演化框架及s a 演化跟踪方法。 1 3 4 基于特征迹的软件演化 为了克服s a 演化的不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业清洗工转正考核试卷及答案
- 耕种机械制造工理论知识考核试卷及答案
- 供应链管理师职业考核试卷及答案
- 道路客运服务员质量管控考核试卷及答案
- 眼镜验光师专业技能考核试卷及答案
- 饼干制作工岗位操作规程考核试卷及答案
- 电法勘探工测试考核试卷及答案
- 调香师知识考核试卷及答案
- 2025短期暑假工合同范本
- 精神科护理试题及答案2025
- 【道法】2025~2026学年度第一学期七年级上册道德与法治第一次月考试卷
- 第四版(2025)国际压力性损伤溃疡预防和治疗临床指南解读
- 三年级下册劳动《整 理书桌》课件
- 《电力建设施工企业安全生产标准化实施规范》
- 糖尿病周围神经病变知多少课件
- 新概念英语青少版入门 A-Unit-1课件(共98张)
- 儿童肺炎支原体肺炎诊疗指南(2023年版)解读
- 个人履职考核情况表
- 中小学消防安全、交通安全、食品安全、防溺水、防欺凌系统安全教育主题课件
- 建筑垃圾减量化专项方案
- 关于农民工工资催付告知函
评论
0/150
提交评论