atitit.提升开发效率---mda 软件开发方式的革命
atitit.提升开发效率---mda 软件开发方式的革命
5. MDA的三个主要目标是:轻便性、 互操作性和可重用性。 3
7. 问题:也许MDA不过是已有的Case Tools的“昙花一现”
3
1. 软件开发方式的革命开发工具的抽象层次将再次提升
MDA是软件开发自汇编语言到高级语言之后又一次革命性的“突变”
MDA是OGM提出的新的软件开发方法学,有这样一个观点,软件开发就是建模..它构筑于UML建模语言巨大成功的基础之上
MDA改变了开发过程。在软件的需求分析阶段,不再是编写文档
MDA改变了开发工具。随着技术的进步,主流开发工具的抽象层次将再次提升。在IDE中,最重要的不是代码编辑器,而是基于图形的建模窗口。代码将由变幻工具自动生成,不再是关心的内容。
MDA让我们重新认识文档。以前我们认为文档或者模型不用些的太精确,因为人有很强的理解能力,写的太精确是浪费时间,因为他们不可能变成可以运行的东西。但MDA将推翻这些事实。模型将不是写给人看的,而是写给机器看的,写的精确一点不在是浪费时间。
在将来, 工具将代替人来完成编码工作(大部分吧),走跟个编译器也是..,而我们只要把精力放到创造型的过程中去就可以了
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
2. 应用框架和其实现相分离
MDA能够将应用框架和其实现相分离。MDA的支持者希望支撑软件和硬件的改变不会使现有的企业应用无法使用。更重要的是,通过降低应用架构和其运行环境的耦合度,MDA能够带来更加优秀的设计,从而使应用寿命更加长久并且能够很容易地移植到其他底层平台上。
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 软件开发方式的革命的更多相关文章
- atitit.提升开发效率---MDA 软件开发方式的革命(3)----自动化建表
atitit.提升开发效率---MDA 软件开发方式的革命(3)----自动化建表 1. 建模在后自动建表 1 1. 传统上,需要首先建表,在业务编码.. 1 2. 模型驱动建表---更多简化法是在建 ...
- atitit.提升开发效率---mda 软件开发方式的革命--(2)
atitit.提升开发效率---mda 软件开发方式的革命--(2) 1. 一个完整的MDA规范包含: 1 2. 一个完整的MDA应用程序包含: 1 3. MDA能够带来的最大的三个好处是什么? 2 ...
- atitit.提升开发效率---MDA 软件开发方式的革命(3)----自己主动化建表
atitit.提升开发效率---MDA 软件开发方式的革命(3)----自己主动化建表 1. 建模在后自己主动建表 1 1. 传统上,须要首先建表,在业务编码.. 1 2. 模型驱动建表---很多其它 ...
- atitit.提升开发效率---MDA 软件开发方式的革命(5)----列表查询建模
)----列表查询建模 1. 配置条件字段@Conditional 1 2. 配置条件字段显示类型为range----@Conditional(displayType = displayType.ra ...
- atitit.提升开发效率---MDA 软件开发方式的革命(4)----编辑表单建模
)----编辑表单建模 1. 建模语言的选型anno+html...不是uml 1 2. 指定显示模板 @BeanEditForm(tmplt="c:/edit.html") 1 ...
- atitit.提高开发效率---mda 革命性的软件开发方法
atitit.提高开发效率---mda 革命性的软件开发方法 1. 软件开发方式的革命开发工具的抽象层次将再次提升 1 2. 应用框架和事实上现相分离 2 3. 眼下的问题模型和代码不同步 2 4. ...
- Atitit. 提升开发效率与质量DSL ( 3) ----实现DSL的方式总结
Atitit. 提升开发效率与质量DSL ( 3) ----实现DSL的方式总结 1. 管道抽象 1 2. 层次结构抽象(json,xml etc) 1 3. 异步抽象promise 1 4. Ide ...
- atitit.提升开发效率---使用服务器控件生命周期 asp.net 11个阶段 java jsf 的6个阶段比较
atitit.提升开发效率---使用服务器控件生命周期 asp.net 11个阶段 java jsf 的6个阶段比较 如下列举了服务器控件生命周期所要经历的11个阶段. (1)初始化-- --在此 ...
- atitit.提升开发效率---动态语言总结
atitit.提升开发效率---动态语言总结 ruby,python 都不错,就是语法不好, 应用不广泛,文档,工具都非常少,不推荐... php狠不错,就是高级特性不行.. 看来子有.net/jav ...
随机推荐
- 使用C# WinForm制作 员工打卡项目 -- S2 2.3
新建一个员工类,存储员工的信息 新建一个List<>集合,并在load事件中实例化三个员工对象 DataGridView绑定数据源,可以显示出数据 点击查询按钮,查询工号等同于输入的数的员 ...
- (引用) unittest测试驱动之执行测试(三)
转载:http://www.wtoutiao.com/p/ydeoyY.html 在unittest的模块中,提供了TestRunner类来进行运行测试用例,在实际的应用中,经常使用的是TextTes ...
- Tornado sqlalchemy
上篇文章提到了,最近在用 Python 做一个网站.除了 Tornado ,主要还用到了 SQLAlchemy.这篇就是介绍我在使用 SQLAlchemy 的过程中,学到的一些知识. 首先说下,由于最 ...
- 动态获取ul,li的数据
通过一个小例子讲下动态获取li标签的数据,前台页面原有样式: <div class="flone"> <ul class="fltwo"> ...
- H5-表格、表单
一.表格 1.表格标签 a.table 表格 b.thead 表格头 c.tbody 表格主体 d.tr 表格行 e.th 元素定义表头 f.td 元素定义表格单元 2.表格样式重置 a.table{ ...
- [z] error C2471 错误
error C2471: 无法更新程序数据库“d:/Work/ Project/FBReader/debug/vc90.pdb” fatal error C1083: 无法打开程序数据库文件:“d:/ ...
- Asp.net MVC生命周期
Asp.net应用程序管道处理用户请求时特别强调"时机",对Asp.net生命周期的了解多少直接影响我们写页面和控件的效率.因此在2007年和2008年我在这个话题上各写了一篇文章 ...
- SD-WAN技术分析
1.概述 转载须注明来自 SDNLAB并附上本文链接. 本文链接:http://www.sdnlab.com/17810.html 宽带接入以及Internet骨干网容量的持续提升,促使企业WAN技术 ...
- Top Data Scientists to Follow & Best Data Science Tutorials on GitHub
http://www.analyticsvidhya.com/blog/2015/07/github-special-data-scientists-to-follow-best-tutorials/ ...
- 解决ubuntu bash: cd: ~:Permission denied
cd /usr/local/hadoop 报错:bash: cd: /usr/local/hadoop:Permission denied 输入指令: /usr/local/hadoop 原因是没有权 ...