基于统一建模语言的构件描述研究

2022-09-12

构件 (component) 是系统中可替换的部分, 它遵循并提供了一组接口的实现。随着对软件复用及应用研究的深入, 可复用的软件构件库作为软件复用的一项重要的基础设施已越来越得到产业界与学术界的重视。构件的描述和检索是软件复用和构件库研究的一个重点[1]。

1 构件传统描述方法

构件的描述是构件检索的基础, 不同的构件检索方法是以相应的构件描述模型为基础的。构件的描述也是构件库管理系统的基础。将构件的行为以一种含义明确的方式描述出来是非常重要的, 在描述构件时要保证其含义的精确性, 同时这种描述方法又要简单和直观, 以利于构件的使用者的使用和理解。

William B.Frakes将传统的构件描述方法分为人工智能方法、超文本方法、信息科学方法三类[2]。而信息科学方法是实际复用项目中应用较为成功的方法。其中, 枚举、刻面、属性-值、关键词和正文描述方法较为常用, 又以关键词、刻面描述两种方法应用最为普遍。

目前, 刻面分类方法是一种较成熟的方法, REBOOT构件描述模型、国防软件仓库系统DSRS模型、KRY模型、以及北大青鸟构件模型都引入了刻面描述的思想。

2 构件功能的多粒度描述

在构件复用过程中, 用户对所需构件的粒度要求不同。如果描述构件的粒度较大或较小, 将无法满足用户的需求。在构件检索中, 还需要尽量提高检索效率, 使需要大粒度构件的用户能够尽量少的关注构件的实现细节, 使需要小粒度构件的用户有一定的信息了解构件的功能。所以, 在构件描述中, 应当尽可能提供多种粒度的描述方式, 以满足用户对构件粒度的不同要求。在这里主要讨论面向对象设计的构件, 本文将构件的功能分为三个粒度, 即“类”-“单项功能”-“复合功能”。

构件除了描述功能的属性外, 还有其它的属性。本文采取对构件分层描述的方法, 在分层描述的文献中, 较有代表性的方法是将构件信息分为管理信息层, 服务信息层, 实体信息层[3], 并针对不同的信息层采取不同的描述方法。第一层是管理信息层, 描述构件的管理信息, 如构件的ID号, 构件运行环境, 构件的作者等, 这一部分由枚举法描述。第二层为服务信息层, 主要有服务的对象, 服务的领域等信息, 这一部分采用刻面描述。第三层为实体信息层, 主要含构件功能, 属性, 接口等信息, 该层采用语义描述。第一层与第二层主要描述构件的外部信息。第三层部分则主要对构件进行不同粒度的功能描述。

虽然构件的信息层, 采用的描述方法不一样。但都可以采用RDF三元组表示。RDF提供了一个通用的数据模型支持Web资料的描述, RDF三元组用形如 (主体-谓词-客体) 的三元组来描述Web上的各种资源和它们之间的关系。本文使用RDF三元组来描述构件中各元素之间的关系。为了精简描述信息, 本文并没有严格按照RDF的要求书写三元组, 而以简略的<主体谓词客体>形式表示各元素的关系。

对构件描述的信息可分为两类, 一类是描述构件功能的信息, 功能信息需要借助UML视图描述, 然后转换成RDF三元组。另一类是构件的其它信息, 如构件的作者, 构件的ID号, 构件的服务对象等, 则不需转换, 可直接用RDF三元组表示。

2.1 对功能信息的描述方法

UML是一种可用于详细描述的语言, 所建立的模型是精确, 无歧义并且完整的[4]。在UML视图中, 用况图 (use case diagram) 是被称为参与者的外部用户所能观察到的系统功能的模型图。用况是系统中的一个功能单元, 可以被描述为参与者与系统之间的一次交互作用[5]。交互图 (interaction diagram) 描述了执行系统功能的各个角色之间相互传递消息的顺序关系, 可以通过交互图描述系统功能的执行。用况图、交互图、类图提供了不同粒度的功能描述。对应关系如下。

用况图——复合功能, 交互图——单项功能, 类图——类。

这三种视图关系密切, 用况图中的每一个用况可通过交互图描述出来, 而交互图表现的是一个交互, 由一组对象和它们之间的关系组成, 包括它们之间可能传递的消息, 离不开类之间方法的调用。

UML中主要有两种交互图对行为进行描述, 一种是顺序图 (sequence diagram) , 另一种是通信图 (communication) 。其中顺序图是着重于消息的时间次序的交互图。而且通信图则强调着重于在对象的某些结构组织的语境中消息的排列顺序。通信图与顺序图具有等价的语义, 并且可以从一个图转换到另一个图而不丢失信息。本文采用顺序图来描述动态行为。用况图和顺序图都可转换成RDF三元组的描述方式。转换方法将在下一节就详细说明。

2.2 对其它信息的描述方法

对于构件中的其它信息, 也可转换成RDF三元组的表示形式。刻面描述法中, 将刻面转换成三元组中的主语, 将描述刻面信息的术语转换成属性值, 谓词使用“=”表示。例如, 刻面描述方法中, 描述操作系统刻面的值为“windows”, 则使用RDF三元组表示的形式为<操作系统=windows>。

3 构件功能的多粒度描述方法

为了描述系统的功能, 本文将其分为三个粒度, 分别为复合功能, 单项功能和类。UML中用况图, 交互图, 类图三种视图与这三种功能相对应。在描述构件时, 先用UML的三种视图对构件功能进行描述, 然后将这三种图转换为RDF三元组的形式。

3.1 对交互图的进行描述

交互是一种行为, 这种行为由语境中的一组对象为达到某一目的而交换的一组消息构成。交互图一般包括:角色和对象, 通信或者链, 消息。其中链是对象之间的语义连接, 一般而言, 链是关联的实例。在两个对象之间有链存在的情况下, 一个对象就能向另一个对象发送消息。描述方法为先定义对象, 然后描述关系。在顺序图中, 对象间传送消息的方式如图1所示:

图1的三元组的表示如下:

<张参谋属于情报管理员>

<请求获取情报 () 属于方法>

<敌1师属于实参>

其中, “属于”为关键词, 表示三元组中主体与客体为实例与类的关系。

下面以购书的用况为例说明其描述方法。顺序图如图2所示:

在描述中, 以类名代替匿名对象, 其三元组表示方法如下。

<作战单位属于参与者>

<情报管理员属于类>

<情报库属于类>

<情报属于类>

<作战单位请求查找情报 () 情报管理员>

<情报管理员取情报 () 情报库>

<情报库返回 () 情报管理员>

<情报管理员返回 () 作战单位>

<作战单位浏览 () 情报>

<作战单位请求获取情报 () 情报管理员>

<情报管理员情报分发登记 () 情报管理员>

<情报管理员情报封装 () 情报>

<情报返回 () 情报管理员>

<情报管理员返回 () 作战单位>

以上方法描述了构件所具有的作战单位获取情报这一单项功能。整个交互图对应于“作战情报获取”用况。该图中的三元组顺序不能改变, 体现了图中消息传递按时间顺序的特点。通过对顺序图的描述, 不仅可以描述“作战情报获取”用况的具体实现, 而且可以在检索过程中发现隐藏的功能, 例如, “获取作战情报”用况中含浏览情报的功能。

3.2 对用况图进行描述

每一个用况对应于一个交互图, 对应于一个单项功能。复合功能即通过多个用况间的关系来表示。用况可理解为系统的一个功能块。用况图通常包括:主题, 用况, 参与者, 依赖、泛化与关联关系。其表示方法如下

(1) 参与者与用况的关系表示。

如图3所示, 三元组表示为:

<作战单位参与作战情报获取>

用况与用况的关系表示同参与者与用况的关系表示方法相同。

三元组表示为:

<作战情报获取include身份验证>

(2) 对整个用况图表示。

如图4所示描述时先对用况图中的参与者与用况进行定义, 然后描述用况与用况, 用况与参与者的关系。三元组表示如下:

<作战单位属于参与者>

<作战情报获取属于用况>

<身份验证属于用况>

<作战情报上报属于用况>

<作战单位参与作战情报获取>

<作战单位参与作战情报分发>

<作战情报获取include身份验证>

以上是对用况图的描述。通过对用况与用况, 用况与参与者之间的关系描述, 说明了复合功能这一级描述方法。

3.3 对类图的进行描述

类图主要包括属性和方法。以下方法表示:

<情报名称属于属性>

<浏览属于方法>

以上通过转换, 将UML的三个视图表示成RDF三元组的形式, 构件的功能可按不同的粒度表示。

4 总结与展望

本文通过使用UML中顺序图、用况图来描述构件的多粒度的功能, 然后转换成简略的三元组表示方法, 实现了对构件“复合功能”-“单项功能”-“类”三级粒度的描述。采用RDF三元组方式描述构件的功能, 为检索提供了多种途径, 如对单项功能中隐藏功能的查找。对类的属性和方法进行描述后可对其进行语义扩展, 可使构件适用于更大的范围。

摘要:统一建模语言 (Unified Modeling Language, UML) 是一种可用于详细描述的语言, 所建立的模型是精确, 无歧义并且完整的, 且能描述系统不同粒度的功能。本文用UML描述构件的功能, 然后将其转换为资源描述框架 (Resource Describe Framework, RDF) 三元组的形式。从而实现对构件功能不同粒度的描述。

关键词:UML,构件描述,RDF

参考文献

[1] 赵俊峰.软件构件标准概述[J].信息技术与标准化, 2006, 6:10~13.

[2] William B Frakes, Thomas P Pole.AnEmpirical Study of Representation Meth-ods for Reusable Software Components[J].IEEE Transactions on SoftwareEngineering, 1994, 20 (8) :617~630.

[3] 江红.军用软件构件描述研究[J].通信指挥学院, 2008, 3.

[4] Grady Booch, James Rumbaugh, IvarJacobson.The Unified Modeling Lan-guage User Guide[J].Addison Wesley, 2001, 1.

[5] James Rumbaugh, Ivar Jacobson, GradyBooch.The Unified Modeling LanguageReference Manual[J].Addison Wesley, 2001, 1.

上一篇:建筑施工企业“营改增”下的洗牌——“出局”还是“重生”下一篇:建筑电气工程施工技术管理问题分析