动态软件体系结构研究综述倡
- 格式:pdf
- 大小:347.93 KB
- 文档页数:4
学号 1206年级 2012级动态软件体系结构描述D-ADL方法理解与研究专业班级计算机(2)班姓名联系方式 15任课教师周2015年5月中国南京摘要D-ADL是一种刻画软件的动态行为的描述方法,该方法是由我国学者李长云提出的。
在D—ADL中,组件、连接件和体系结构风格定义为抽象类型,系统行为被模型化为进程,构件和连接件的交互点则被模型化为通道,它将动态行为从计算行为中分离出来,其结果能够被预先推导。
关键词:动态软件体系结构;D-ADL根据软件体系结构在运行时的演化方式,可以分为静态软件体系结构和动态软件体系结构。
软件体系结构的动态演化包括组件或连接件的创建或删除、组件的更新、调整负载平衡等几种情况。
D-ADL便是一种为动态体系结构建模提供支持的方法。
D-ADL遵循Wright等给出的SA描述框架,并且D-ADL将高阶多型π演算作为行为语义基础,凭借高阶π演算描述动态系统的特征,D-ADL允许构件、连接件和配置产生变更,并使得对SA的自动化分析成为可能。
D-ADL将类型与实例区分开来,构件类型是实现构件重用的手段。
构件具有三个基本组成部分:接口部分、行为部分和属性部分。
构件分有原子构件和复合构件两种。
原子构件是指不具备内部结构的构件。
为了进一步促进原子构件的重用,构件可以参数化,通过输入不同的参数,来提高构件的灵活性。
复合构件是由多个构件实例和连接件实例组装而成的,它在规约层次上表达了成员之间的组合。
与原子构件类似,复合构件也可进行参数化,从而提高构件的可重用性。
连接件是一种特殊的构件,同样地,连接件也分为原子连接件和复合连接件两类。
原子连接件语法规约类似于原子构件,仅仅是计算行为描述换成了路由行为。
通过结构化组合,多个连接件和构件也能形成复合连接件。
在D-ADL中,动态行为规约是通过choreographer来处理的.动态行为本质上是对体系结构的动态重配置,涉及到如下的体系结构变动:(1)动态创建新的构件实例和连接件实例以及新的端口和通道;(2)动态删除构件实例和连接件实例以及端口和通道;(3)体系结构元素之间连接的改变。
软件体系结构研究报告软件体系结构是指软件系统中各个组件之间的关系和交互方式,它是软件开发过程中的重要环节。
本文将对软件体系结构的研究进行分析和总结。
软件体系结构的研究旨在设计一个符合系统需求的结构框架,以便于软件系统的开发和维护。
软件体系结构研究的主要内容包括:系统需求分析、软件架构设计、模块划分和数据流程等。
首先,系统需求分析是软件体系结构研究的基础。
通过对系统需求的分析,可以确定系统的功能、性能、安全等要求,从而为软件架构设计提供指导。
其次,软件架构设计是软件体系结构研究的核心。
软件架构设计是指在系统需求的基础上,根据系统性能、可靠性等因素,设计出系统的组件、接口和关系。
常见的软件架构设计模式有层次结构、管道-过滤器、客户端-服务器等。
接着,模块划分是软件体系结构研究的关键。
模块划分是将系统拆解成多个模块,每个模块负责特定的功能。
模块划分可以按照功能划分、数据划分等多种方式进行。
合理的模块划分可以提高系统的可维护性和可复用性。
最后,数据流程是软件体系结构研究的重要内容。
数据流程是指系统中数据的流动方式和路径。
合理的数据流程可以提高系统的效率和响应速度。
在软件体系结构的研究中,还需要考虑系统的可扩展性、可移植性和安全性等因素。
可扩展性是指系统的容量和性能可以随着需求的增加而增加。
可移植性是指系统可以在不同的平台和环境下运行。
安全性是指系统能够保护用户的隐私信息,防止数据泄露和攻击。
综上所述,软件体系结构研究是软件开发过程中的重要环节,它可以帮助系统设计者设计出符合需求的软件系统。
通过对系统需求的分析、软件架构的设计、模块的划分和数据流程的设计,可以提高软件系统的可维护性、可复用性和可靠性。
软件体系结构研究还需要关注系统的可扩展性、可移植性和安全性等因素,以提高软件系统的性能和安全性。
总之,软件体系结构研究对于软件开发和系统维护都具有重要意义。
软件体系结构研究报告软件体系结构研究报告一、背景:随着计算机技术的不断发展和应用程序的复杂化,软件体系结构的研究日益受到关注。
软件体系结构是指软件系统中各个组件之间的关系和交互方式。
它是指导软件开发的重要依据,对于提高软件的可维护性、可扩展性和可重用性具有重要意义。
二、研究目标:本研究旨在探讨软件体系结构的相关理论和方法,为软件开发提供指导和支持。
三、研究内容:1. 软件体系结构的基本概念和分类:软件体系结构是指软件系统的组成部分以及它们之间的关系和相互作用。
根据软件体系结构的复杂程度和应用特点,可以将软件体系结构分为单体应用、分布式应用、面向服务的应用等。
2. 软件体系结构的设计原则:软件体系结构的设计需要考虑软件系统的需求和约束条件。
常用的设计原则包括模块化、层次化、松耦合、高内聚等。
3. 软件体系结构的建模方法:常用的软件体系结构建模方法包括结构化方法、面向对象方法、面向组件方法等。
这些方法通过图形化表示和描述软件系统的组成部分以及它们之间的关系。
4. 软件体系结构的评估与验证:软件体系结构的评估和验证是确保软件系统具备预期的属性和行为的重要途径。
常用的评估和验证方法包括可行性分析、模拟测试、形式化验证等。
四、研究方法:本研究采用文献综述和案例分析的方法,以系统地了解和总结软件体系结构的相关理论和方法,并结合实际应用案例,探讨软件体系结构的设计和评估方法。
五、研究结果:1. 通过对相关文献的综述,分析了软件体系结构的基本概念和分类;2. 总结了软件体系结构的设计原则,为软件开发提供了指导;3. 研究了软件体系结构的建模方法,包括结构化方法、面向对象方法和面向组件方法;4. 探讨了软件体系结构的评估与验证方法,并介绍了常用的评估和验证工具。
六、结论:软件体系结构是软件开发的重要环节,它能够有效提高软件的可维护性、可扩展性和可重用性。
通过本研究,我们对软件体系结构的相关理论和方法有了更深入的了解,为软件开发提供了指导和支持。
动态软件体系结构模型及自适应策略的研究动态软件体系结构模型及自适应策略的研究随着软件系统的复杂性和多样性不断增加,为了提高软件系统的性能和适应性,研究者们开始关注动态软件体系结构模型及自适应策略。
动态软件体系结构模型是一种可以自适应地应对不同环境和需求变化的软件系统架构。
本文将介绍动态软件体系结构模型的概念和原理,并探讨其在软件开发中的应用。
动态软件体系结构模型是指一种可以根据系统环境和需求变化来动态调整自身结构和功能的软件架构。
与传统的静态软件体系结构模型不同,动态软件体系结构模型允许软件系统在运行时根据实时环境信息进行改变,以提供更好的性能和适应性。
其核心思想是将软件系统分为多个自治的组件,这些组件可以根据环境和需求的变化进行自主调整和动态协作。
通过灵活调整系统结构,动态软件体系结构模型能够在不改变系统整体功能的情况下适应不同的运行环境和需求变化。
动态软件体系结构模型的设计需要考虑以下几个关键方面。
首先是系统的自组织能力,即组件之间的动态协作和自治能力。
通过定义合适的接口和通信机制,不同的组件可以自主地判断环境信息并进行相应的调整。
其次是系统的可扩展性,即系统能够在运行时动态地添加或删除组件以满足不同的功能需求。
同时,动态软件体系结构模型还需要考虑系统性能和安全性的平衡,以确保系统在动态调整过程中不会降低性能或引入不安全因素。
在动态软件体系结构模型的研究中,自适应策略被广泛应用于系统的决策和调整过程。
自适应策略是指一种根据实时环境信息和需求变化来调整系统行为和配置的方法。
通过引入自适应策略,动态软件体系结构模型可以根据具体需求自动选择合适的组件并调整它们之间的协作关系,以实现更高的性能和适应性。
常见的自适应策略包括基于规则的策略和基于机器学习的策略。
基于规则的策略通过预先定义一些规则和条件来决定系统的行为和配置;而基于机器学习的策略则通过学习历史数据和环境信息来预测未来的需求变化,并根据预测结果进行相应的调整。
软件体系结构综述计算机应用专业赵诚 070321169随着计算机应用的日益普及,人们对软件的需求量急剧增加。
起初,人们把软件设计的重点放在数据结构和算法的选择上。
随着软件系统规模越来越大,越来越复杂,新的问题也随之而来, 大量实践统计表明:系统软件开发中,70%的错误是由软件设计阶段引入的; 而且错误在系统中存在的时间越长则越难发现, 解决这些错误的代价也越高,于是整个系统的结构和规格说明逐渐占有了重要的位置,软件体系结构这一概念也应运而生。
它成为了沟通软件需求和软件设计的一座桥梁。
1、软件体系结构的定义对于软件体系结构的定义,至今还没有一个统一的、得到广泛认可的解释,很多软件体系结构学者都提出了各自对体系结构的概念与定义。
软件体系结构的最核心概念有构件、连接件、配置、端口和角色。
构件是具有某种功能可重用的软件基本单元,表示软件系统中主要的计算元素和数据存储单元。
连接件表示了构件之间的交互,是构件与构件之间建立和维持行为关联和消息传递的途径。
包括实现构件之间的交互机制和管理这些交互的原则(协议)。
配置表示了构件和连接件之间的拓扑结构和逻辑约束,它是构件和连接件的集合。
总之,软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
软件体系结构不仅定义了系统的组织结构和拓扑结构,而且表示了系统的需求和构成系统的元素之间的对应关系提供了设计决策的基本原理和约束条件。
2、软件体系结构的风格软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。
它反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统,按这种方式理解,软件体系结构风格定义了用于描述系统的术语表和一组指导构件系统的规则。
2.1数据流系统数据流是一种将数据从输入端显式的输送到输出端的体系结构风格。
数据流风格的构件是数据的处理单元,连接件是连接处理单元的通道。
收稿日期:2008唱11唱06;修回日期:2008唱12唱08 基金项目:国家自然科学基金资助项目(60703116);云南省应用基础研究计划资助项目(2006F0024Q) 作者简介:李琼(1982唱),女,云南人,硕士研究生,主要研究方向为软件工程与软件测试(hellolqg@163.com);姜瑛(1974唱),女,浙江余姚人,副教授,硕导,博士,主要研究方向为软件工程、软件构件与测试技术.动态软件体系结构研究综述倡李 琼,姜 瑛(昆明理工大学信息工程与自动化学院,昆明650051)摘 要:近年来,随着Internet的迅猛发展和应用形式的不断更新,传统的软件体系结构(SA)已无法完全适应需求,动态软件体系结构(dynamicsoftwarearchitecture,DSA)逐渐成为SA研究人员关注的焦点之一。
描述了DSA的研究背景及研究意义;总结了DSA的研究内容及国内外的研究现状;最后探讨了DSA研究的主要发展方向。
关键词:软件体系结构;动态软件体系结构;动态演化;描述语言;执行工具中图分类号:TP311 文献标志码:A 文章编号:1001唱3695(2009)06唱2352唱04doi:10.3969/j.issn.1001唱3695.2009.06.106OverviewonresearchofdynamicsoftwarearchitectureLIQiong,JIANGYing(SchoolofInformationEngineering&Automation,KunmingUniversityofScience&Technology,Kunming650051,China)Abstract:Inrecentyears,withtherapidgrowthofInternetandthecontinuousimprovementoftheapplicationstyles,tradi唱tionalSAcouldnotfullymeettherequirements.Dynamicsoftwarearchitecture(DSA)graduallybecamethefocusofattentionofSAresearchers.Atfirst,describedthebackgroundandmeaningoftheDSA,summarizedthemainresearchareasoftheDSAanditspresentresearchsituationbothathomeandabroad.FinallydiscussedsomesignificantlypromisingtendencyaboutDSAresearch.Keywords:(softwarearchitecture)SA;DSA;dynamicevolution;descriptionlanguage;implementationtool0 DSA研究背景及意义SA是对软件系统整体组织结构和控制结构的刻画,包括系统中各计算单元(构件)的功能分配、各单元之间的高层交互说明(连接件)以及SA的约束。
当前,SA研究主要集中在静态体系结构上,这种体系结构在运行时不能发生改变。
而对于一些需要长期运行且具有特殊使命的系统(如航空航天、生命维持、金融、交通等),如果系统需求或环境发生了变化,此时停止系统运行进行更新或维护将会产生高额的费用和巨大的风险,对系统的安全性也会产生很大的影响。
静态体系结构缺乏表示动态更新的机制,很难用其分析、描述这样的系统,更不能用它来指导系统进行动态演化。
因此,DSA的研究应运而生。
随着网络和许多新兴软件技术(如agent、网格计算、普适计算、移动计算、网构软件等)的发展,对SA提出了许多更高的要求,如SA的扩展性、复用性、适应性等,而传统的静态体系结构已难以满足这些要求。
Perry在2000年第十六届世界计算机大会主题中提出,SA中最为重要的三个研究方向即体系结构风格、体系结构连接件和DSA,再次说明了DSA研究的重要性。
与静态体系结构相比,研究DSA的意义主要在于能够减少系统开发的费用和风险。
由于采用DSA,一些具有特殊使命的系统能够在系统运行时根据需求对系统进行更新,并降低更新的费用和风险。
此外,DSA能增强用户自定义性和可扩展性,并可为用户提供更新系统属性的服务。
1 DSA研究内容及现状DSA指那些在软件运行时刻会发生变化的体系结构[1,2]。
与传统(静态)SA相比,DSA的特殊之处在于它的动态性。
SA的动态性指由于系统需求、技术、环境、分布等因素的变化而导致SA在软件运行时刻的变化[1],主要通过SA的动态演化来体现。
目前,对DSA的研究主要集中在动态演化、模拟/描述SA动态演化的语言和支持SA动态演化的执行工具等方面展开。
1畅1 动态演化现阶段,对于DSA动态演化的研究主要围绕动态演化的需求来源、动态演化时期、动态演化类型、动态演化方法等方面。
SA的动态演化主要来自两类需求:a)软件内部执行所导致的体系结构改变。
例如,许多服务器端软件会在客户请求到达时创建新的构件来响应用户需求。
b)是软件系统外部的请求对软件进行的重配置。
例如,操作系统在升级时无须重新启动,在运行过程中就完成对体系结构的修改。
DSA的演化一般发生在四个时期:a)设计时期,演化发生在体系结构模型和与之相关的代码编译之前;b)预执行时,演化发生在执行之前、编译之后,这时由于应用程序并未执行,修改时可以不考虑应用程序的状态,但需要考虑系统的体系结构,且系统需要具有添加和删除构件的机制;c)受约束的运行时,演化只发生在某些特定约束满足时;d)运行时,系统的体系结构在运行时不第26卷第6期2009年6月 计算机应用研究ApplicationResearchofComputersVol.26No.6Jun.2009能满足要求时发生的改变,包括添加构件、删除构件、升级替换构件、改变体系结构的拓扑结构等。
此时的演化是最难实现的。
事实上,对DSA的演化研究应重点放在后两个时期发生的演化。
在SA动态演化类型的研究上,Cuesta等人将软件的动态性分为三个级别:a)交互动态性,仅仅要求固定结构里的动态数据交流;b)结构动态性,允许结构的修改,即构件和连接件实例的创建、增加和删除;c)体系动态性,允许SA的基本构造的变动,即结构可以被重定义,如新的构件类型的定义。
以此标准衡量,目前DSA的动态演化研究大多仅支持发生在层次a)b)上的动态性,而对层次c)上的动态性支持甚少。
一般而言,实现SA动态演化的基本原理是使DSA在可运行应用系统中以一类有状态、有行为、可操作的实体显式地表示出来,并且被整个运行环境共享,作为整个系统运行的依据。
也就是说,运行时刻体系结构相关信息的改变可用来触发、驱动系统自身的动态调整。
此外,对系统自身所作的动态调整结果可反映在体系结构这一抽象层面上。
在系统结构上,通过引入运行时体系结构对象,使得相关协同逻辑可从计算部件中分离出来,显式地、集中地得以表达,符合关注分离的原则;同时又解除了系统部件之间的直接耦合,这些都有助于系统的动态调整。
由于动态演化实现起来比静态演化复杂得多,系统必须提供SA动态演化的一些相关功能。
首先,要求系统必须提供保存系统当前的SA信息(拓扑结构、部件状态和数目等)的功能;其次,实施动态演化还需设置一个监控管理机制,对系统有无需求变化进行监视。
当发现有需求变化时,应能分析、判断可否实施演化、何时演化及演化范围,并最终分析或生成演化策略。
再者,还应保证演化操作原子性,即在动态变化过程中,如果其中之一的操作失败了,整个操作集都要被撤销,从而避免系统出现不稳定的状态。
DSA实施动态演化大体遵循以下四步:a)捕捉并分析需求变化;b)获取或生成体系结构演化策略;c)根据步骤b)得到的演化策略,选择适当的演化策略实施演化;d)演化后的评估与检测。
目前,在DSA演化研究中,对系统的完整性及演化的一致性的保证、检查的研究还不够深入。
此外,由于DSA自身的复杂性,当前对于动态演化理论的研究还不成熟,缺乏统一性,仍处于摸索阶段。
1畅2 描述语言连接件概念诞生后,一般从构件、连接件及它们之间的配置描述软件系统的结构。
支持构件、连接件及其配置的描述语言即体系结构描述语言(architecturedescriptionlanguage,ADL)。
ADL是研究和应用SA的基础,通常用来对SA进行建模?如何在SA层次上刻画软件的运行时动态行为、如何描述动态的SA,使得动态ADL成为设计和实现DSA的基础和关键。
动态ADL可分为形式化和非形式化两类,目前的研究以形式化描述语言为主流。
形式化语言要求:能够描述构件、连接件等单独的实体,体现SA关于构件、连接件的属性,如构件的抽象特点、连接件的通用性等;能够描述构件和连接件的交互,进行构件与连接件之间的一致性检查;能够描述系统SA的运行时演化。
目前用于描述DSA的形式化语言主要集中在对现有的一些ADLs的扩展上,采用到的技术主要有以下几类:a)基于图论的方法。
该方法主要用图的顶点表示构件,边表示连接件,并引入协调机制管理体系,动态性由图的重写(graphrewriting)规则体现。
b)进程代数方法。
该方法通常用于研究并发系统,一般基于代数及微分知识———具体涉及到的知识有通信交互系统演算(calculusofcommunicatingsystems,CCS)、通信顺序进程(com唱municatingsequentialprocesses,CSP)及Pi演算。
c)基于逻辑重写(时序逻辑)的方法。
该方法是DSA描述的形式化基础。
非形式化方法主要是采用XML技术。
表1是对动态ADL及其采用的相关技术、对DSA的支持情况等的归纳与总结。
表1 动态ADL研究总结语言类型方法语言提出者具体技术特点形式化非形式化基于图论进程代数基于图论和进程代数其他CHAM[3]LeMeta唱yerap唱proach[4]DynamicWright[4]Darwin[4]Pi唱ADL[5]D唱ADL[6]SAAM模型的描述语言[7]JB/SADL[8]C2SADL[9]Rapide[10]ABC/ADL[11]G.Berry和G.BoudolLeMeta唱yerRober.J.Allen等Magee和Kramer等Archware李长云等于振华等张世琨等RichardN.Taylor等Luchham等王晓光等引入转换规则及项重写用HR(hyper唱edgereplace唱ment)图文法、图重写使用标签事件(taggedevents)技术对Wright进行扩展一阶Pi唱演算基于高阶Pi唱演算基于高阶多型Pi演算面向对象Petri网OPN和Pi演算两种互补的形式化方法采用伪码刻画构件接口、构件结构、构件实现,采用Mealy机(包括一组有穷的状态集合)刻画构件的行为基于偏序事件集通过link和un唱link操作,事件驱动用XML等作为元语言能够描述、分析SA的动态行为,支持SA配置演化的研究能用图重写来规约体系结构动态行为的途径支持动态的建模和分析,用于死锁检测、模型一致性验证等工作对基于消息传递的分布式系统进行描述和动态配置,支持预设的动态演化支持动态体系结构建模和验证支持系统联机演化及SA求精适用于基于构件的软件系统的动态演化,支持动态体系结构建模、分析与验证支持对JB/HMB(青鸟基于层次消息总线的SA)风格的系统进行规范化描述,并可在工具的支持下进行系统性质分析、动态模拟运行、动态演化和代码框架自动生成主要面向C2风格的SA描述,支持体系结构演化、动态配置支持有限度的动态体系结构行为一种通用类型的ADL,用于支持基于体系结构、面向构件的软件开发方法如表1所示,各种描述方法各有其特点。