DSM:使用MetaEdit+编写Family Tree Modeling Language

信息系统开发平台OpenExpressApp - 总体架构的由来中说到MetaEdit+是全球DSM领域内著名的产品,OpenExpressApp将借鉴它的思想来形成自己的模型引擎,本篇介绍一下如何使用MetaEdit+来建立一个家族模型语言,这个也是MetaEdit+提供的一个示例,通过家族树语言的生产来加深对MetaEdit+的了解。如果你也想开发自己的建模工具,那么推荐你也去研究一下。

MetaEdit+下载

  去官方网站MetaCase下载Free 31-day evaluation version of full MetaEdit+ Workbench,它自带一些示例模型,例如UML示例的一个图的界面如下:

需求

对家族树进行建模,图形建模后如下:

GOPPRR 元模型语言

再开始之前介绍一下GOPPRR原模型语言。对于家族树图形语言表示如下,在图中标识了多个元类型,每个类型有自己的功能和语义:

Eachmetatype has its function and semantics as follows:
  • Graph 图:一个独立模型,通常使用图来表示
  • Objects 对象:图的主要元素,例如例子中的Person
  • Property 属性:图、对象、端口、角色和关系都可以拥有一些属性描述
  • Port 端口:定义角色如何连接对象的可能语义
  • Relationship 关系:让对象连接在一起
  • Role 角色:连接关系与对象之间

家族树例子使用这些元类型表示如下:Person为对象,Family为关系,Parent、Child为角色,First name、Family Name为属性,没有定义端口,整个显示为一张

实现家族树模型语言

  1. 生成对象Person,对象属性如下:
  2. 生成标记
    在上图Object Tool中点击【Symbol Editor】按钮,弹出标记编辑器界面,生成标记如下:
  3. 生成关系Family
  4. 生成角色Parent、Child
  5. 生成图Family Tree
      
      
  6. 经过上面5步,Family Tree模型语言就轻易地建立起来了,这一步主要是应用模型语言生成家族树

模型演进

上面只是实现了一个简单的家族树模型,一般模型会随着要求不断演进,对于上面示例我们现在做一下演进:Person区分男性和女性

 

  1. 修改Person属性
  2. 增加从Person继承下来两个对象:Female和Male对象
  3. 增加男性和女性标记
      
  4. 修改图(Graph)定义
      
  5. 增加端口,限制连接点
      
  6. 再次修改Graph定义
  7. 应用模型生成一个家族图

 


欢迎转载,转载请注明:转载自周金根 [ http://zhoujg.cnblogs.com/ ]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值