基于模型设计方法是一种设计复杂系统的可视化数学方法。基于模型的软件开发方法是一种以模型为中心的软件设计方法,用模型来形式化表示用户所构建系统的功能、行为和结构,形式化的意思是描述模型的语言具有定义良好的语法和语义。基于模型设计思想是通过模型抽象和描述系统的关键问题,用模型表示出系统解决方案,并通过形式化的工具对系统模型进行验证以保证系统设计正确性。基于模型设计思想从根本上解决了软件设计的正确性保证问题。
什么是模型?模型可以是具体的物理实体,也可以是抽象的描述(如图像描述、数学表达式)。模型特征是对对应的物理系统或者非物理系统的一种简化表示,是人们的一种有意识的创造物。有了模型,系统开发人员就可以依据模型来构建系统,而忽略掉无关的细节。
系统建模和模型仿真验证是基于模型设计方法的两个重点。采用特定的建模语言和模型设计工具来抽象出被描述的目标系统,从而建立准确的模型,这样可以消除其他系统描述方式(比如文本描述)的模糊性和二义性。仿真验证,毫无疑问需要基于建立好的、准确的目标模型,而仿真验证带来的好处是通过相应的仿真验证工具对模型进行仿真验证之后可以保证模型的正确性。
模型驱动架构(Model Driven Architecture,MDA)是于2002年被提出的,包含了模型的精确形式化表示、模型存储以及模型交换等方面的一系列规约,如MOF(Meta Object Facility)、OCL(Object Constraint Language)、XMI(XML Metadata Interchange)等,旨在提高程序设计的抽象层次,提高软件开发效率,增强软件的可移植性、协同工作能力和可维护性。要求设计时进行严格的模型定义,力图最终能全部或部分自动生成工程代码。
MDA的软件开发过程是由软件系统建模驱动的。模型根据抽象层次不同可分为平台无关模型PIM和平台相关模型PSM。平台无关模型描述系统的行为需求不涉及平台实现细节,平台无关模型的设计者专注于表示系统的业务逻辑。平台相关模型不仅包含系统功能描述而且包含有实现平台的设计思想。平台无关模型可以被转换为一个或多个平台相关模型,最终会转换成具体平台的实现代码。MDA软件开发周期如图7-7所示。
图7-7 MDA软件开发周期
MDA引入了模型驱动开发(Model-Driven Development,MDD)模型集成运算(Model- Integrated Computing,MIC)开发模式。模型驱动开发是当今嵌入式系统开发方法的热点,模型集成运算开发方法是面向领域的模型驱动开发方法,在面向特定领域的建模语言方面扩展了模型驱动开发方法,能通过元模型针对特定领域进行定制和裁剪,并能基于领域模型的自动生成代码。(www.xing528.com)
代码生成的概念最初见于编译器设计和开发中,编译器先将输入的源程序翻译成某种中间表示,然后产生等价的某种目标程序语言表示的目标程序。这种将中间表示生成目标程序的过程也是代码生成,但是在基于模型的软件设计方法中的代码生成是指利用计算机程序(代码生成器)将模型自动的生成可用的代码。代码生成的过程大致包括模型建立和生成代码。建立一个好的能准确描述应用系统并充分考虑系统应用环境的模型不能解决所有问题,因为有必要将这个模型转化成有效的可运行的模型代码。
基于模型的软件开发方法和传统的软件开发方法有着显著的区别:传统的软件开发方法,如图7-8所示,其核心是代码,代码的开发、测试和维护占用项目开发的绝大多数时间和精力。而基于模型的软件开发方法,如图7-9所示,其核心是模型,项目开发的主要工作是模型的设计,测试和维护也是围绕着模型来开展的,而代码可以方便地依据模型而自动生成。代码生成可以很好地提升软件开发效率、缩短软件开发周期。
图7-8 传统的以代码为中心的软件开发方法
图7-9 以模型为中心的软件开发方法
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。