版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上软件体系结构课程题目:动态软件体系结构的描述1. 动态软件体系结构概述软件体系结构(Software Architecture,简称:SA)是对软件系统整体组织结构和控制结构的刻画,包括系统中各计算单元(构件)的功能分配、各单元之间的高层交互说明(连接件)以及SA的约束。当前, SA研究主要集中在静态体系结构上,这种体系结构在运行时不能发生改变。而对于一些需要长期运行且具有特殊使命的系统(如航空航天、生命维持、金融、交通等),如果系统需求或环境发生了变化,此时停止系统运行进行更新或维护,将会产生高额的费用和巨大的风险,对系统的安全性也会产生很大的影响。静态体系结构缺乏
2、表示动态更新的机制,很难用其分析、描述这样的系统,更不能用它来指导系统进行动态演化。因此,动态软件体系结构(Dynamic Software Architecture,简称:DSA)的研究应运而生。允许在系统运行时发生更新的软件体系结构称为动态软件体系结构,动态体系结构在系统创建后可以动态更新。其动态性主要分为三类:交互式动态性,结构化动态性和体系结构动态性。目前,DSA的研究主要集中在以下几个方面,一是体系结构的动态演化,二是研究模拟和描述体系结构动态更新语言,三是研究支持体系结构动态更新的执行工具。对于DSA动态演化的研究主要围绕动态演化的需求来源、动态演化时期、动态演化类型、动态演化方法
3、等方面;模拟和描述动态体系结构的研究主要集中在对现有的一些ADL扩展以支持体系结构的动态性;动态演化执行工具有加州大学Irwine分校提出的ArchStudio工具集,伦敦皇家学院提出的SAA(Software Architecture Assistant),北京大学提出的PKUAS等。当前主流的体系结构模型CORBA、COM/DCOM、EJB等,都不支持体系结构的动态更新。同时,由于动态体系结构本身的复杂性,又缺乏通用的结构模型和有效的形式化描述机制及分析工具,使得学术界对DSA的研究还不成熟,实际应用较少,因而解决软件的演化问题将成为DSA应用研究领域的一个重要方向。其次,对于与DSA研究
4、相关概念的统一、通用性支持工具、动态演化完整性、一致性、追溯性等问题都有待进一步深入。此外,随着DSA研究的深入,基于DSA的一些新兴软件体系结构的研究,如自适应软件体系结构、正交软件体系结构、自省动态软件体系结构、网格动态体系结构等,将会成为DSA研究的发展方向。2. 动态体系结构的描述与静态体系结构的描述一样,动态体系结构的描述既可以使用描述语言,也可以使用形式化的描述;既可以使用UML建模机制,也可以使用XML建模机制。2.1 DSA的描述语言软件体系结构描述语言(Architecture Description Language,简称:ADL)是SA领域的一个重要研究成果,ADL从较高
5、抽象层次上描述构件接口的语法和语义、系统中的构件和连接子以及它们之间的交互关系、构件的非功能属性以及构件间协议,从而建立系统的体系结构模型。但是大多数ADL只描述系统的静态结构,不支持对体系结构动态性的描述。UML作为体系结构建模工具,它不是一种体系结构的描述语言,而是一种设计语言。因此开发动态软件ADL是很有必要的。近年来,已经开发出了很多动态体系结构描述语言,如Darwin、Dynamic ACMED、Dynamic Wright、Rapide等。(1) Dynamic WrightDynamic Wright是体系结构描述语言Wright的一个扩展,Dynamic Wright的主要目的
6、是试图模拟或标记已解决软件系统的动态性。采用Dynamic Wright具有较多的良好特性,其中之一就是能够很容易地描述软件的动态环境。在客户-服务器的体系结构中,如果设计师想要对客户(Client)的每一步工作所依赖的服务器(Server)进行说明,比如Client最初是依赖于Server1的,当且仅当Server1出现问题时,Client将与Server2进行交互。因此,设计师必须用一个符号来表示每一个接触点L。图2-1是上述问题的静态描述,它图2-1 静态描述并不能清楚的反映出设计师对体系结构的动态依赖关系,这样有可能导致设计师把一些关键的方面遗漏,它还需要一些额外的文本对体系结构的行为
7、进行说明。如果采用Dynamic Wright来描述客户-服务器的体系结构,就用一个动态变化的新符号,即配置“configuror(C)”。通过增加一个configuror到Wright的标记中,设计师就能很好的阐述控制行为,使得设计师能更好地描述系统体系结构。“Configuror”主要涉及这些问题:什么时候软件体系结构应该重新配置?什么原因使得软件体系结构需要进行重新配置?重新配置应该怎样进行?图2-2是上述问题的动态描述,通过引入虚线和配置C来动态描述该系统的动态特征。这样设计师就能很容易地把系统的动态环境表述清楚。因此,Dynamic Wright是非常适合动态软件体系结构的环境描述。
8、图2-2 动态描述(2) DarwinDarwin是一个用于描述系统配置规划的ADL,它把一个程序看成是由不同级别的构件进行相应的配置。相对于其他的ADL,老程序员在使用Darwin上显得更容易些。Darwin具有很多其他ADL的图形表示和文本表示的特点,Darwin与其他的ADL的主要不同之处在于:Darwin具有一个用于对构件所需要的和提供的服务进行指定的规则。图2-3是一个采用Darwin对filter构件的图形化和文本化的描述。图2-3 构件filter的Darwin描述在Darwin中,服务的命名是局部命名(如next和output),每一个服务需要被局部地指定,也就是说每一个构件能
9、够从系统中分离出来并且进行独立测试。Darwin对于表示体系结构构件的开发和设计是一个相当成熟的工具,但是Darwin在其他方面的描述上并不是完美的。(3) Z语言Z语言是一种基于集合理论和一阶谓词逻辑的形式语言或方法,支持软件的形式化规格的推理及求精,是迄今为止应用最为广泛的形式语言之一。模式是语言的基本描述单位,一个软件系统的主要是由若干个模式构成,这些模式刻画了系统的静态性质和动态行为。采用扩展的Z语言来描述软件体系结构的动态特性,其描述规则如下:规则1:构件可以表示一个数据类型,接口同样可以表示一个数据类型同样,连接件和接口也可以表示数据类型规则2:接口是用来表示接收还是发出请求的,其
10、接口应该是属于 receive,send 两种类型,定义了接口的具体行为规则3:模式名字可以定义一个具体的接口构件或系统,其模式可包括其他的模式来表示其结构和行为规则4:构件之间的连接是通过连接件来实现的,其连接行为也可以定义是一个类型扩展的Z 语言从语义与语法上描述了体系结构中构件连接件和配置,如图2-4所示图2-4 扩展Z语言描述DSA2.1 DSA的形式化描述动态软件系统的形式化描述包括软件体系结构的描述、体系结构的重新配置和系统行为的描述。对DSA的形式化描述,通常可以采用图形化方法、进程代数方法、逻辑方法等。(1) 图形化方法由于图能够直观地描述系统体系结构及其风格,所以用图形化方法
11、描述软件体系结构是很自然的事情,用图的重写规则来描述DSA的配置也是一种很自然的方法。采用图形化方法描述DSA的主要有Le Metayer的描述方法、CHAM方法、Hirsh等的描述方法等。(2) 进程代数方法进程代数方法通常用于研究并发系统,在并发系统中进程通常用代数方法描述,用微分方法对描述进行验证。多进程代数应用于CCS,CSP和演算。常用的进程代数方法有Dynamic Wright、Darwin、LEDA和PiLar等(3) 逻辑化描述方法逻辑化描述方法是DSA描述的形式化基础,常用的逻辑描述方法有Gerel、Aguirre-Maibaum方法和ZCL方法等表2-5是对DSA形式化描述
12、方法的归纳与总结,这些描述方法各有其自身的优点和缺点。表2-5 DSA形式化描述方法归纳与总结方法语言提出者具体技术特点图形化法Le Metayer approachLe Metayer用HR图文法、图重写能用图重写来规约体系结构动态行为的途径CHAMG. Berry和G.Boudol引入转换规则及项重写能够描述、分析SA的动态行为,支持SA配置演化的研究进程代数法DynamicWrightRober.JAllen等使用标签事件技术对Wright进行扩展支持动态的建模和分析,用于死锁检测、模型一致性验证等工作DarwinMagee、Kramer等一阶Pi演算对基于消息传递的分布式系统进行描述和
13、动态配置,支持预设的动态演化Pi-ADLArchware基于高阶Pi演算支持动态体系结构建模和验证图形化和进程代数SAAM模型的描述语言于振华等面向对象Petri网OPN和Pi演算两种互补的形式化方法适用于基于构件的软件系统的动态演化,支持动态体系结构建模、分析与验证JB /SADL张世琨等用伪码刻画构件接口、构件结构、构件实现,采用Mealy机刻画构件的行为支持对JB /HMB风格的系统进行规范化描述,并可在工具的支持下进行系统性质分析、动态模拟运行、动态演化和代码框架自动生成此外,徐洪珍等人提出用约束超图表示软件体系结构,用左右应用条件刻画软件体系结构动态演化的前断言和后断言,用条件超图文
14、法建模软件体系结构动态演化过程;汪玲等人提出用扩展的Bigraph描述面向方面动态软件体系结构(AODSA)模型的结构;赵智坤等人提出用动态描述逻辑的方法描述DSA,都为DSA的描述与分析提出了新的方法,为DSA的发展奠定了理论基础。参考文献:1 张友生.软件体系结构M. 2版.北京:清华大学出版社, 2014.2 李琼,姜瑛. 动态软件体系结构研究综述J.计算机应用研究,2009.6.3 晏郑勇.基于动态软件体系结构的软件自适应性研究硕士学位论文.2014.5.4 周绪川. 适用于动态软件体系结构的扩展的Z描述语言J.计算机应用研究,2012.9.5 徐洪珍, 曾国荪, 陈波. 软件体系结构动态演化的条件超图文法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026事业单位工勤技能-北京-北京有线广播电视机务员一级(高级技师)历年参考题库含答案详解
- 2026事业单位工勤技能-内蒙古-内蒙古地图绘制员一级(高级技师)历年参考题库含答案详解
- 2026事业单位工勤技能-云南-云南园林绿化工四级(中级工)历年参考题库含答案详解
- 2026事业单位工勤技能-上海-上海堤灌维护工三级(高级工)历年参考题库含答案详解
- 2026一级建造师-建设工程项目管理(官方)-建设工程项目进度控制参考试题库历年考点答案详解
- 沙盘模型制作合同书样本(范本)
- -七年级上暑假检测数学试卷
- 2026年开化县中小学幼儿园教师招聘笔试备考试题及答案解析
- 2026年盐源县网格员招聘考试参考题库及答案解析
- 2026年普定县网格员招聘考试备考试题及答案解析
- 消防安全四懂四会知识培训
- 幼儿园德育工作指南(2025版)
- 2025年成都市第八人民医院招聘真题
- 2026年反兴奋剂知识自测题库及答案详解1套
- 2026年校园传染病科学预防与健康守护指南
- 绵阳育才中学小升初入学分班考试英语考试试题及答案
- 2025年全媒体记者笔试题目答案
- 烘培工作室卫生责任制度
- 粮食消防培训
- 航空保卫条例培训课件教学
- DB46∕T 684-2025 土沉香(白木香)传统造香技术规程
评论
0/150
提交评论