特定域建模
特定域建模(Domain-specific modeling,DSM),是一种设计和开发系统(如电脑软件)的软件工程方法学。它系统使用图形化特定域语言(DSL),表现系统的各个方面。DSM的语言倾向于支持比通用建模语言更高级别的抽象,因此需要较少的effort和更少的底层细节来描述特定系统。
概况
特定域建模(DSM)往往还包括代码生成的想法:直接从DSM模型自动创建可执行源代码。摆脱手工创建和维护源代码,意味着DSM可以显著提高开发人员的工作效率。与手工编码相比,自动生成的代码比较可靠、生成的程序可减少缺陷从而提高质量。
DSM不同于1980年代的CASE工具生成代码尝试或90年代的UML工具。两者的代码生成器和建模语言都是由工具供应商建立。工具供应商建立DSM语言和生成器是有可能的,并且在一个组织内出现DSM是比较正常的情况。一个或几个专家开发者创造了建模语言和生成器,其他开发者使用它们。
由某一组织来建立建模语言和生成器,可以使它们严格符合其确切的域和需要。由于可以使用熟悉的术语和概念,也减少了开发者学习建模语言所需的时间。最后,由于只有一个组织的需求需要考虑,因此建模语言响应领域的变化是比较容易的。
DSM语言通常可以涵盖特定领域的一系列抽象。例如,手机DSM语言可以让用户指定用户界面的高级抽象,以及存储数据的低级抽象,如电话号码或设置。同样,金融服务DSM语言可以允许用户指定客户的高级抽象,以及实现股票和债券交易算法的低级抽象。
特定域建模专题
定义DSM语言
要定义一种语言,就需要一种描述定义的语言。模型语言通常被称为元模型,因此定义建模语言的语言就是一个元元模型。元模型可以分为两类:一类是衍生或自定义现有语言的,另一类是明确做为元元模型发展的。
衍生元模型包括实体关系图表,正式语言,EBNF,本体语言,XML概要和MOF。这些语言的优点是对原语言的熟悉和标准化。
特定域建模主张为特定任务建立一个新的语言,所以毫不奇怪出现新的语言-—元元模型。最广泛使用的这种语言就是OPRR,GOPRR,以及GOPPRR,致力于以最小的努力支持建模语言。
支持DSM语言的工具
许多通用建模语言已经有CASE工具形式的工具支持。DSM语言由于市场规模太小而往往缺少一个从零开始构建CASE工具的支持。相反,大多数支持DSM语言的工具是基于现有的DSM框架或通过DSM环境建立。
DSM环境可以看作一种元建模工具,即用于定义建模工具或个案工具的建模工具。由此产生的工具,或在DSM环境工作,或作为一个单独的独立程序。通常情况下,与传统的CASE工具相比,DSM环境支持一个额外的抽象层。
采用DSM环境可以大大降低获取支持DSM语言工具的成本,因为设计良好的DSM环境将自动生成从零开始费用高昂的部分程序,如特定域的编辑器,浏览器和构件。域专家只需要指定特定域的构造和规则,DSM环境将提供一个专为目标域的建模工具,。
大多数现有的DSM都出现在DSM环境中,无论是商业的,如MetaEdit+,开源的,如GEMS,或学术的,如GME。随着DSM日益普及,DSM框架可能被加入现有的集成开发环境,如包含EMF和GMF的Eclipse建模项目(EMP),或者微软的软件工厂DSL工具。
DSM和UML
统一建模语言(UML)是一种软件密集型系统的通用建模语言,目的是支持大多数面向对象编程。因此,与DSM相比,UML可以以各种目的用于广泛的领域。UML提供的原始(primitives)是面向对象编程的这些,而特定域语言提供的原始,其语义被这一领域的所有从业人员所熟悉。例如,在汽车工程领域,软件模型表现防锁制动系统,或方向盘等属性。
UML包括profile机制,可以约束,和在特定领域、平台被定制。UML profiles使用构造型,标记值和约束,以限制或扩大UML在特定领域的范围。一个特定领域定制UML的最著名例子是SysML—系统工程的域特定语言。