模型驱动介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模型驱动工程
与其他软件开发方法相比,模型驱动开发方法的特点主要表现在,该方法更加关注为不同的领域知识构造其抽象描述,即领域模型(domain models),基于这些代表领域概念的模型刻画软件系统,并通过自动(半自动)的层层转换完成从设计向实现的过渡,从而最终完成整个系统的开发。
模型驱动工程的优势在于,使用更接近于人的理解和认识的模型,尤其是可视化模型,有利于设计人员将注意力集中在和业务逻辑相关的信息上,而不用过早地考虑与平台相关的实现细节。尤其是在面对不同应用领域时,模型驱动方法强调使用方便灵活的领域相关建模语言(domain-specific modeling language,DSML)构造系统的模型,基于领域知识实现领域专家、设计人员、系统工程师以及架构师等不同人员之间的良好沟通。[1-2]
尽管模型驱动开发方法的研究是在2000年左右开始普遍受到关注的,但其中蕴含的思想是软件开发学一直都在研究的。
在软件开发的长期摸索过程中,人们逐渐认识到“提高解决问题的抽象层次”是有效利用抽象手段解决软件开发问题的一个非常具体而实用的途径。Stephen J. Mellor在21世纪初曾指出[1],过去的50多年里,人们利用“提高解决问题的抽象层次”处理软件开发的问题已经取得了两个较为显著的进展:1)开发出了具有较高抽象层次的程序设计语言;2)能够在更高抽象层次上实现软件复用。[1]
有了这样的技术积累,人们开始尝试在更高的抽象层次上开发软件。而正在此时,对象管理组(Object Management Group, OMG)提出了以模型为中心的软件开发框架性标准—模型驱动体系结构[2](Model Driven Architecture, MDA),受到了来自学术界和工业界的普遍关注。尽管MDA提出的直接动因是为了解决异构中间件(middleware)平台的互操作障碍问题,但是由它所倡导的以模型为中心进行软件开发的思想很快得到了广泛支持,迅速成为研究热点。MDA整合了OMG在建模语言、模型存储以及模型交换等方面的一系列标准,形成了一套基于模型技术的软件系统开发方法和标准体系。
随着MDA研究热潮的迅速兴起,模型驱动的软件开发这个词语逐渐被越来越多的学者使用。此间,和模型相关的不同字眼也不断出现在不同的学术机构和社区中,如model-driven、model-based、model-related、model-engineering等等。2005年,模型驱动软件开发领域最重要的年会UML series(International Conference on theUnified Modeling Language)正式更名为MoDELS(International Conference on Model DrivenEngineering Languages and Systems),这开始引起了人们对模型驱动软件开发领域自身术语使用上的关注。目前,模型驱动软
件开发领域较为普遍使用的术语主要是模型驱动工程(model-driven engineering, MDE)。[1-2]