理想的MDA实现
2007-06-14 13:20
274 查看
研究了AndroMDA、Acceleo等等若干种MDA的实现,发现他们对MDA的实现,都不是我理解中的MDA,都是一种残缺不全的实现。那么我想象中的MDA应该是什么样的呢?它肯定不是那种“不用写一句代码就能实现整个系统”的空中楼阁。
因为MDA已经采用了UML2做为建模的基础(原因MDA官方网站上已经有很多论述),那么我们就得想想UML2作为进行MDA开发的第一步,它都为后序的工作带来了什么。UML2定义了十三种图,分别描述一个系统的不同的侧面,也成为了描述一个系统的需求及系统设计的基础概念。这些概念包括用例、活动、状态、类、对象、包、交互、<交互>序列、<交互>通讯、<交互>时序、组件、集成、部署。
另一方面,作为PSM,我们要实现一个系统,经常面对的概念是类、方法、属性、设计模式、架构模式、分层、扩展点,在JEE中具体一些就是Struts、Spring、Hibernate、OSGi、Geronimo等等。
那么首先作为UML2,是不是应该有充分的能力来表达这些PSM中的概念?类图可以表示出Java类的结构以及类之间的依赖关系,活动图以及交互图等等可以表达出方法的执行过程,还应该再有一些系统的方法能表达出系统架构、设计模式、分层、扩展点等等这些概念。如何表达?在“开发过程最佳实践”中应该有一些方面的方法,但是好像也不全面。
其次,如果我们能用UML2能表达出所有最终映射到PSM的概念,那下一个问题就是实现全面的PIM到PSM转换。AndroMDA只提供了根据类图、用例图、活动图生成相映Struts、Spring、Hibernate代码的功能。那么,组件图能用来干什么呢?交互图能用来干什么呢?如果不能根据这些图生成代码,那MDA定义这些图的目的是什么?如果仅仅是为了图形化展示模型,那有UML1.4就够了,UML2在语义精确性的加强又有什么意义呢。或者根据这些图生成的代码不能充分反映系统架构设计的思想,那么实施MDA的效果就要大打折扣。
因此,我理想中的MDA(及MDA实现工具),应该是能够实现系统业务模型(PIM)与我们在手工开发一个系统时所常用的概念进行很好的映射的一种技术。应该能够充分的分解需求分析、架构设计、概要设计、详细设计、实现等系统开发的各个阶段。而不是简单的从模型到代码两步操作。
因为MDA已经采用了UML2做为建模的基础(原因MDA官方网站上已经有很多论述),那么我们就得想想UML2作为进行MDA开发的第一步,它都为后序的工作带来了什么。UML2定义了十三种图,分别描述一个系统的不同的侧面,也成为了描述一个系统的需求及系统设计的基础概念。这些概念包括用例、活动、状态、类、对象、包、交互、<交互>序列、<交互>通讯、<交互>时序、组件、集成、部署。
另一方面,作为PSM,我们要实现一个系统,经常面对的概念是类、方法、属性、设计模式、架构模式、分层、扩展点,在JEE中具体一些就是Struts、Spring、Hibernate、OSGi、Geronimo等等。
那么首先作为UML2,是不是应该有充分的能力来表达这些PSM中的概念?类图可以表示出Java类的结构以及类之间的依赖关系,活动图以及交互图等等可以表达出方法的执行过程,还应该再有一些系统的方法能表达出系统架构、设计模式、分层、扩展点等等这些概念。如何表达?在“开发过程最佳实践”中应该有一些方面的方法,但是好像也不全面。
其次,如果我们能用UML2能表达出所有最终映射到PSM的概念,那下一个问题就是实现全面的PIM到PSM转换。AndroMDA只提供了根据类图、用例图、活动图生成相映Struts、Spring、Hibernate代码的功能。那么,组件图能用来干什么呢?交互图能用来干什么呢?如果不能根据这些图生成代码,那MDA定义这些图的目的是什么?如果仅仅是为了图形化展示模型,那有UML1.4就够了,UML2在语义精确性的加强又有什么意义呢。或者根据这些图生成的代码不能充分反映系统架构设计的思想,那么实施MDA的效果就要大打折扣。
因此,我理想中的MDA(及MDA实现工具),应该是能够实现系统业务模型(PIM)与我们在手工开发一个系统时所常用的概念进行很好的映射的一种技术。应该能够充分的分解需求分析、架构设计、概要设计、详细设计、实现等系统开发的各个阶段。而不是简单的从模型到代码两步操作。
相关文章推荐
- getElementsByClassName的理想实现
- 能否实现理想社会-八年级作文
- document.getElementsByClassName的理想实现
- 详解CCProgressTimer 进度条并修改cocos2d源码实现“理想”游戏进度条!
- 使用消息队列实现分布式事物---公认较为理想的分布式事物解决方案
- 使用消息队列实现分布式事物---公认较为理想的分布式事物解决方案
- 什么是理想,理想就是创造和实现,而高层次高境界的理想是追求和达到自我精神中的一种释放,以及对自己的满意程度。怎样让自己活得更好,四个字就可以概括,我想大家应该有自已的答案!
- 为实现理想,制定高一点的目标和完美的计划
- 基于MDA的移动应用开发建模及实现
- 《杜拉拉升职记》中的一段关于“早日实现退休理想--你需要眼光和资格”
- .NET 分布式架构开发实战之四 构建从理想和实现之间的桥梁(前篇)
- 一起谈.NET技术,.NET 分布式架构开发实战之四 构建从理想和实现之间的桥梁(前篇)
- 理想社会的中国实现方式----转载于…
- 实现明天理想的唯一障碍是今天的疑虑。
- 早日实现退休理想--你需要眼光和资格
- document.getElementsByClassName的理想实现
- 专访Duolingo CEO Luis:20世纪我们需要教室来让教育规模化,但未来教育的理想状态是用技术实现1对1私教
- 梦想成为现实:在Enitity Framework中以理想方式实现指定字段查询
- document.getElementsByClassName的理想实现
- 使用消息队列实现分布式事物---公认较为理想的分布式事物解决方案