公务员期刊网 论文中心 正文

软件体系ADLs的分类与比较研讨

软件体系ADLs的分类与比较研讨

ADL与其他系统的实现不同,它是一个为软件系统的概念性架构建模提供的一门语言。ADLs为特征框架提供一个具体的语法和一个概念框架。这个特征的概念框架典型地反映了ADL中的与/或的框架风格的范围特征。该框架典型地包含了ADL的潜在语义理论(例如,CSP、实验室网,有限状态机)。在这个部分介绍ADL分类和比较框架的顶层分类和比较的范畴。一个ADL框架描述的组成模块包括构件、连接件和体系结构配置的配置。ADL必须为它们能够明确地说明提供必要的手段,使能够确定某一个特殊符号是否是ADL。ADLs框架体系结构由构件、连接件和体系结构配置3个部分组成[5],下面将对这3个概念进行分别介绍。

正如已经初步探讨的,明确的构件接口是ADLs的一个特征。另外还有的比较属性是建模的构件类型、语义学、约束、进化及非功能性属性,将在下面进行讨论。(1)接口:构件的接口是与外部环境交流的一组交互点。接口说明了构件提供的那些服务(消息、操作和变量)。为了能够充分地推断构件及包含它的体系结构,ADL提供了能够说明构件需要的工具,例如提供体系结构中的需要的其他构件的服务。因而一个接口定义了在其应用上进行计算和约束的方法。(2)类型:构件类型都是抽象的概念,可封装成重复使用的功能块。一个构件类型能够多次在单一的体系结构中实现或被重用。构件类型可以参数化,进一步促进可重复使用。显式模型的类型使得所有实例共享的属性类型易于理解和分析。(3)语义:定义构件模型的语义作为一个高级构件的行为。这样一个模型是需要做分析,加强体系结构的约束使其能够从一个阶段的抽象到另一个抽象一致映射。注意一个构件的接口也允许某种有限的程度上对其语义的推理。然而,语义概念应用于本文是严格指构件建模的行为。(4)约束:一个约束是关于一个系统或它的一个部分一种属性或断言,破坏约束将会使得系统不被接受或者不能正常使用。为了确保执行预期构件的使用,强行使用边界条件,并建立内部相互之间的依赖和指定一个构件的限制。(5)演化:作为组成模块,构件将不断进化。构件演变可以定义为一种非正式的一个子集修改(一个构件的属性),例如,界面、行为或实施。ADLs可以通过运用构件类型和具体构件特点中的典型子集技术确保进化发生按照的是系统化的方式。(6)非功能性属性:一个构件的非功能性属性(例如,安全、性能、可移植性)通常不能直接来源于它的行为规范。这些特性的早期的规格(在体系结构设计层面)需要模拟过程,分析,加强约束条件,地图构件处理器的实现和项目管理的帮助。

一个连接件是一个连接件和构件及与之相连的链接器相互之间作用的交互点。因为连接件不履行任何特定应用的计算,作为其接口提供这些相关构件的期望服务的输出。连接件接口使构件适当地建立连接并且使它们在体系结构中的交互成为可能,也因而推理出体系结构的配置。连接件类型是封装构件的沟通、协调、调解的决策的抽象的概念。结构层次交互由复杂的协议描述。让这些协议不仅在整个需要ADLs模型连接件类型的体系中可重用而且可以跨越体系重用。有两种典型的方式:为完成可扩展的类型系统,定义交互协议,或者是基于特定的实现机制相互作用的内部构造,枚举类型。类似于构件,连接件被定义为一种高层次语义模型的连接件的行为。不像部件,其语义表达了应用程序的功能,连接件语义蕴涵的相互作用协议(计算上的独立)。ADLs可以支持连接件语义的建模,实现构件的交互分析,整体抽象结构层次精确一致和加强相互连接约束。确保约束交互协议,建立内部交互连接件机制,并且强化边界条件的使用。一个简单的例子和容易的强调性约束就是一个在一定数量的构件上建立的约束,它通过连接件进行交互。建立更多复杂的连接件约束将需要已有的连接件能够取得外部消息。相较之下对构件演化,一个连接件的演化是修改(定义为其属性的一个子集),例如,界面、语义学、或共同限制这两个。结构体系构件的相互作用是受复杂并具有改变和扩大能力的协议控制的。然后,两个独立的构件及其配置进行演化。ADLs可以适应这种演化,通过改变或是用增加消息过滤器的技术和手段完善现有的连接件。一个连接件的非功能性属性也并非完全可以从规范的语义得到。它们代表要求正确的连接件的实施。建模的非功能性属性的连接件使仿真运行时行为分析、连接件、约束实施,并选择适当的现有(理论连接件)和它们的处理器成为可能。

软件体系结构的一个角色就是为项目中的不同的相关者和在一个较高抽象层次的设施的理解提供一个早期的交流通道。ADLs必须建立使用简单移动的语义来建立模型。系统的结构应该清晰地描述系统的配置。例如,没有实现进行研究的构件和连接件的规格说明。组合性或层次组成,是一种允许体系结构描述软件系统在不同层次的细节的机制。复杂结构和行为可能会被明确代表或者它们可能是抽象出来了的一个单一的部件或连接件。还有可能出现这样的情况,整个系统将成为另一个更大的系统的一个构件。这样的抽象机制应该作为一个ADLs建模能力的一部分。除了为体系结构提供语义上的具体设施来定义体系结构,ADLs必须能够改正和实现可执行系统和追溯系统改变等级的一致性。这是由ADLs的开发和利用普遍支持的。这就在低级与高级系统之间搭建了一个相互交流的桥梁。软件体系结构的一个目标是促进大规模系统的发展,由于先前存在的元件和连接件的不同粒度,可能会存在不同的正式规定统一建模语言和执行不同的编程语言,还会有不同的操作系统方面的要求,支持不同的通信协议。因此,ADLs应该是开放的,即为软件体系结构提供规范和发展与异构构件和连接件。体系结构旨在为开发者提供解决抽象和复杂问题大规模软件。因此,ADLs必须直接支持大规模系统的规范和发展,这样才能够得到进一步发展。新软件的系统很少提供前所未有的功能,一个可以演化的体系结构系统能够支持系统的进一步进化,基于软件体系结构的发展是ADLs一个重要的发展方向。灵活性指的是当系统执行任务时能够修改体系结构和制定系统的修改方法。系统灵活性的支持对于某个安全任务严格系统来说是很重要的,例如交通控制,话机转换和高利用环境信息系统。约束描述了配置完成的具体到独立个体构件和连接件的依赖。许多通用的约束都是源于或者是直接依赖于本地约束的。例如,在无效配置上的约束将会被作为在连续构件和连接件中的交互约束,反过来是通过它们的接口和协议来表示。特定的非功能属性是系统级的,而不是个别的构件或者是连接件属性。配置等级的非功能性属性被需要用来选择适当的构件和连接件,执行分析,加强约束,映射体系结构组成模块和服务工程管理。体系结构的配置或拓扑结构是构件和描述体系结构的连接件的连接图,需要这种消息来确定是否连接了合适的构件,它们的接口是否相互匹配,连接件是否能够适当地沟通,还有它们组合的语义是否能够产生需要的行为[8]。在具有构件和连接件的模型当中,配置的描述实现了对体系结构的并行系统与分布式系统的评估。例如,死锁等的潜在性能,可靠性和安全性等等。配置的描述同时还实现了设计试探法的附加体系结构的分析(例如,体系构件之间的妨碍发展的直接通信连接)和体系结构类型约束。

本文的突出贡献是提出了一个这样的框架定义与分类的概念,定义提供了一种简单的见效快的ADLs检验方法,并对体系结构建模的本质在很大程度上达成了一致的共识。值得指出的是,通过简化结构与实现之间的关系、约束性的ADLs的实现比“主流”ADLs(独立的实现)在生成安装上更成功。现有的ADLs的比较突出的表现在几个领域,对体系结构建模性能和工具都提供了广泛的支持。(本文作者:徐莹 单位:辽宁工程技术大学)