论文部分内容阅读
模型是系统在某个角度或层次的抽象,模型比系统更容易获取、理解、分析和验证。在软件开发活动中引入模型是控制软件复杂性,提高软件产品可信度的重要手段。随着软件复杂程度及可信需求的不断增大,软件开发中的模型技术越来越受到重视。
建模语言作为表达建模思想的工具,是面向对象建模中的一个关键因素。OMG(ObiectManagementGroup)整合当时最具代表性的多种面向对象建模语言颁布了建模语言的标准一—统一建模语言UML(UnifiedModelingLanguage),UML支持运用面向对象概念来构造系统模型,建立了从概念模型直至可执行体之间明显的对应关系。颁布建模语言标准UML后,OMG着眼于解决系统中的异构问题并继续加强在整个软件开发过程中模型的作用,推出了软件开发过程中的模型组织管理框架--模型驱动的体系结构(MDA,ModelDriveArchitecture)。MDA强调在软件开发过程中分离与实现平台无关的功能模型和与实现平台相关的实现模型,并通过模型转换实现这两类模型之间的过渡。本文在MDA背景下展开对UML模型的转换方法、性质验证、层次与自省和组织方法的研究,探讨软件开发中模型使用的方法和潜力,主要工作包括以下四个方面:
1.模型转换是实现MDA构想的关键环节。本文探讨了MDA框架下在元模型层定义模型转换的方法,建立了初步的模型转换规则描述语言,给出模型转换应遵循的部分原则,以CORBA平台为例说明在元模型层用既定语言定义模型转换规则、实现从功能模型到实现模型的模型转换过程,并设计了相应的支撑工具原型。
2.模型分析和验证是建模活动中的重要部分,状态机是UML中对象行为建模的主要机制,已有的状态机语义定义忽略了对状态机中不确定性的处理。本文针对UML状态机,面向模型检验基于Kripke结构为其定义操作语义,包括状态层次的表示、并发状态的表示、当前状态的体现、层间转换的表示、冲突转换的判断、冲突优先级的定义、有优先关系的冲突的排除、无优先关系的冲突的处理、所有可能的最大可触发转换集的构造、层间转换的执行、历史转换的执行。与已有的状态机语义定义不同,本文工作考虑到了状态机中包含的不确定因素,从而使得系统所有可能的演化轨迹得以全面描述。
3.对建模语言本身的研究引出了元模型概念,元模型是建模语言的模型,通常用来静态说明语言的概念元素及其之间的关系,定义模型元素的基本性质,对模型具有控制能力。语言元素可以具有动态行为,通过扩展元模型对动态行为的描述可获得修改语言的能力,进一步获得修改系统模型的能力。利用元模型改变模型的能力可以实现系统的自省。在元模型进行仅与元素有关而与具体应用无关的修改相当于对语言默认行为的修改。本文从模型层次和语言角度探讨实现自省思想的新思路,在元模型中显式地引入操作以控制模型元素的结构和行为,给出一个体现自省思想的系统运行框架结构。
4.系统往往是多个方面内容的综合体,这是形成系统复杂性的重要原因。AspectOrientedProgramming(AOP)在代码层次上提供了从多个角度编制程序的机制,将原先分散混杂在程序中的涉及特定需求的代码集中在一个侧面中,分解了程序的复杂性。模型可从不同角度描述系统,AOP与建模思想是契合的,将AOP思想与MDA框架相结合可以进一步完善模型驱动的软件开发方法。本文对在MDA框架下基于AOP思想的模型构建、组织和演化进行了研究,针对基于AOP思想的侧面模型的显式独立表示问题,对UML元模型进行了扩展,提出用一种类似模式表示的方法表示侧面模型与核心模型的组合关系,并设计了相应的支撑工具原型。