论文部分内容阅读
模型驱动软件开发(Model-Driven Software Development, MDSD)已经成为软件工程领域的研究热点和发现趋势,其核心思想为将分析和设计模型与代码等同对待。将模型和代码更好的集成起来,可以通过抽象的模型大大增加有效改进的机会,而不仅仅是直接修改代码。MDSD的开发过程为首先抽象出与实现技术无关、完整描述业务功能的平台无关模型(Platform Independent Model, PIM),然后通过特定的转换规则及辅助工具,将其转换成具体实现技术相关的平台相关模型(Platform Specific Model, PSM),最后通过一系列转换规则及辅助工具自动生成代码。国内外多年的理论和应用实践以及市场表明,软件与模型驱动开发思想相结合是成功的。使用该方法可以加速软件的开发进程,解决传统企业管理信息系统开发中存在的需求不断变更的问题,缩小沟通风险,大幅度减轻工作量,提高软件代码质量,同时让系统设计人员更多的专注业务需求、业务建模。MDA中需要解决的两个关键问题是如何有效地描述软件模型以及如何在给出的模型之间进行有效的转换。本文以B/S模式企业管理信息系统的开发为应用背景,围绕现有模型和模型转换方法存在的不足展开研究。首先对UML进行简化和扩展,提出了一种平台无关的业务模型PIM-BM;针对目前的目标平台下的软件特征,提出了一种平台相关的业务构件模型PSM-BC,并提出了一种通用的模型的版本控制方法。然后提出了一种支持模型同步的混合型模型转换方法将PIM-BM转化为PSM-BC,最终生成为可用系统。最后研究并实现了模型驱动的快速开发平台MDARapid,验证了以上方法和技术的有效性。本文的主要研究内容和创新成果主要包括:(1)为了改善UML的可用性,提高UML的精确语义,本文针对企业管理信息系统特点,提出了一种基于扩展UML的业务模型PIM-BM,表示系统以业务实体为中心的系统复杂业务。与UML相比,该模型的元模型具有丰富的语义。该模型元模型是在UML元模型的基础上扩展而来的,同时又对UML进行精简,去掉了UML元模型中与管理信息系统建模不相关的内容,从而使得建模人员能够更好的关注业务需求,同时也易于对模型进行扩展。除此之外,PIM-BM给出了模型元素的关联,定义连接类型,这是在模型转换的同时不丢失模型元素之间关系的前提。PIM-BM主要由业务实体及其关联和业务行为等模型元素组成。(2)本文提取了目标平台下企业管理信息系统的软件特征,并加以抽象分析,综合当前广泛使用的多种应用框架,提出了一种平台相关的业务构件模型PSM-BC。它包含目标平台的特性信息,在模型的表示、扩展和实现时运行了许多目标平台的特性,支持向多种不同目标框架下的模型转换。PSM-BC定义了业务处理对象、业务对象以及业务展现对象,它提供了对视点的显示支持,分层次去描述模型的功能特性。为了降低模型的复杂度,本文将PSM-BC的元模型进行分层设计。按照层次分为:业务处理层元模型、业务对象层元模型、业务展现层元模型。这些模型可以捕捉到应用系统全面的业务特性。PSM-BC中的不同层次中的模型相对独立,松散耦合,更加容易实现标准化工作。每层模型对应着最终系统实现的不同细粒度构件,具有复用性。(3)本文提出了一种模型演化的通用的模型管理方法,用于实现模型的版本控制,提出了基于内容仓库的模型存储方法,把模型元素和模型关联作为内容仓库的节点存储,使用内容仓库中的节点版本控制方法对模型进行管理。该方法将为其他学者研究软件模型的版本控制提供一种新的思路,也是内容仓库的一种新的应用方式。(4)基于PIM-BM和PSM-BC,本文提出了一种混合型的模型转换方法。这种转换首先使用描述性的QVT Relations语言描述PIM-BM到PSM-BC的关系型转换规则。这种规则描述相对简洁,描述力强,可以支持复杂的模型元素实例的模式匹配,整个模型转换过程可以简化为模型转换规则的顺序执行。其次基于文本模板演化,将PSM-BC转化为目标代码。为了提高模板复用性,针对特定目标平台,制定一套插件化的目标语言模板文件,作为PSM-BC到目标语言的模型转换规则。混合型的模型转换方法,对模型驱动开发的理论研究有一定的推动和促进作用,丰富了模型驱动开发形式化方法研究。另一方面,PIM-BM和PSM-BC的混用会引起模型的不一致。为了解决以上问题,本文提出一种基于模型版本的模型同步方法,仅仅因模型变动而受影响的模型参与再次模型转换。该方法是根据源模型增量不断去修正目标模型思想的一种应用,它大大减少了参与冉次模型转换的模型数量,提高了模型同步的效率。(5)基于以上工作,本论文面向企业管理信息系统不同需求,设计并实现了一个模型驱动的WEB应用快速开发平台MDARapid,验证了以上方法和技术的有效性。该平台适用于各行业、不同规模的复杂的以数据为基础的管理信息系统,支持业务数据维护(增删改查)和其它复杂业务逻辑,对于大型应用尤其能体现其快速、规范、高效等特性。本论文中所有的实例均来自山东省自然科学基金项目信息管理系统(http://www.sdnsf.gov.cn/sdnsfms)。该系统使用本文提出的模型及其模型转换方法进行开发,由MDARapid平台自动生成,用于完成山东省自然科学基金项目立项任务书填写、进展报告评审、结题报告评审、项目信息统计等系统业务。系统的不间断稳定运行一定程度上从实际应用效果角度证明了本文所提出的方法的可行性。