正向工程、逆向工程与MDA
  正向工程:从UML图形生成代码;
  逆向工程:从代码和成UML图形;
  //不要依赖于正向或逆向工程,仅是一种辅助手段。画图的目的不是为了生成代码;而写代码的目的也不是为了生成图形。

MDA:(模型驱动架构)
  未来软件开发的方向,(将来没有程序员,只有架构师,直接通过模型生成代码)
  PIMs Platform Independent Models(平台无关模型) 和PSMs(Platform Specific Models)
  MOF(UML 元模型 元元模型)

什么时候使用类图:

  • 任何时候(不是说在建模,在描述概念的时候,任何时候都可以,不一定在设计的时候)
  • 类图是UML中最重要的图形;
  • 不要尝试使用类图描述所有的细节;
  • 保持类图的简单;
  • 对概念建模(领域模型)
  • 分析时使用;(实体类 entity、控制类 control、边界类 boundary)

领域模型:

  • 领域模型是OO分析中最重要的和经典的模型;
  • 领域模型(Domain Model),也称为概念模型、领域对象模型、分析对象模型,我们在对项目进行分析的时候,往往会创建相应的领域模型;
  • 领域模型包括:概念,关联,属性(不考虑动态行为,没有方法)

为什么需要领域模型

  • 理解关键概念和词汇
  • 逐步进入设计阶段(为进入设计阶段得到一些启示)
  • 现实世界与软件实现之间的过度

如何创建领域模型

  • 寻找概念类(名词短语、分析模式)
  • 绘制类图
  • 添加关联和属性
  • 属性表示法(普通数据类型表示为属性;不要把复杂的领域概念建模为属性)如,Document类的创建者User为一个类,而不是Document类的一个属性

正向工程、逆向工程与MDA的更多相关文章

  1. PowerDesigner 正向工程 和 逆向工程 说明

    PowerDesigner 正向工程 和 逆向工程 说明 database数据库脚本oraclegenerationsql   目录(?)[+]   一. 正向工程与逆向工程说明 在前面几篇里介绍了几 ...

  2. DbWrench002--建模以及数据正向工程和反向工程的具体操作

    DbWrench--建模以及数据正向工程和反向工程 参考博客:https://my.oschina.net/u/3459265/blog/1611999 一.数据正向工程 在建模工作中画好的表与表之间 ...

  3. 正向工程configuration配置连接

    在执行正向工程的时候需要用到这个关键词里面的configure();方法, 这个方法有好几个重构, 都是参数不一样的, 也可以空着不写, 不写的话就会默认去找hibernate.cfg.xml这个文件 ...

  4. Rose如何由模型生成代码(正向工程)

    原创 正向工程: 选中要转换的模型. 单击 tools>Java/J2EE > Syntax Check 来检查目标代码是否符合规范,比如命名错误. 察看rose log窗口(下方)察看检 ...

  5. hibernate正向工程生成数据库

    hibernate正向工程生成数据库 hibernate.cfg.xml ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2 ...

  6. 懒要懒到底,能自动的就不要手动,Hibernate正向工程完成Oracle数据库到MySql数据库转换(含字段转换、注释)

    需求描述 需求是这样的:因为我们目前的一个老项目是Oracle数据库的,这个库呢,数据库是没有注释的,而且字段名和表名都是大写风格,比如 在代码层面的po呢,以前也是没有任何注释的,但是经过这些年,大 ...

  7. Hibernate正向工程(实体类-->数据库)

    1,新建实体类News.java package com.hanqi.dao; import java.util.Date; public class News { private Integer i ...

  8. powerDesigner 正向工程生成sql注释

    找到script-->objects-->column-->add value内容如下: %:COLUMN% %:DATATYPE%[.Z:[%Compressed%? compre ...

  9. ERwin 正向工程

    1.物理模型带字段备注 COMMENT ON 将模型切换至 physical 模式选择 Model ---> Domain Dictionary , 在 tab 标签中,切换至comment 然 ...

随机推荐

  1. jQuery中的text(),html(),val()用法

    jQuery中的text(),html(),val()用法 text():获取或者改变指定元素的文本 html():获取或改变指定元素的html元素以及文本 val():获取或者改变指定元素的valu ...

  2. MSSQL查找前一天,前一月,前一年的数据,对比当前时间记录查找超过一年,一月,一天的数据

    ,') ,GETDATE()) ,') ,GETDATE()) ,') ,GETDATE()) ,GETDATE())) ,GETDATE())) ,GETDATE()))

  3. python环境变量的配置

    每个python程序都须要import非常多包.有些系统包是不用安装的.有些第三方包是须要安装的. 在同一台电脑里的linux环境里,安装了第三方包,基本就适用于了整个系统环境. 这里能够用下面方法, ...

  4. Python 实int型和list相互转换 现把float型列表转换为int型列表 把列表中的数字由float转换为int型

    第一种方法:使用map方法 >>> list = [, ] #带有float型的列表 >>> int_list = map(int,list) #使用map转换 & ...

  5. SCUT入门-环境搭建

    SCUT是一款基于C#且开源的游戏服务端框架,并且有一定的上线项目.最近正在入门中... 1.安装 去官网可以直接下载安装版:http://www.scutgame.com/ 源代码建议OSC Chi ...

  6. 如何使用SignalTap II觀察reg與wire值? (SOC) (Verilog) (Quartus II) (SignalTap II)

    Abstract撰寫Verilog時,雖然每個module都會先用ModelSim或Quartus II自帶的simulator仿真過,但真的將每個module合併時,一些不可預期的『run-time ...

  7. 在iOS App中增加完整的照片多选功能

    转自:http://blog.csdn.net/jasonblog/article/details/8141850 主要参考了ELCImagePickerController,不过由于UI展现上需要定 ...

  8. path方法总结

    $.mobile.path.get(url);//获取URL地址的目录部分,就是除了a.html之外的那部分 jQuery.mobile.path.getDocumentBase(bool) //获取 ...

  9. spring 发布 Jax-Ws Service (一)

    1.maven依赖: <dependency> <groupId>org.springframework.ws</groupId> <artifactId&g ...

  10. WebSocket请求过程分析及实现Web聊天室

    WebSocket协议是基于TCP的一种新的协议.WebSocket最初在HTML5规范中被引用为TCP连接,作为基于TCP的套接字API的占位符.它实现了浏览器与服务器全双工(full-duplex ...