APP下载

构件形式化组装研究

2013-11-13安海宁

合作经济与科技 2013年8期
关键词:三元组术语架构

□文/安海宁 娄 健

(河北大学计算中心 河北·保定)

基于构件进行系统组装的研究,是基于组件的软件工程(简称CBSE)中的一个研究热点。合理地进行构件描述,并在使用构件的时候,快速、准确地判断出构件的可用性,通过构件组装系统的可行性分析,才能在此基础上进行有理有据的构件组装,进而形成应用系统。

为了实现构件组装,大量的可重用构件是不可缺少的,所以构件库作为存储和管理构件的实体,在基于构件的开发过程中起着非常重要的作用。其中,如何对构件进行合理的描述将直接影响构件的可用性、易用性、可学习性等。在利用构件库中的构件进行系统组装时,快速推导出构件能否被正确地集成在一起,完成特定的系统功能,是研究人员必须解决的一个非常重要的问题。

一、构件描述

为了能够利用构件库中的构件进行组装,对构件进行合理的描述是必不可少的。构件描述需要涉及其组装特征,及从多个方面衡量它与其他构件能否组装的必备信息;要描述构件的接口,从而获知构件如何与其他构件进行信息交互;还有一些其他特征信息,便于用户更好地理解构件。基于这些因素,定义构件描述如下:

一个构件描述就是一个三元组:

其中,AssemblyProperties用于描述构件的组装特征,ComponentInterfaces用于描述构件的接口,OtherCharacters用于描述构件的其他特征。

1、AssemblyProper ties的描述。对于AssemblyProperties,定义其也为一个三元组:

其中,每个描述项称为一个组装刻面,每个组装刻面可以有多个术语对其进行具体描述。

functions刻面描述构件的主要功能,是构件用户最关心的一个刻面。其术语随领域不同,可以自行定义。例如,针对图书馆管理领域,functions刻面的术语可以有图书信息处理、读者信息处理、借阅信息处理等。

依据软件体系结构的构成,structures刻面主要描述该构件在软件体系结构中中所处的位置,其术语可包括:表示层(UI)、业务逻辑层、数据层等,术语随构件实际所处的软件架构位置不同,可以自行定义。

implements刻面主要描述构件实现的具体方法,其术语可以包括如:应用程序实现、脚本实现等。该刻面的术语同样可以自行定义。

2、Component Inter faces的描述。构件通过接口向外提供服务。对Interfaces的描述包括该接口能够对外界提供哪些服务,满足哪些条件才能够提供这些服务,如何提供服务。表示如下:

接口语义说明接口能够提供什么服务,需要满足哪些条件才能提供这些服务,以及构件执行完毕的状态;接口语法说明接口如何提供服务。由于利用XML可以比较清晰地反映接口描述的层次性,使描述结构化,所以这里用一个简化的XML的DTD(文档模板定义)给出对接口描述的详细设计。其中参数的基本类型与C++所提供的基本参数类型一致。

3、OtherCharacters的描述。Other-Characters主要包括用户在使用该构件时需要了解的其他方面的信息,如构件版本、运行平台、其他构件支持等。Other-Characters的具体描述项可根据构件实际情况增减,但在描述时需要一一指明有哪些描述项。

图1 构架规则实例

图2 组装过程

二、构件组装规则

组装规则可定义为一个三元组(A,R,P),其中A代表组装的架构规则,R代表组装的实现规则,P代表组装的性能规则。

其中,架构规则的含义是软件配置单中各个构件在软件架构上满足的要求,如一个完整的应用软件应该由UI、业务逻辑等构件组成,即为架构规则。架构规则可保证配置单中的构件在逻辑上可以正确连接。

实现规则规定了软件配置单中各个构件在实现方法上的一些限制,如采用何种构件实现技术、接口定义如何等。实现规则可确保配置单中的构件在物理上可以正确连接。

性能规则说明了组装成一个性能较好的应用软件,对配置单中出现的构件应有的一些要求。如各个构件的延迟、响应时间等。性能规则能够辅助用户组装一个性能优越的应用软件。

在上述组装规则中,实现规则和性能规则的表达较为简单,而架构规则的表达较为复杂,为了简洁且准确地表达一个应用软件的架构规则,在本项目中,使用EBNF对架构规则进行了描述。EBNF,即扩展巴科斯-瑙尔范式,经常用来描述高级程序设计语言的语法规则,具有简洁、严谨、精确、无歧异等优点。EBNF中常用的符号如下:

根据架构规则的不同,我们可把目前常用的应用软件分为数据库应用型、网络应用型、Web应用型等不同种类型,可用EBNF表达,如图1所示。(图1)

其中,规则a的含义为:一个应用软件可以是数据库应用、通信应用或Web应用;规则b的含义为:一个数据库应用应该由UI构件、一个或多个业务逻辑构件、数据访问构件、数据库构件组成,其中数据访问构件为可选项。其他规则的解释类似,这里就不再赘述了。

三、构件的组装

项目中,采用如图2所示的组装过程。(图 2)

首先,用户根据软件的功能需求及构件库中现有构件功能特性,生成软件配置单。由于用户生成软件配置单时只考虑了构件的功能特性,而功能符合要求的构件并不一定可以组装成一个完整的应用程序,因此需要对用户生成的软件配置单做验证,验证依据即为上述的组装规则。在本项目中,实现配置单验证的模块被称为“配置单编译器”。

若软件配置单通过验证,则配置单编译器会给出成功标志,同时会对本次组装的性能做相应评价;若未能通过验证,则会给出错误标志,同时提示配置单出错位置,以便于用户修改。

通过上述对组装过程的分析可知,组装实现的关键是软件配置单的验证,即如何实现配置单编译器。

[1]Shaw M,Deline R,K lein DV.Abstractions for Software Architecture and Tools to SupportThem[J].IEEETransaction on Software Engineering,1995.4.

[2]任洪敏,钱乐秋.构件组装及其形式化推导研究[J].软件学报,2003.6.

[3]廖昕,陈松乔,孙莹.可复用构件组装技术研究[J].计算技术与自动化,2004.3.

猜你喜欢

三元组术语架构
基于带噪声数据集的强鲁棒性隐含三元组质检算法*
基于FPGA的RNN硬件加速架构
特征标三元组的本原诱导子
功能架构在电子电气架构开发中的应用和实践
关于余挠三元组的periodic-模
LSN DCI EVPN VxLAN组网架构研究及实现
一种基于FPGA+ARM架构的μPMU实现
三元组辐射场的建模与仿真
有感于几个术语的定名与应用
从术语学基本模型的演变看术语学的发展趋势