第三章模型驱动开发概述课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第三章模型驱动开发概述课件.ppt》由会员分享,可在线阅读,更多相关《第三章模型驱动开发概述课件.ppt(55页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于模型驱动的安全系统开发 第三章:模型驱动开发概述第三章:模型驱动开发概述第三章:模型驱动开发概述第三章:模型驱动开发概述 主讲:徐田华主讲:徐田华主讲:徐田华主讲:徐田华 mail:mail:mail:mail: 内容o模型及其意义o模型驱动的开发及其意图o模型驱动开发的定义和关键问题o模型驱动开发授课内容3什么是模型?o模型是对现实世界的一个简化4什么是模型?5什么是模型?6为什么要有模型?o建模可以达到以下四个目的:n把目前正在构建的系统可视化n描述系统的结构和行为n为构建系统提供模板和指导n记录在开发过程所形成的设计决策o管理系统复杂度n复杂的系统很难被认识和理解,建模可以很好的管理
2、这种复杂度o帮助团队成员之间的沟通n模型可以帮助开发人员之间相互理解对方的设计意图7什么是 MDD?oMDD 是一种抽象的软件开发设计流程,主要包括以下特点:n抽象(提高层次提高层次)、封装和信息隐藏o通过模型的多个层次(横向和纵向横向和纵向)来隐藏和展现信息,从而使模型更容易被理解n以模型为中心o开发过程始终以模型为工作中心n不依赖于任何一种特定的实现o模型独立于运行平台的实现细节,这部份往往是最容易发生变化的8软件开发方法的演化(抽象)纯粹基于模型的开发ModelModel只有模型只有模型什么是模型?CodeCode只有代码只有代码代码就是模型ModelModelCodeCode代码可视化
3、代码可视化visualize模型就是代码ModelModelCodeCode以模型为中心以模型为中心generate抽象和自动化程度同步代码和模型ModelModelCodeCode双向工程双向工程synchronize软件开发软件开发发展方向发展方向软件开发软件开发实践现状实践现状9什么是 MDD?oMDD 是一种抽象的软件开发设计流程,主要包括以下特点:n双向工程o新应用开发-通过正向工程来生成代码o针对遗留系统的开发 通过逆向工程来从代码中抽象出模型n应用系统的自动生成o能够从模型生成完全可运行的应用系统o我们可以把 MDD 看作是一种使用模型来进行编程的开发技术10什么是 MDA?oM
4、DA Model Driven ArchitecturenMDA 是 OMG(Object Management Group)制定的一种 MDD 实现nMDA 包括了一组实现 MDD 方法的标准和工具集合nMDA 定义了关于 MDD 软件开发方法的一种概念框架为什么需要MDAoOMG提出的MDA方法的三个主要目标三个主要目标:轻便性、互操性和可重用性。具体解决以下问题:n扭转以代码为中心代码为中心的软件开发方法;n解决不同平台解决不同平台,不同技术路线之间的集成和互操作问题;n便于适应将来出现的新技术和新平台;Inconsistency between document and code Di
5、fficulty maintainability,poor adaptation of new technology Poor in interoperationDeveloper like?Iterative processCode driven developmentCode driven developmentrequirementSystem analysisdesigncodeAcceptanceTestdocumentDocument,diagramcodecodeDocument,diagramCode Driven Developmento传统软件开发的问题o随着软件系统的复杂
6、程度越来越高,传统的软件开发开始面临有以下几个o问题n疲于应付需求的不断变更;n文档迅速地失效、维护困难;n项目二期开发生产力无法提升。n每当一种新的技术产生的时候,必须做许多重复的工作。o系统永远不可能只用一种技术实现,且不跟其它系统交互。不断变更的需求同样也给系统带来困难。下面将分析在软件开发过程中遇到的问题,随后会介绍是如何来解决这些问题的opublic interface Book extends EObjecto o String getTitle();o void setTitle(String value);o int getPages();o void setPages(int
7、 value);o opublic class BookImpl extends EObjectImpl implements Booko o .o protected static final int PAGES_EDEFAULT=0;o protected int pages=PAGES_EDEFAULT;o public int getPages()o o return pages;o o public void setPages(int newPages)o o int oldPages=pages;o pages=newPages;o if(eNotificationRequired
8、()o eNotify(new ENotificationImpl(this,Notification.SET,.,oldPages,pages);o o .o Code Driven Developmento1.生产力和维护性问题o 当今的软件开发过程是以概要设概要设计计和编码编码为驱动。无论是采用增量开发还是迭代开发,或者是传统的瀑布式开发途径,文档和相关的设计图表都是在前三个阶段前三个阶段中产生。需求分析往往使用文本和图的方式来描述,其中的图经常采用图,如用例图、类图、交互图、活动图等。设计过程会产生大量的设计文档,但往往仅存在于文档中。Code Driven Developmento当
9、编码开始的时候,前三个阶段产生的文档和相关图片就迅速失去了它们的价值。随着编码阶段的继续进行,图片和代码之间的关联逐渐减弱甚至消失,它们不再是对代码的精确描述,或多或少地成为了无关的图片。o随着时间的推移,系统不断地被修改,文档、设计图表和代码之间的距离就越来越疏远。一般来说仅仅是修改代码,因为修改文档和设计图表所要花费的代价是令人无法容忍的。同时,即使修改了图和文档,这样的工作是否有效也值得怀疑,因为还会不断地修改代码。Code Driven DevelopmentCode Driven Developmento当一个团队初始开发一个系统初始开发一个系统的时候,保存在它们大脑中的设计思想足以
10、使它们理解理解这个系统。问题是当第一版发布之后,团队可能会解散团队可能会解散,其它来维护这个系统的人可能是一个新人,那么它就只有代码和测试结果只有代码和测试结果,这就使得系统维护极其困难系统维护极其困难。如果一个系统的代码多达万行,而缺少原始的设计、分析文档的话,将是非常难以维护的。o所以,要么在前三个阶段花费时间花费时间,写出详细设计文档写出详细设计文档和设计图表或者在维护阶段花费时间,来发现系统是如何工作的。这些方式都是不能直接产出代码的,也是花花费比较高昂费比较高昂的。许多开发人员认为直接书写代码才是有直接书写代码才是有产出的,设计模型和文档则不能产出的,设计模型和文档则不能。但是,在一
11、个程序的项目团队中,这些任务都是必须被完成的。文档写到什么粒度,既能很好地指导编码和测试,又能不降低生产率一直是困扰开发人员的一个难题。o软件工业与传统工业相比,有一个特定就是其发展速度非常快。每年都会出现各种新技术并迅速流行起来,例如Java,linux,XML,HTML,SOAP,UML,J2EE,.NET,JSP,ASP,Flash,Web Service等等。许多公司必须跟从这种改变,这是因为n用户提出使用新技术的需求n新技术能够真正解决一些问题例如,XML解决异构系统间的数据交换n软件供应商停止对旧的技术提供支持Code Driven DevelopmentCode Driven D
12、evelopmentCode Driven Developmento新技术能够使得一些公司获得一些切实的好处,但是人们必须面临的困境就是,他们必须快速跳跃前进快速跳跃前进,而且必须忍受前期投资失去价值忍受前期投资失去价值的现实,这无疑是非常痛苦的。情况更加复杂的是,新技术本身也在发生变化。它们也会不断推出不同的版本,而且并不能保证能完全做到向后兼容。软件供应商通常也只是对最近版本提供支持。o 现存的一些系统要么提供接口与新技术开发的系统连接提供接口与新技术开发的系统连接,要么转向新技术转向新技术。那些仍然使用旧技术的遗产遗产系统必然需要和使用新技术开发的系统进行互连。如果系统和某种技术紧密绑定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 模型 驱动 开发 概述 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内