软件体系结构描述语言(ADL)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2011-5-28

大作业参考资料:

1.试就一种常用软件体系结构说明其概念、结构模型与应用领域,并结合该体系结构的应用,用一种ADL来描述该体系结构。

2.结合某一应用,编写一个XML文档,并将其与一个XML Scheme对应起来,最后用一种方法来解析该XML文件。

3.登录Oracle网站,学习Java FX 的使用方法,编写一个小型Java FX应用。(选作)

4.通过网络学习Flex,用Flex编写一个应用程序。(选作)

5.给出三种常用的Java 设计模式,并用Java语言给出其实现的实例。电子稿文件名格式:学号+姓名+软件体系结构期末作业.DOC

软件体系结构描述语言(ADL)

要点浏览

本章将对学术界常见的体系结构描述语言进行介绍.由于研究流派不同,各种ADL的设计和能力也不尽相同.本章选取五种比较典型的ADL作为代表,希望能让读者了解主流ADL的基本能力,主要功能和应用范围.为了让读者对各种ADL 有一个更为清晰的认识,本章最后还对这五种典型的ADL进行了比较全面的比较. 通过本章的学习,您将能:

了解主流ADL的语法和语义

掌握主流ADL的特点

区分主流ADL的不同

总体介绍

任何一个软件系统都有结构,在系统开发过程中的分析设计阶段,通过考察系统的结构,可以对系统的开发和实现提供良好的基础.系统的结构往往体现为系统的各个部分之间的配置.对于描述软件系统配置的表示法的研究由来已久.早在1975年,DeRemer和Kron就设计了模块互连语言(Module Interconnection Language,MIL)用于描述结构化的基于模块的程序.在MIL中,模块可能需要导入/导出各种资源.所谓的"资源"就是命名元素,例如类型定义,常量,变量,函数等.MIL 的编译器通过进行模块间的类型检查来保证系统的完整性,常见的检查包括:某个模块要使用的资源是否已经被其它模块提供了,资源的类型是否匹配,一个模块的实现是否确实提供了其规约中声明的资源,一个模块是否有权访问它要使用的资源等.

早期的MIL要求不同模块的开发人员在开发前先达成很多一致.例如:能够根据简单的名字匹配来发现模块之间的交互,所有的模块都是用同一种语言开发的,所有的模块在组装系统时都可用,模块的接口描述了与之进行交互的其它模块……进一步的研究逐步弱化了这些限制.例如Darwin允许模块在运行时动态的实例化并进行绑定;Polygen允许不同的模块用不同的编程语言进行开发.各种软件配置的表示法逐渐成熟,它们既能描述静态也能描述动态的结构化的分布式系统. MIL的关注点是模块及其之间的互连.随着系统复杂度的提高,人们发现模块之间的交互逐步变得复杂.研究人员对模块之间交互的重视导致了"连接子

"(connector)这个概念的诞生,它主要用于描述软件系统的各个组成部分(component)即构件之间的交互关系.从而软件系统的结构可以自然的用构件,连接子及其之间的配置进行描述.将连接子作为与构件同等重要的一阶实体进行处理,是因为如果不将构件之间的交互显式的进行描述,将会带来一些问题,包括: 难以将构件之间的交互信息局部化,从而导致难以识别系统中的连接,并且难以复用连接机制

构件之间的关系难以进行抽象,从而阻碍对整个系统结构的理解

由于构件的实现和交互信息绑定在一起,对不同构件的使用往往会因为交互机制的不兼容而产生严重的集成问题.

支持构件,连接子及其配置的描述语言就是如今所说的体系结构描述语言(Architecture Description Language,ADL).UniCon就是最早出现的一种体系结构描述语言.此外,典型的ADL还包括:

Rapide:一种事件驱动的ADL,它以体系结构定义作为开发框架,支持基于构件的开发.该语言提供了建模,分析,仿真和代码生成的能力,但是没有将连接子显式地表示为一阶实体.

Wright:其主要特点是将CSP 用于软件体系结构的描述,从而完成对体系结构描述的某些形式化推理(包括相容性检查和死锁检查等).但它仅仅是一个设计规约语言,只能用于描述,无法支持系统生成,同时CSP 的使用也是比较困难的事情. Acme:支持ADL之间的映射及工具集成的体系结构互交换语言.其目标是作为体系结构设计的一个共同的互交换格式,以便将现有的各种ADL在这个框架下统一起来;而它本身也可以看作是一种ADL.

xArch:一种基于XML 的ADL.它使用XML 定义了描述体系结构的核心元素,可

以用来简单的描述软件体系结构,也可以作为设计其它ADL的基础,或者用作体系结构描述描述语言的互交换机制.

xADL2.0:以xArch 为基础的基于XML 的ADL.除了xArch 的核心元

素,xADL2.0 还提供了对系统运行时刻和设计时刻的元素的建模支持,类似版本,选项和变量等更高级的配置管理观念,以及对产品家族的体系结构的建模支持.此外,xADL2.0还利用XML 的可扩展性简化了新的ADL的设计及其相应工具的开发过程.

各种ADL的出现为描述软件系统的结构提供了一种形式化的描述方法,而不是容易引起歧异的线框图.这种精确的描述也使得设计人员能够在系统开发的早期阶段对系统结构进行高层的分析和验证,从而有助于提高软件开发质量,降低开发成本.

以下我们将着重介绍五种ADL:UniCon,Darwin,C2 SADL,Acme和xADL.

常见的体系结构描述语言

UniCon (Universal Connector)

UniCon简介

UniCon是由CMU和SEI设计的一个体系结构描述语言.该语言关注软件体系结构的结构化特性,将系统(本身也是一个复合构件)描述为构件和连接子的配置,其中构件表示计算或者数据,而连接子表示构件之间的交互.每个构件的接口都对外提供一些演员(player).构件通过这些演员与外界发生交互.与构件类似,一个连接子的协议对外提供一些角色(role),连接子通过这些角色来调解构件之间的交互.图- 1是用UniCon的图形化编辑器生成的示意图.

UniCon概念的示意图

相关文档
最新文档