atitit.提高开发效率---mda 革命性的软件开发方法

1. 软件开发方式的革命开发工具的抽象层次将再次提升 1

2. 应用框架和事实上现相分离 2

3. 眼下的问题模型和代码不同步 2

4. MDA的历史及其由来 2

5. MDA的三个主要目标是:轻便性、 互操作性和可重用性。

3

6. MDA跟代码生成的不同 3

7. 问题:或许MDA只是是已有的Case Tools的“昙花一现”
3

8. 实际的效率提升 3

9. Mda在嵌入式系统的成功 4

10. 我的总结:::基于伪码生成比較好. 4

11. 參考 4

1. 软件开发方式的革命开发工具的抽象层次将再次提升

MDA是软件开发自汇编语言到高级语言之后重新革命性的“突变”

MDA是OGM提出的新的软件开发方法学,有这样一个观点。软件开发就是建模..它构筑于UML建模语言巨大成功的基础之上

MDA改变了开发过程。在软件的需求分析阶段,不再是编写文档

MDA改变了开发工具。

随着技术的进步,主流开发工具的抽象层次将再次提升。在IDE中,最重要的不是代码编辑器。而是基于图形的建模窗体。代码将由变幻工具自己主动生成。不再是关心的内容。

MDA让我们又一次认识文档。

曾经我们觉得文档或者模型不用些的太精确。由于人有非常强的理解能力,写的太精确是浪费时间,由于他们不可能变成能够执行的东西。但MDA将推翻这些事实。模型将不是写给人看的,而是写给机器看的,写的精确一点不在是浪费时间。

在将来, 工具将取代人来完毕编码工作(大部分吧),走跟个编译器也是..。而我们仅仅要把精力放到创造型的过程中去就能够了

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

2. 应用框架和事实上现相分离

MDA可以将应用框架和事实上现相分离。MDA的支持者希望支撑软件和硬件的改变不会使现有的企业应用无法使用。

更重要的是,通过减少应用架构和其执行环境的耦合度,MDA可以带来更加优秀的设计,从而使应用寿命更加长久而且可以非常easy地移植到其它底层平台上。

3. 眼下的问题模型和代码不同步

当今建模的主要问题在于。对于非常多企业来说它仅仅是纸面上的练习。这就造成了模型和代码不同步的问题。代码会被不断改动,而模型不会被更新,这样模型就失去了意义

4.  MDA的历史及其由来

自从2001年MDA被OMG(Object Management Group 国际对象管理集团)提出以后,"随风潜入夜,润物细无声",未见轰轰烈烈宣传,各大厂商却惊人一致地争相跟进,关于MDA的话题转眼之间在网络上也如火如荼地繁荣起来了。

  MDA(Model Driven Architecture,模型驱动架构)是OMG眼下推出的全新的软件开发框架,这一框架的推出已给整个软件业带来了一场“地震”

,它把我们从底层平台的“剧烈振动”中安全的隔离出来,保护了 我们业已建立的“业务逻辑大厦”的安然无恙,使我们在面对一轮一轮因平台技术剧变而产生的冲击波时可以泰然处之。它必将在诸多方面对软件技术的未来产生深 远的影响,然而它的“源”在哪里呢?

从1995年起,OMG開始非正式的採用与工业相关的一些技术规范,并于96、97年进行了正式化工作。与此同一时候。在Mary Loomis的领导下进一步扩大了工作范围使之包括对象建模。这就导致了UML建模语言的产生,并随之于2001年OMG组织进一步採纳了另外一个框架 ——MDA。

当然MDA不像CORBA框架那样是用于实现分布式对象系统,而是一种在软件开发中使用模型的方式。回想MDA的历史。我们能够看出UML的 巨大成功为MDA的产生奠定了坚实的基础,

 MDA源自于众所周知的把系统操作的规范从系统利用底层平台能力的方式细节中分离出来的思想,MDA提供了一种途径(通过相关的工具)来规范化一个平台 独立的系统、规范化平台、为系统选择一个特定的实现平台,而且把系统规范转换到特定的实现平台。

5. MDA的三个主要目标是:轻便性、 互操作性和可重用性。

通过架构性的分离来实现轻便性、 互操作性和可重用性。

6. MDA跟代码生成的不同

MDA的本质不是代码生成,虽然代码生成被觉得是主要成就。

MDA也能够通过构造能直接运行模型的虚拟机来实现。

MDA并不不过“UML+代码生成”。它带给我们很多其它的是一种思考问题的方式和观念的变化

7. 问题:或许MDA只是是已有的Case Tools的“昙花一现”

8. 实际的效率提升

MDA团队在效率上占有绝对优势,效率提高了差点儿30%多

当中还没有计算因是第一次使用MDA方法所必须的熟悉和学习工具时间。可见使用MDA方法能够极大地提高软件开发效率,这一点是毋庸置疑的。

3大的MDA工具的现状

相对于业界大厂的冷静和矜持。一些中小厂商反而特别活跃,

像 Interactive Objects公司著名的ArcStyler、

Compuware公司著名的OptimalJ,

还有开放源代码的AndroMDA等遵循OMG标准规范的 MDA工具已在一些项目中得到了广泛的运用。并取得了显著的成效。

  结束语

9. Mda在嵌入式系统的成功

由于嵌入式系统一瓦不同的平台..

。基于Schlaer-Mellor的系统被用于为全部种类的电子设备生成嵌入式代码。从抽象模型产生数百万行C/C++代码来完毕复杂的电信交换。在某些方面,我能够说比起企业应用系统。MDA在这样的系统上有更成功的表现。”

  既然在嵌入式和实时系统已取得成功。在企业级开发方面也必将成功,我们将拭目以待。

10. 我的总结:::基于伪码生成比較好.

使用uml生成代码如今还不是弄好....伪码或许做为其中语言...

11. 參考

MDA:一场软件开发方式的革命。还是Case Tools老瓶中装的新醋? - 王朝网络 - wangchao.net.cn.htm

版权声明:本文博主原创文章,博客,未经同意不得转载。

atitit.提高开发效率---mda 革命性的软件开发方法的更多相关文章

  1. atitit.提升开发效率---mda 软件开发方式的革命

    atitit.提升开发效率---mda 软件开发方式的革命 1. 软件开发方式的革命开发工具的抽象层次将再次提升 1 2. 应用框架和其实现相分离 2 3. 目前的问题模型和代码不同步 2 4. MD ...

  2. atitit.提升开发效率---MDA 软件开发方式的革命(3)----自动化建表

    atitit.提升开发效率---MDA 软件开发方式的革命(3)----自动化建表 1. 建模在后自动建表 1 1. 传统上,需要首先建表,在业务编码.. 1 2. 模型驱动建表---更多简化法是在建 ...

  3. atitit.提升开发效率---mda 软件开发方式的革命--(2)

    atitit.提升开发效率---mda 软件开发方式的革命--(2) 1. 一个完整的MDA规范包含: 1 2. 一个完整的MDA应用程序包含: 1 3. MDA能够带来的最大的三个好处是什么? 2 ...

  4. atitit.提升开发效率---MDA 软件开发方式的革命(3)----自己主动化建表

    atitit.提升开发效率---MDA 软件开发方式的革命(3)----自己主动化建表 1. 建模在后自己主动建表 1 1. 传统上,须要首先建表,在业务编码.. 1 2. 模型驱动建表---很多其它 ...

  5. 提升开发效率的一款mybatis开发神器

    文末附有完整案例的代码内容!! 以前在开发的时候,使用mybatis的时候,经常都需要先配置xml映射文件,然后每条sql操作都需要自己进行手动编写,对于一些复杂的sql这么来操作确实有必要,但是如果 ...

  6. 怎么用snapman一个人在三天内开发出一个复杂的软件开发项目管理系统

    snapman是一个简单而强大的团队协作软件,在上面的信息可以是数据.可以是规则.也可以是自动化代码:最重要的它是一个可以开发的协作平台,所有信息都可以作用到所有人或机器上,大大减少了工作的复杂度.软 ...

  7. 读《31天学会CRM项目开发》记录1 - 认识软件开发

    今天闲来无事,心中又对软件开发充满了向往和憧憬.一直认为实践是检验真知的唯一标准,也是快速提升的绝密方法,是巩固基础加深基础的好去处.故在JD上搜了下软件开发,看到了这本<31天学会CRM项目开 ...

  8. atitit.提升开发效率---MDA 软件开发方式的革命(5)----列表查询建模

    )----列表查询建模 1. 配置条件字段@Conditional 1 2. 配置条件字段显示类型为range----@Conditional(displayType = displayType.ra ...

  9. atitit.提升开发效率---MDA 软件开发方式的革命(4)----编辑表单建模

    )----编辑表单建模 1. 建模语言的选型anno+html...不是uml 1 2. 指定显示模板 @BeanEditForm(tmplt="c:/edit.html") 1 ...

随机推荐

  1. Unity3d 布娃娃系统

    选中带骨骼的3d模型 GameObject->Create Other->Ragdoll... 点开发现弹出了一个Create Ragdoll的窗体 前面的基础transform把骨骼拖进 ...

  2. Android onLoadFinished与onLoaderReset

    onLoadFinished 这个方法是在前面已创建的加载器已经完成其加载过程后被调用,这个方法保证会在应用到加载器上的数据被释放之前被调用.在此方法中,你必须删除所有对旧数据的使用(因为它将很快会被 ...

  3. Angular7环境搭建报错

    昨天写的2019年Angular7——安装搭建路由方法不太正统,今天又去翻了下angular官网,跟着上面的环境搭建与部署走了一遍 从安装@angular/cli命令行工具开始 本篇主要记录下搭建过程 ...

  4. POJ 2752 Seek the Name, Seek the Fame (KMP)

    传送门 http://poj.org/problem?id=2752 题目大意:求既是前缀又是后缀的前缀的可能的长度.. 同样是KMP,和 HDU 2594 Simpsons' Hidden Tale ...

  5. JAVA中正則表達式总结(具体解释及用途)

    很多语言,包含Perl.PHP.Python.JavaScript和JScript,都支持用正則表達式处理文本,一些文本编辑器用正則表達式实现高级"搜索-替换"功能.所以JAVA语 ...

  6. php 文件夹是否存在,不存在就创建

    $lujing = "./nihao/wohao"; if(!is_dir($liujing)){ mkdir(iconv("UTF-8", "GBK ...

  7. IfSpeed 带宽计算

    http://www.360doc.com/content/11/0304/22/2614615_98214710.shtml http://www.cisco.com/support/zh/477/ ...

  8. iOS中拉伸图片的几种方式

    假如下面的一张图片,是用来做按钮的背景图片的,原始尺寸是(128 * 112) 按钮背景图片.png 我们通过代码将这张图片设置为按钮的背景图片,假如我们将创建好的按钮的宽高设置为:(W=200, H ...

  9. 监听text等的改变事件

    oninput事件是html5的标准事件,支持ie9和以上以及其他的火狐啊谷歌啊等浏览器 ie9以下的可以用onpropertychange <head>     <script t ...

  10. Xcode6 模拟器路径

    Xcode6公布后,出现了非常多的变动,功能性的变动,在这里不进行过多的赘述,在WWDC上苹果已经进行了讲述,网上也有非常多文章,这里要介绍的是一些不太easy发现的,但非常重要的小地方.      ...