zoukankan      html  css  js  c++  java
  • MetaModelEngine:元模型引擎开发思路

    本文已挪至   http://www.zhoujingen.cn/blog/2683.html

      在DSM:使用MetaEdit+编写Family Tree Modeling Language中介绍了MetaEdit+的一个家族树模型语言应用示例,通过示例的学习掌握了基本的概念,本篇将介绍一下OpenExpressApp的元模型引擎MetaModelEngine的应用思路。

    为何借鉴MetaEdit+思想

      我在软件产品线工程方法 - 四个主要方法原则提到产品线带来的几个好处:减少成本,快速上市,减少风险和提高质量,这些都是我们在做软件产品时都期望达到的。在我以前blog中也有一个软件工厂的图,该图表明了模型驱动开发是支持软件产品线工程的一种方法,所以我会比较关注模型驱动开发。

    信息系统开发平台OpenExpressApp - 总体架构的由来中我讲到过MetaEdit+是全球DSM领域内著名的产品,它能够带来产品线中期望的几个好处:

    • 缩短上市时间,开发生产力能够提高5-10倍
    • 开发人员可以集中设计和关注业务功能,而不必用代码去写所有方面的内容
    • 由于使用的是经过验证的工具,产品质量显著提高
    • 可以完全控制模型和代码生成,而不像MDA方法模型和代码生成固定,不便于特定领域开发

    通过以上说明可以看出,我借鉴MetaEdit+的思路是想采用一种模型驱动开发方法来支持产品线工程。  

    元模型引擎对OpenExpressApp平台的支持

      知道MetaEdit+已经好多年了,之前也研究过这个工具,并查看过它的一些资料,也是在OpenExpressApp计划之中的重要组成部分。

    1. 支持OpenStudio的图形化建模,让业务人员能看、能做,符合OpenExpressApp让业务人员编写软件的价值主张,通过业务人员更早更多的参与,可以更快的构建应用
    2. 支持OpenTool的工具:快速原型开发工具、图形化自动化测试工具

    Visual Studio的DSL架构

     

    • Microsoft.VisualStudio.Modeling:域模型框架时整个系统的核心,负责管理模型的元素和连接,也就是域类和域关系的实例。
    • Modeling.Disgrams:设计界面框架建立在域模型框架之上,它负责处理图形符号的显示,包括处理图表、图形、连接器和装饰等元素在设计界面上的显示
    • Modeling.Validation:验证框架负责执行关于模型元素和连接的验证方法,如果验证失败,它还要负责创建错误对象。它与Shell框架交互,把错误信息显示到Visual Studio的错误窗口
    • Modeling.TextTemplation:模板引擎负责执行文本模板来生成代码或其他的工件。模板引擎室一个独立的组件,用于执行来自非DSL的模板输入
    • Modeling.Shell:建模用的Shell负责管理将涉及器集成到Visual Studio中,例如处理工具窗口和菜单名利,以及文件的打开和关闭等

    对MetaEdit+的技术借鉴

    • 组件架构图
      MetaModel实现步骤:图形编辑器(Diagram Editor)-> 矩阵和列表编辑器(Matrix和Table Editor)-> 代码生成器

    • 模型架构图:GOPRR为元元模型层、领域概念为元模型层、产品规格为模型层、实例为系统应用层

    • 元模型概念GOPPRR:图、对象、属性、端口、关系、角色

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

    • 绑定Binding

    • 对象引用图 Decomposition

    实现DSM步骤

    • 定义领域规则
      1. 定义规则
      2. 规则例子:【开始】状态不能直接连接到【结束】状态
          
    • 画标记
    • 实现生成器

                  

    主要技术及初步计划

    • 元模型引擎
    • 图形编辑器
    • 代码生成器

    今年下半年主要实现元模型引擎以及图形编辑器,基于引擎初步支持企业架构建模工具。代码生成器放在明年开始。

     

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

  • 相关阅读:
    可以将class文件反编译成java文件
    软件开发者面试百问
    马云说
    反编译工具jad的使用(将*.class文件变成*.java文件,附带jad.zip包)[转]
    Rose与PowerDesigner:两款建模工具对比分析比较[转]
    Javascript中最常用的55个经典技巧
    如何将.class文件转换成.java文件——JAVA反编译工具总结[转]
    SQL Server补丁版本的检查
    SQL Server 2000 从哪里看是哪个版本
    什么是模式?什么是框架?软件为什么要分层?
  • 原文地址:https://www.cnblogs.com/zhoujg/p/1786155.html
Copyright © 2011-2022 走看看