文档详情

一种软件体系结构描述语言分类和比较方法.doc

发布:2019-09-17约6.74千字共13页下载文档
文本预览下载声明
PAGE PAGE 1 一种软件体系结构描述语言分类和比较方法   [摘要]软件架构转变了开发者从通信线路到粗粒度的体系结构元素和整体互连结构的代码的开发重点。架构描述语言(ADLs)已被提议作为支持基于发展的软件体系建模符号。但是,对什么是ADL、什么样的架构方面应以ADL来建模和有哪几种可能的情形为最适合某个特定问题,很少达成研究界的共识。此外,很少有对ADLs在某一方面或针对某一正式的规范就模块的连接,仿真、编程语言与其他方面做出区别。本文提出了对ADLs定义和分类的框架,通过定义可以把ADLs与其他建模符号区别开来,通过框架可以区分和比较几种现有的ADLs并在这一过程中确定ADLs的关键特性。   [关键词]软件体系结构;体系结构描述语言;构件;连接件;体系结构配置;定义;分类;比较   doi:10.3969/j.issn.1673-0194.2013.01.021   [中图分类号]TP311.5[文献标识码]A[文章编号]1673-0194(2013)01-0034-03   1引言   软件体系结构的研究都是针对降低其发展的应用成本而增加有关产品族不同成员之间潜在的共性[1]。基于公共体系结构风格的软件开发的焦点从代码转移到粗粒度的体系结构元素(软件构件和连接件)和它们的互连结构。为了支持基于体系结构的开发,对体系结构的规格说明起作用的建模概念符号和分析开发工具是非常必要的。架构描述语言(ADLs)及其工具集已经被提出。ADLs最近已成为软件体系结构团体中的热门研究领域[2]。   针对体系建模已经提出了许多ADLs[3],它们都是在特定的领域中作为通用的体系结构建模语言,本文特别考虑通过以下语言作为ADLs的普遍参考:Aesop、ArTek、C2、Darwin、LILEANNA、MetaH、Rapide、SADL、UniCon、Weaves和Wright。最近,针对体系结构交换语言ACME已做了大量的初始化工作,它旨在支持体系架构规格从一种ADL到另一种的映像,并因此使围绕ADLs的一些支持工具的集成成为可能。严格地说,ACME并不是一种ADL,但它包含了许多类似于ADL的特征。此外,它对于比较和区别于其他的ADLs来突出ADL和交换语言之间的差异是非常有用的。   2软件体系结构描述语言分类和比较框架   客观地说,目前并没有人能够具体地回答ADL是什么。相反,他们能够从各自不同的观点阐述ADL包括什么或者能够做什么。然而,最贴切的一个特征和需求的研究表明这些所有的观点都有一个共同的主题,那就是使用它来作为一种框架来指导制定ADL的分类和对比。为了完成这个框架,讨论和总结ADLs的特点,在3家国际软件架构[4]的基础上进行了研究。在很大程度上反映了分类都是以所有的软件架构为依托来反映特点,其中最多的是通过现有的ADLs。在某些情况下,典型特征不能被现行的ADLs支持,它们既对基于结构框架的开发很重要,又会在软件结构中利用到之前的研究项目当中的知识,例如C2。最终,使得学习它们并且相应地学习运用语言,将拓展知识应用到建立软件模型框架当中。   ADL与其他系统的实现不同,它是一个为软件系统的概念性架构建模提供的一门语言。ADLs为特征框架提供一个具体的语法和一个概念框架。这个特征的概念框架典型地反映了ADL中的与/或的框架风格的范围特征。该框架典型地包含了ADL的潜在语义理论(例如,CSP、实验室网,有限状态机)。   2.1框架类   在这个部分介绍ADL分类和比较框架的顶层分类和比较的范畴。一个ADL框架描述的组成模块包括构件、连接件和体系结构配置的配置。ADL必须为它们能够明确地说明提供必要的手段,使能够确定某一个特殊符号是否是ADL。   2.2ADLs框架体系结构   ADLs框架体系结构由构件、连接件和体系结构配置3个部分组成[5],下面将对这3个概念进行分别介绍。   2.2.1构件   构件是一个计算单元或数据存储。也就是说,构件时计算与状态存在的场所。在体系结构中,一个构件可能小到只有一个过程或大到整个应用程序。每个构件可能需要它自己的数据或执行空间,也可以与其他构件共享这些空间。正如已经初步探讨的,明确的构件接口是ADLs的一个特征。另外还有的比较属性是建模的构件类型、语义学、约束、进化及非功能性属性,将在下面进行讨论。   (1)接口:构件的接口是与外部环境交流的一组交互点。接口说明了构件提供的那些服务(消息、操作和变量)。为了能够充分地推断构件及包含它的体系结构,ADL提供了能够说明构件需要的工具,例如提供体系结构中的需要的其他构件的服务。因而一个接口定义了在其应用上进行计算和约束的方法。   (2)类型:构件类型都是抽象的概念,可封装成重复使用的功能块。一个构件类型能够多次
显示全部
相似文档