论文部分内容阅读
在软件工程中,系统建模是具有决定意义的活动之一。建模是为了更好的理解和构造系统,并可以提供简化和复用的机会,通常软件系统的分析与设计都是通过建模完成的。在建立软件系统模型的过程中离不开建模语言,随着软件系统的规模和复杂性的日益增大,建模语言已经成为影响软件建模的关键因素。
统一建模语言(UnifiedModelingLanguage,UML)于1997年11月被对象管理组织(ObjectManagementGroup,OMG)采纳,作为基于面向对象技术的标准建模语言。现在,UML已经被广泛接受和使用,许多公司将UML作为开发过程和产品的一个标准,包括业务建模、需求管理、分析与设计、编码及测试。然而,由于UML的语义是用自然语言(英语)描述的,因此存在不精确性。近年来,许多研究机构把提高UML语言的精确性和开发UML的支撑工具作为当前阶段的研究重点,并且,UML模型转换在软件建模和设计中用的越来越多,也越来越重要。
从上个世纪90年代开始,随着信息技术的不断发展,出现了许多功能强大的中间件,由于难以形成统一的标准,中间件的不断发展将使得新旧系统之间的集成或系统的演化面临不同的实现技术,从而使得如何在保障已有投资的条件下驱动整个系统的技术升级成为迫切需要解决的问题。模型驱动体系结构(ModelDrivenArchitecture,MDA)是OMG新近提出的解决方案。MDA将系统模型分为两类:PIM(PlatformIndependentModel)和PSM(PlatformSpecificModel),前者提供系统结构和功能的规约,抽象技术细节,后者是建立在目标平台上的模型。MDA的一个重要特点是基于映射的模型转换,映射是使用一些规则和技术对一个模型进行修改从而得到另一个模型。而MDA中的模型是用UML描述的,因此,UML的模型转换在MDA中扮演了重要的角色。
本文主要研究了UML模型的转换和验证,以及MDA框架下基于J2EE平台的UML模型转换,主要的工作包括以下方面:
(1)提出了从一个UML顺序图转换成多个UML状态图的算法,并进一步讨论了从多个顺序图转换到状态图以及简化状态图的方法。UML顺序图描述的是用户的需求,也是系统功能的一个场景;UML状态图展示的是系统中某个对象在其生命周期内由于事件的触发而发生状态改变的过程。研究顺序图到状态图的转换可以为软件开发过程中需求到设计的过渡提供有力的支持。处于一个系统中的多个状态图不是孤立的,他们各自的状态转换是相互约束的,文中讨论了组合多个状态图的方法,以及如何生成在同步约束下多个状态图的转换关系,并最终得到系统的状态图。
(2)在MDA的框架下提出了一种PIM到J2EE平台的PSM转换的方法:首先将一个用PIM配置图和类图描述的系统转换成J2EE平台下的PSM配置图、类图;然后根据精化规则对PSM模型进一步精化,生成不同的EJB以及构件图,为最后代码的自动生成打下基础。
(3)探讨了对UML活动图模型进行验证的方法和技术。对UML活动图进行了扩充,添加了时间约束描述机制(称为UML实时活动图),使其能对实时系统建模,并且基于Petri网给出活动图的形式语义。在此基础上,我们用整型时间验证技术分析实时活动图的时间性质。
(4)基于上述研究工作,设计和开发了一个UML模型转换和验证工具。总体的设计思想是:工具能读取并显示用ROSE产生的mdl文件,在此基础上,为活动图的状态添加时间约束,为顺序图指定状态向量及消息的前后置约束条件。这些语义信息将以文件的形式存储。对于活动图,分析其时间和空间特性;对于顺序图,支撑其到状态图的转换。