您的位置:网站首页 > CAD新闻

MSC的构件及组装模式形式化描述研究

时间:2011-02-25 10:06:18 来源:

  0引言

  近年来人们从传统工业和计算机硬件的飞速发展的成功模式中获得启发,逐渐认识到要真正解决软件危机,实现软件的工业化生产是唯一可行的途径。它们的成功均是采用了标准化的构件(Component )生产以及基于标准构件的产品生产模式。这种构件复用的思想应用到软件开发中,被称为软件重用(Software Reuse)。

  软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域知识。或将这些可重用元素称为软构件(Software Component ),或简称为构件。由于软构件大都经过了质量认证,并且经过实际运行环境的检验,所以使用软构件元素开发的软件具有良好的软件质量。由于大量软构件的存在以及能够方便快捷地通过查询得到所需的构件,所以软件开发的速度大大提升,开发成本得到了有效控制。开发人员在获得所需构件后,所要做的工作只是根据需求分析和设计阶段得到的软件架构模式(也可认为是一种软构件),将构件按需要组装在一起.并在必要时添加少量胶合代码(Glue Code)使各个构件联合在一起工作。同时组装后的构件又可以作为一个粒度更大的软构件被保存或者重用。于是产生了基于构件的软件开发方法CBSD ( Component Based Software Devel-opment )。

  不难看出在CBSD中,构件是基础.重用是手段,组装是核心。目前软件构件的获取相对比较容易。一方面目前Internet上存在大量免费的可重用构件,另外还可以通过购买中间件开发商的构件库得到构件。也正是由于这种获取的方便性以及目前构件标准的不完整性,给构件组装方法的研究以及组装工具(环境)的开发带来了困难。

  我们在对该问题进行分析后认为,为了有效解决该组装难题,关键是要从更高的层次对构件进行描述。必须选择一种通用的、直观的、准确的描述语言,该语言描述应该类似自然语言(易于理解),有较严格的形式化语法(不能出现二义性),还要有丰富的语意。因此选择消息序列图MSC ( Message Sequence Chat)作为载体。从名字看,MSC是一种图描述语言,实际上它具有文本描述(Textual Description)和图形描述(Graphical Description)两种形式。另外为T更好地完成构件组装,提出了组装模式(Composition Pattern)的概念,它可以被看作是一种用MSC描述的可复用的设计模式。它的描述方式与构件描述方式兼容,这是为了使构件的组装按照模式匹配的思想完成。这似乎限制了构件复用的任意性,但另一方面任意性带来了组装的不兼容性。因此牺牲部分任意性来换取组装兼容性是一种必要的手段。随着构件数目以及组装模式的增加,这种牺牲是可以忽略的。

  1基本MSC

  1 MSC优点

  MSC是一种描述语言,它主要用于描述系统构件之间、系统构件与环境之间的行为交互事件。MSC不仅提供了一种直观、透明的方式,还提供了两种描述方式:图形描述和文本描述。其中图形描述提供了清晰易懂的图形元素作为系统中实例交互以及事件发生的描述手段。文本方式以一种类似自然语言的方式进行描述,与多数架构描述语言(SDL)描述形式类似,采用层次化描述方式,使系统结构的描述更加清晰。文本描述符主要有三类:关键词、终结符和非终结符。MSC已被作为国际电话电报联合会(International Telecommunication Union)的一种推荐使用标准。

  基于MSC提供的这些特性使其可以用于需求描述、接口描述、仿真与检查、测试用例描述等多个方面。另外MSC也可以连接其它描述语言,如SQL等。MSC直观的图形表示方式以及丰富的语法表示形式使其具有对构件及构件组装(交互)描述的先天优势。具体表现在如下几个方面:

  (1)MSC是一种图语言。因此可以通过二维图描述构件内部实例之间的行为交互。MSC文本描述主要目的是为了完成自动化形式分析与实现工具之间的转换。在构件组装环境中可以利用文本描述提供构件间胶合代码自动生成工作。

  ( 2 ) MSC支持结构化设计。一个简单的MSC描述利用高层消息序列图(HMSC)可以被组合成一个更复杂的系统描述。依靠这种分解和复用机制可以很容易地实现对遗留系统的构件提取和构件组装的再工程。

  ( 3 ) MSC支持工程的全过程。形式化的描述和直观的表示方式是它支持包括从领域分析到测试的整个工程领域。因此MSC可以很好地描述软构件元素,并且适合于整个CBSD开发生命周期。

  ( 4 ) MSC可以被用来关联其它描述语言如SDL和TTCN等。这使其具有灵活的可扩展性和兼容性。另外MSC可以等价地转换为有限(非有限)自动机模型DFA(NDFA)。可以利用自动机模型的多种性质(如有限自动机匹配、有限自动机合并等)实现构件与构件模式匹配的方法。

  1.2 MSC实例

  一个MSC图由一些交互实例组成,实例之间通过方法调用或消息传递交互。实例头部主要由实例名(Instance Name )、实例类型( Instance)及分解(decomposition)组成。其具体语法为:

  

  在MSC的实例描述中用白色矩形表示。< instance axis symbol>有两种表示形式单线和双线形式,两种表示没有区别,可选择其一。< instance end symbol>用黑色矩形表示。三种图形连接在一起表示一个实例的生存期。加粗部分为MSC保留关键词。A is followed by B表示B跟随A发生的关系。A is attached to B表示A依附于B,这种关系是可逆的,也就是说B也同时依附于A。大括号后加关键词set表示一个集合,集合中使用的*表示可以出现0次或多次,类似于通配符概念。

  1. 3 MSC消息

  消息是MSC中另一个重要概念。在MSC中消息表示输人和输出之间的关系。输出可以来自于环境(通过门)、实例或者被found表示输出丢失或不能确定输人点)。输人来自于环境(通过门)、实例或者被lost(表示输人丢失或者不能确定输出点)。实例间消息的交换被分成两个部分:消息的输出和消息的输人。MSC文本描述使用关键词before和after表示消息事件发生的顺序。MSC图形描述中,事件使用带方向箭头的直线表示。

  

  在MSC中实际上和实际上是依附在实例线上的点(描述中的)。< message symbol>表示为一个带方向的直线。is associated with为MSC保留关键词,它扩展了一个文本字符串加人中。

  1.4 MSC事件次序

  一个MSC中假设了一个全局时钟,规定两个规则:①不同实例MSC中假设输出消息(产生消息)必须先于输人消息(接收消息)产生;②沿着每个实例线事件从上到下依次发生。另外还规定消息图中事件表示具有偏序关系(传递性、反对称性、不可逆性)。消息次序示例如图1所示。

  MSC中将一个消息的输人和输出分开表示,为了加以区分将输人消息表示成in(mi)形式,输出消息表示成out ( mi )形式。图1中根据规则①得到顺序为out( m2 )