博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模型驱动复习整理
阅读量:5100 次
发布时间:2019-06-13

本文共 3340 字,大约阅读时间需要 11 分钟。

1.模型驱动相关名词

  MDPM (Model driving programming methodology) 模型驱动编程方法

  MDA(Model deiven Architecture)模型驱动体系结构  

  OMG (Object  Management Group) 对象管理组织

  UML (Unified Modeling Language) 统一建模语言

  PIM (Platform Independent Model) 平台独立模型

  ACSD (Abstract conceptual structure diagram)抽象概念结构图

  PSM (Platform Specific Model)平台相关模型

  ALSD (Abstract logical structure diagram)抽象逻辑结构图

  AISD (Abstract implementation structure diagram)抽象实现结构图

---------------------------------------------------------------------------------

  MDSD 模型驱动软件开发

  MDSE 模型驱动系统

  MDD 模型驱动开发

  MDE 模型驱动工程

  AST 抽象语法树

  ASL 动作规范

  PDL 程序设计语言

2.some concept   

  1)MDA(Model deiven Architecture)模型驱动体系结构

    MDA是一种新的编程规范,是开发应用程序的方法,核心思想是抽象出PIM与平台无关模  型,然后针对不同实现技术制定多个映射即PSM平台相关模型,再将PSM转换成为代码。   

  2)Model

    MDA对Model下的定义是广泛的:源代码是一个模型,基于UML统一建模语言也是一个模型

  3)PIM与PSM

    pim是从技术细节中抽象抽象结构和功能的形式化规范,通过UML来表示,它与UML都是与平台无关的。而psm是描述pim在特定平台上如何实现。

    pim中包含ACSD抽象概念结构图

    psm中包含ALSD抽象逻辑结构图与AISD抽象实现结构图

  4)MDA模型驱动体系结构 的 架构(只介绍部分)

 

      4.1UML (Unified Modeling Language) 统一建模语言

        该语言包含内容很多有许多种图,许多种模型具体可见 : ,

        (有详细各种图的事例)

      4.2核心目标平台:XML,JAVA,.net等等

      4.3普及服务:如图略

      4.4垂直领域:如图略

  

  5)PIM平台独立模型 到 PSM平台相关模型 的映射

    它们是MDA定义的两种主要模型类型,通过映射规则可以互相转换。

    所有基于MDA开发的object都是从用 UML统一建模语言 创建一个PIM开始的,PIM可以表达应用系统的 设计细节、商业逻辑、数据需求。因为不依赖于平台所以少了许多顾虑,很是方便。

    PIM设计完成后就要选择一个平台,然后转换成对应平台的PSM。

    OMG定义MDA的文档中列出了四种方法将PIM转换为PSM

      •手工转换

      •用已建立模式来进行转换

      通过一些已建立的模式定义一个算法,然后用这个算法处理PIM得到PSM的主要框架,最后在手工的添加内容。

      使用应用上述算法的工具来自动生成PSM

 

  6)基本概念的关系模型   

  

 

    6.1动作action

      动作是程序行为的基本单位。

      •动作就是将一组输入转化为一组输出并作一些事情。输入与输出都可能为空

      动作有多种类型,每种类型都有对应的规则 。     

    6.2数据流data flow

      数据流链可以连接许多动作,比如:一个动作的output 是另一个动作的input。

      它可以表示一组动作的有序进行

    6.3控制流control flow

      •控制流表示两个动作的顺序依赖关系。比如:后继动作只有在前驱动作完成后才能执行。

      当两个动作没有数据流的次序约束时使用。

      

    6.4过程procedure

      过程是一组动作的集合,比如c++中的类和传统c中的函数。

      过程可有多个参数和结构。

      过程蓝图就是将过程可视化。

  7)抽象概念结构图(ACSD)

 

       •基本集合Tcn = {+,*,o,?,!,:,>,e,&,#}

       自然语言集合Snn={s|s∈自然语言语句}

         

      ACSD是树形结构的。

      + 顺序动作后有一个描述,然后依次执行它的子节点

      o 单项选择动作后有一个行为描述,当条件满足时顺序执行它的子节点,概念层只需      概述行为,而不需给出具体条件。

      ?多项选择后也有一个行为描述 ,会执行它的若干子节点中的一个

      * 循环动作后也有一个行为描述,无需给出循环条件,它的子节点满足条件时将重复      执行。

      e 异常处理动作

      •:基本动作,定义赋值。

      •!模块动作

      >跳转动作 用于表示无条件和有条件跳转。

      #未定义动作

     

     •实例

       

  8)抽象逻辑结构图(ALSD) (只给出java平台相关)

    JAVA抽象节点类型

    

      

 

  

    实例

   

  9)抽象实现结构图(AISD)

    •AISD实例    

    

    •有源代码的所有细节

  10)为什么分层描述?

    10.1概念层

      •目标

        描述求解问题的思想和概要解决方案

      •要求

        抽象,可视,可理解,有结构,避免细节,独立于现实

      •设置的好处

        将解题思想与程序代码隔开,可以抛开许多实现问题去思考,能很好的表达解题思      路,便于截图思路的重用。可跨平台移植。还易于他人理解。

      

    10.2逻辑层

      •目标

        详细描述求解算法的控制结构,达到彻底分解

      •要求

        可理解,逻辑构造的利于实现,容易变为实现层,避免数据流表示细节,控制流要       与实现相关。

       •设置的好处

        利于让不同人发挥长处(xuan),利于管理(xue)

    10.3实现层

      •目标

        过程实现的精确描述

      •要求

        精确,严格,可视化,控制流数据流都与实现相关,能直接生成代码。

      •设置好处

        过程实现表示的可视化,数据流表示细节的局部化,更适合人的阅读与使用。

    10.3三层的工作性质

      概念层属于设计与分析。

      逻辑层既属于设计,也属于构造。  

      实现层属于构造工作

    10.4程序独立性原理

      一是指,解决问题的思路与目标平台的 控制流 数据流 的实现细节 相互独立。

      二是指,目标平台语言的逻辑控制结构 与 它的数据流实现表示细节相互独立。

  11)过程蓝图表示法总结

    

    11.1过程蓝图的目的

      把程序的静态结构进行可视化描述。制造独立性,以便更好的理解正在构造的程序,提    供简化和重用的机会

     11.2比较

       

3.正向工程实例

4.逆向工程实例

 

转载于:https://www.cnblogs.com/zhang3000/p/6842476.html

你可能感兴趣的文章
Java 多态 虚方法
查看>>
jquery.validate插件在booststarp中的运用
查看>>
java常用的包
查看>>
PHP批量覆盖文件并执行cmd命令脚本
查看>>
Unity之fragment shader中如何获得视口空间中的坐标
查看>>
支持向量机——内核
查看>>
MFC注册热键
查看>>
万能的SQLHelper帮助类
查看>>
uboot分析:uboot的启动过程分析
查看>>
tmux的简单快捷键
查看>>
springboot笔记04——读取配置文件+使用slf4j日志
查看>>
[Swift]LeetCode653. 两数之和 IV - 输入 BST | Two Sum IV - Input is a BST
查看>>
[Swift]LeetCode922.按奇偶排序数组 II | Sort Array By Parity II
查看>>
微信小程序的wxml文件和wxss文件在webstrom的支持
查看>>
Html5 离线页面缓存
查看>>
[php]在PHP中读取和写入WORD文档的代码
查看>>
WCF傻瓜模式写程序
查看>>
《绿色·精简·性感·迷你版》易语言,小到不可想象
查看>>
Java Web学习总结(13)Listener监听器
查看>>
开始Flask项目
查看>>