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

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能够带来更加优秀的设计,从而使应用寿命更加长久并且能够很容易地移植到其他底层平台上。

 

 

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

转载于:https://www.cnblogs.com/attilax/p/5963945.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575355.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BigQuery 分区表简介和使用

大纲 什么是分区表 我们先看定义: 分区表是一种数据库表设计和管理技术,它将表中的数据划分为逻辑上的多个分区,每个分区包含一组特定的数据。每个分区都根据定义的分区键(通常是一个列或字段)的值进行分类&#xff…

jQuery操作属性、设置文本、遍历元素、元素创建添加删除、操作元素尺寸、操作元素位置、注册事件、事件处理、解绑事件、拷贝、多库共存、jQuery插件

jQuery操作属性: jQuery中提供三种方法操作属性,分别是:prop()、arrt()、data(),具体如下: prop()操作自带属性:用来操作元素本身自带的属性(包括没有显示在DOM上的自带属性),如:a…

C_文件读写流

strcmp() 所在头文件&#xff1a;string.h 功能&#xff1a;比较俩个字符串 一般形式&#xff1a;strcmp(字符串1&#xff0c;字符串2) 说明&#xff1a; 当S1<S2时&#xff0c;返回为负数return result,result<0 当S1S2时&#xff0c;返回值0 当S1>S2时&#xff0c;返…

初次使用Apache、ip地址、防火墙、域名、DNS、hosts文件、端口、URL介绍、Apache配置文件、配置虚拟主机、请求响应、http协议、

Apache提供web服务&#xff1a; 启动Apache&#xff0c;让其客户端可以使用你机器上安装的Apache提供的web服务&#xff0c;访问你机器上的网站。这种情况下你的计算机就是服务器&#xff0c;别人的机器就是客户端。 注意&#xff1a;确保配置文件语法检查通过&#xff0c;确…

量子计算机算法与应用研究论文(转载务必注明出处)

量子计算机算法与应用研究 学科分类&#xff1a;计算机科学 湖北省沙市中学 谢晓啸 摘要 1.量子计算机 2.量子计算机算法 3.移动互联 4.云计算 5.经典计算机的局限 6.量子计算前景 二零一四年一月十二日 目 录 摘 要......................................................…

cookie和session、web服务工作原理、Apache配置php扩展、php简介

cookie和session: cookie和session区别&#xff1a;cookie数据是存在本地的&#xff0c;而session数据是存在服务端的&#xff0c;session比cookie更安全。 cookie&#xff1a;用于http做会话时记住客户端所做的事,这里可以解决首次登陆页面广告等问题。 服务端与客户端在做开…

分享MYSQL中的各种高可用技术(源自姜承尧大牛)

图片和资料来源于MYSQL大牛姜承尧老师&#xff08;MYSQL技术内幕作者&#xff09; 姜承尧&#xff1a; 网易杭州研究院 技术经理 主导INNOSQL的开发 mysql高可用各个技术的比较 数据库的可靠指的是数据可靠 数据库可用指的是数据库服务可用 可靠的是数据&#xff1a;例如工商银…

php中数据类型、数组排序、循环语句、混编、操作本地文件流程、常用API、函数、魔术常量

php中数据类型&#xff1a; php中有7种数据类型&#xff0c;分别是&#xff1a; //1.String字符串&#xff0c;用引号包裹的字符&#xff0c;如&#xff1a;$str hello word;//2.Integer整型&#xff0c;可以是正数或负数&#xff0c;有十进制、十六进制、八进制&#xff0c;…

J2ME游戏中的图片处理

图片资源乃是游戏的外衣&#xff0c;直接影响一个游戏是否看上去很美。在J2ME游戏开发中&#xff0c;由于受到容量和内存的两重限制&#xff0c;图片使用受到极大的限制。在这种环境中&#xff0c;处理好图片的使用问题就显得更加重要。 本文从容量和内存两个方面谈谈J2ME游戏图…

php中命名空间、面向对象、访问控制、接口

命名空间&#xff1a; php中命名空间&#xff1a;解决自己编写的代码和php内置及第三方的函数、常量、类命名冲突问题(在不同的命名空间可以定义相同名称的常量、类、函数)&#xff1b;及为繁琐的命名创建一个别名&#xff0c;具体如下&#xff1a; //1.简单定义命名空间&…

经典的十个机器学习算法

1、C4.5 机器学习中&#xff0c;决策树是一个预测模型&#xff1b;他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象&#xff0c;而每个分叉路径则代表的某个可能的 属性值&#xff0c;而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的…

JSON数据、字符串拼接、宽字符处理、数组、Notice警告、isset和empty、变量、作用域、常量、include和require

JSON数据&#xff1a; 字面量是代码中表述数据的手段&#xff0c;JSON是一门类似于js字面量表述数据的手段&#xff0c;JSON是现在市面上用的最广的数据表述手段。 1.JSON对象中属性名称必须用双引号引起来 2.JSON中字符串必须用双引号引起来 3.JSON中不允许使用注释 4.JS…

表单及数据提交、表单的作用、服务端接收提交的数据、php处理数据流程、文件域及文件域中数据处理、php展示数据(响应)

表单及数据提交&#xff1a; 表单的作用&#xff1a; 用于收集相关信息&#xff1b;html中有专门提交数据的标签&#xff0c;可以很容易的收集用户输入的信息&#xff0c;这个标签有两个重要的属性&#xff1a;action表单提交的地址和method以什么方式提交表单&#xff0c;通…

数据库、MySQL介绍及安装流程、SQL语句中增删改查、SQL注入、通过php操作数据库,plugin ‘caching_sha2_password加密规则,分表查询

MySQL数据库&#xff1a; 数据库&#xff1a; 存放数据的仓库&#xff0c;用来按照特定的结构去组织和管理我们的数据&#xff0c;有数据库就可以更加方便的储存数据&#xff1b; 数据库只是存储数据的一种手段&#xff0c;最终数据是存放在硬盘中的&#xff0c;只是存放的格…

可能 delphi7 下稳定的最后一版本 GDIPLUS

可能 delphi7 下稳定的最后一版本 GDIPLUS 可能 delphi7 下稳定的最后一版本 GDIPLUS万一的 blog 说"终于, Delphi XE2 携带 GDI 库了使用了较早的 http://www.progdigy.com"但这个网址已经下不了了,而 http://www.bilsen.com/gdiplus 的又要 delphi2009 以后版本,另…

ajax背景、ajax对象、ajax状态、ajax与http、ajax请求数据接口、同步与异步、ajax请求XML数据、封装ajax函数、artTemplate简介、同源策略和跨域请求、JSONP

AJAX简介&#xff1a; ajax背景&#xff1a; 1.AJAX(Asynchronous JavaScript And Xml)异步的 JavaScript 和 XML:ajax是浏览器提供的一套API&#xff0c;最早出现在谷歌浏览器&#xff0c;是在浏览器端进行网络编程(发送请求、接收响应)的技术方案。它可以使我们通过JavaScr…

我的第一个项目(人力资源管理之报表管理)

2014年暑期实习老师要求的是人力资源管理系统&#xff0c;组队后组长分配给的任务是报表管理。 我做的报表管理&#xff0c;主要的功能是用户输入查询的时间区间和查询部门&#xff0c;然后将数据据库返回的数据显示在浏览器上。用户可以选择是否生成excel表格&#xff08;表格…

jQuery中的ajax、jquery中ajax全局事件、load实现页面无刷新局部加载、ajax跨域请求jsonp、利用formData对象向服务端异步发送二进制数据,表单序列化(异步获取表单内容)

jQuery中使用ajax&#xff1a; 在jQuery中使用ajax首先需要引入jQuery包&#xff0c;其引入方式可以采用网络资源&#xff0c;也可以下载包到项目文件中&#xff0c;这里推荐下载包到文件中&#xff1b;市面上有多个版本的jQuery库&#xff0c;这里到官网&#xff1a;https://…

chartjs和echartsjs库简介

chart.js和echarts.js: 尽管我们已经掌握了canvas绘图和SVG矢量图&#xff0c;在实际开发中我们依旧不会使用canvas和SVG&#xff0c;因为考虑到开发成本&#xff0c;一般会采用相关的图表库进行辅助开发&#xff0c;市面上常用的图表库有chart.js和echarts.js&#xff1b;如果…

弱智的我

【你能看到多少个人头? 】 0—4张: 弱智; 5—8张: 一般人; 9—11张: 特别感性; 11—13张: 精神分裂. 晕倒, 我是弱智的...就看到一个人头...转载于:https://www.cnblogs.com/zhangzujin/p/3877222.html