书签 分享 收藏 举报 版权申诉 / 55
上传文档赚钱

类型第三章-模型驱动开发概述.课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:2984176
  • 上传时间:2022-06-19
  • 格式:PPT
  • 页数:55
  • 大小:3.19MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第三章-模型驱动开发概述.课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    第三 模型 驱动 开发 概述 课件
    资源描述:

    1、内容o模型及其意义o模型驱动的开发及其意图o模型驱动开发的定义和关键问题o模型驱动开发授课内容3什么是模型?o模型是对现实世界的一个简化4什么是模型?5什么是模型?6为什么要有模型?o建模可以达到以下四个目的:n把目前正在构建的系统可视化n描述系统的结构和行为n为构建系统提供模板和指导n记录在开发过程所形成的设计决策o管理系统复杂度n复杂的系统很难被认识和理解,建模可以很好的管理这种复杂度o帮助团队成员之间的沟通n模型可以帮助开发人员之间相互理解对方的设计意图7什么是 MDD?oMDD 是一种抽象的软件开发设计流程,主要包括以下特点:n抽象(提高层次提高层次)、封装和信息隐藏o通过模型的多个层

    2、次(横向和纵向横向和纵向)来隐藏和展现信息,从而使模型更容易被理解n以模型为中心o开发过程始终以模型为工作中心n不依赖于任何一种特定的实现o模型独立于运行平台的实现细节,这部份往往是最容易发生变化的8软件开发方法的演化(抽象)纯粹基于模型的开发只有模型只有模型什么是模型?只有代码只有代码代码就是模型代码可视化代码可视化visualize模型就是代码以模型为中心以模型为中心generate抽象和自动化程度同步代码和模型双向工程双向工程synchronize软件开发软件开发发展方向发展方向软件开发软件开发实践现状实践现状9什么是 MDD?oMDD 是一种抽象的软件开发设计流程,主要包括以下特点:n

    3、双向工程o新应用开发 - 通过正向工程来生成代码o针对遗留系统的开发 通过逆向工程来从代码中抽象出模型n应用系统的自动生成o能够从模型生成完全可运行的应用系统o我们可以把 MDD 看作是一种使用模型来进行编程的开发技术10什么是 MDA?oMDA Model Driven ArchitecturenMDA 是 OMG (Object Management Group) 制定的一种 MDD 实现nMDA 包括了一组实现 MDD 方法的标准和工具集合nMDA 定义了关于 MDD 软件开发方法的一种概念框架为什么需要MDAoOMG提出的MDA方法的三个主要目标三个主要目标:轻便性、互操性和可重用性。

    4、具体解决以下问题:n扭转以代码为中心代码为中心的软件开发方法;n解决不同平台解决不同平台,不同技术路线之间的集成和互操作问题;n便于适应将来出现的新技术和新平台; Inconsistency between document and code Difficulty maintainability, poor adaptation of new technology Poor in interoperationDeveloper like?Iterative processCode driven developmentrequirementSystem analysisdesigncodeAcc

    5、eptanceTestdocumentDocument, diagramcodecodeDocument, diagramCode Driven Developmento传统软件开发的问题o随着软件系统的复杂程度越来越高,传统的软件开发开始面临有以下几个o问题n疲于应付需求的不断变更;n文档迅速地失效、维护困难;n项目二期开发生产力无法提升。n每当一种新的技术产生的时候,必须做许多重复的工作。o系统永远不可能只用一种技术实现,且不跟其它系统交互。不断变更的需求同样也给系统带来困难。下面将分析在软件开发过程中遇到的问题,随后会介绍是如何来解决这些问题的opublic interface Book

    6、 extends EObjecto o String getTitle();o void setTitle(String value);o int getPages();o void setPages(int 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 pa

    7、ges;o o public void setPages(int newPages)o o int oldPages = pages;o pages = newPages;o if (eNotificationRequired()o eNotify(new ENotificationImpl(this, Notification.SET, ., oldPages, pages);o o .o Code Driven Developmento1. 生产力和维护性问题o 当今的软件开发过程是以概要设概要设计计和编码编码为驱动。无论是采用增量开发还是迭代开发,或者是传统的瀑布式开发途径,文档和相关的

    8、设计图表都是在前三个阶段前三个阶段中产生。需求分析往往使用文本和图的方式来描述,其中的图经常采用图,如用例图、类图、交互图、活动图等。设计过程会产生大量的设计文档,但往往仅存在于文档中。Code Driven Developmento当编码开始的时候,前三个阶段产生的文档和相关图片就迅速失去了它们的价值。随着编码阶段的继续进行,图片和代码之间的关联逐渐减弱甚至消失,它们不再是对代码的精确描述,或多或少地成为了无关的图片。o随着时间的推移,系统不断地被修改,文档、设计图表和代码之间的距离就越来越疏远。一般来说仅仅是修改代码,因为修改文档和设计图表所要花费的代价是令人无法容忍的。同时,即使修改了图

    9、和文档,这样的工作是否有效也值得怀疑,因为还会不断地修改代码。Code Driven DevelopmentCode Driven Developmento当一个团队初始开发一个系统初始开发一个系统的时候,保存在它们大脑中的设计思想足以使它们理解理解这个系统。问题是当第一版发布之后,团队可能会解散团队可能会解散,其它来维护这个系统的人可能是一个新人,那么它就只有代码和测试结果只有代码和测试结果,这就使得系统维护极其困难系统维护极其困难。如果一个系统的代码多达万行,而缺少原始的设计、分析文档的话,将是非常难以维护的。o所以,要么在前三个阶段花费时间花费时间,写出详细设计文档写出详细设计文档和设计

    10、图表或者在维护阶段花费时间,来发现系统是如何工作的。这些方式都是不能直接产出代码的,也是花花费比较高昂费比较高昂的。许多开发人员认为直接书写代码才是有直接书写代码才是有产出的,设计模型和文档则不能产出的,设计模型和文档则不能。但是,在一个程序的项目团队中,这些任务都是必须被完成的。文档写到什么粒度,既能很好地指导编码和测试,又能不降低生产率一直是困扰开发人员的一个难题。o软件工业与传统工业相比,有一个特定就是其发展速度非常快。每年都会出现各种新技术并迅速流行起来,例如Java, linux, XML, HTML, SOAP, UML, J2EE, .NET, JSP, ASP, Flash,

    11、Web Service等等。许多公司必须跟从这种改变,这是因为n用户提出使用新技术的需求n新技术能够真正解决一些问题例如,XML解决异构系统间的数据交换n软件供应商停止对旧的技术提供支持Code Driven DevelopmentCode Driven DevelopmentCode Driven Developmento新技术能够使得一些公司获得一些切实的好处,但是人们必须面临的困境就是,他们必须快速跳跃前进快速跳跃前进,而且必须忍受前期投资失去价值忍受前期投资失去价值的现实,这无疑是非常痛苦的。情况更加复杂的是,新技术本身也在发生变化。它们也会不断推出不同的版本,而且并不能保证能完全做到

    12、向后兼容。软件供应商通常也只是对最近版本提供支持。o 现存的一些系统要么提供接口与新技术开发的系统连接提供接口与新技术开发的系统连接,要么转向新技术转向新技术。那些仍然使用旧技术的遗产遗产系统必然需要和使用新技术开发的系统进行互连。如果系统和某种技术紧密绑定,那么注定这个系统在跟随技术发展的道路上是步履沉重步履沉重的,通过模型驱动开发的方式可以使得系统足够地技术中立性,能够跟上技术前进的步伐。Code Driven Developmento3. 互操作性问题o软件系统很少能够孤立地存在,大多数都需要和其它系统进行通信。一个典型的例子就是,很多公司在他们的现存系统上构建了基于Web的新系的新系统

    13、;基于HTML, ASP, JSP等的Web应用程序需要从现存的后端系统中获取信息等。系统往往要使用多种技术多种技术来实现,他们之间也存在互操作的问题。现在往往在系统中使用组件,不同的组件使用各自最佳的技术来实现,他们之间也需要互操作。不同的工具对于元数据的管理均有自己的策略,这就给元数据的共享形成了障碍,也降低了不同软件的互操作性。通过模型驱动开发的能够应对这些互操作的需求。Code Driven Developmento4。文档问题o许多的开发人员总是认为编码才是他们的主要任务,文档可用性的支持可以延后。最终写文档成了强制的任务,而不是出于激励的目的,不是出于自愿的工作当然不能做好。这个是

    14、文档为什么质量总是不够高的原因之一。o能够检查文档质量的也只能是开发团队的人员,而他们自己却不喜欢写文档的工作,这也是文档总是不能得到更新的原因。每次代码改变之后必须手工地在一堆文档中找出设计中需要更改的地方,这是非常烦琐的工作。其实开发人员的这种想法是错误的,开发一个容易修改和便于将来维护的系统可以大大提高软件的质量。o如何能够保持文档和代码的同步,而又不额外增加很多工作量是个难以解决的问题RequirementSystem analysisDetail DesignCode Deployment acceptTestRequirement documentPIMPSMcodecodePIM

    15、 driven development Flexible implementation: platform changes Simpler and more effective maintenance Increased productivity: Automation; Increases reuse; Reduction of rework Updated documentation of the system. Ensures customers, designers and architects understanding.MDAabstract DesignRefinementMod

    16、el Driven DevelopmentComputation Independent ModelPlatform Independent ModelPlatform Specific ModelCode generationModeling LayerCIMPIMPSMCGModel Driven DevelopmentoMDA是以模型为中心的软件开发模式,将模型分为三类:平台独立模型(PIM)、平台相关模型(PSM)和代码。传统的开发过程也可能分了这三个部分,甚至有些开发工具也实现了到PSM到代码的自动变换,但MDA的创新之处在于把PIM到PSM的变换也自动化了,这样开发者只需要专注于建

    17、立平台独立的模型,PSM和代码让MDA工具自动生成就可以了。从两个方面提升了开发效率o首先,PIM开发者的工作量减少了,因为他不再需要设计和编写平台相关的细节,这些细节己经由定义变换的人考虑好了。在PSM和代码层次,需要写的代码也少了很多,因为大量的代码已经从自动生成了。o其次,开发者可以把注意力转移到PIM,这样就可以更关注如何解决所面对的业务问题。这样一来,系统就会更好地吻合用户的需求。用户获得的功能增多了,需要等待的时间却减少了。o在MDA中,可移植性是通过把开发焦点转移到PIM而获得的。因为PIM是跨平台的,同一个PIM可以被自动变换成多个不同平台上的PSM,在PIM层次指定的所有东西

    18、都是完全可移植的。 Model Driven DevelopmentModel Driven Developmeto为了解决互操作性问题,MDA不仅生成PSM,还生成PSM之间的桥接器桥接器。如果能够把一个PIM变换为两个不同平台上的PSM,那么也就有了桥接两个桥接两个PSM的全部的全部信息信息。开发者不仅知道一个PSM中的每个元素是从中的哪个PIM元素变换而来,而且还知道PIM中的这个元素对应于PSM中的哪个元素(traceability)。因此就可以推断出两个PIM中元素的对应关系。OMG 所定义的 MDA 模型抽象级别o计算无关模型 nCIM (Computation Independe

    19、nt Model):沟通domain expert, system requirement expert of design and implementationo平台无关模型nPIM (Platform Independent Model)o平台相关模型 nPSM (Platform Specific Model)计算无关模型 CIMo仅使用应用领域的概念和术语o在模型中不包括与任何计算平台相关的内容oref. Transformation From CIM to PIM Using Patterns and Archetypes.pdf计算无关模型 CIM计算无关模型 CIM计算无关模型

    20、CIM平台无关模型 (PIM)o比 CIM 要更具体一些o更接近于实现但并不依赖于特定的运行平台oref. From a UML Platform Independent Component Model to Platform Specific Component Models.pdf平台无关模型 (PIM)平台无关模型 (PIM)平台相关模型 (PSM)o比 PIM 更具体一些o更接近于具体实现o模型中也包含了特定运行平台的信息OMG-MDA模型驱动国际组织和相关标准MDA-OMG模型驱动国际组织和相关标准OMG-MDA模型驱动国际组织和相关标准oNote the industry vert

    21、icals MDA is not intended to be a general purpose model-to-code solution.The MDA LogoCWM (CommonWarehouseMetamodel公共仓库元模型)是OMG组织在数据仓库系统中定义了一套完整的元模型体系结构,用于数据仓库构建和应用的元数据建模。MDA的核心oMDA的核心概念均是OMG的一系列标准:统一建模语言UML,元对象设施MOF(meta object Facility),XML元数据交换XMI(XML metadata Interchange),公共数据仓库元模型CWM(Common Ware

    22、house metamodel)。MDA的各种核心标准组成了创建模型驱动的一致性系统纲要的基础,这个系统纲要完成了授权、发布和管理模型。oMDA is not a single specification, but a collection of related OMG specifications:nUnified Modeling Language (UML) 2.0oInfrastructureoSuperstructureoObject Constraint Language (OCL)oDiagram InterchangeoProfilesnMeta-Object Facility

    23、 (MOF)nXML Meta-Data Interchange (XMI)nCommon Warehouse Meta-model (CWM)nQuery View Transformation (QVT)What Comprises MDA?MDA的核心 自从UML1.3以后,UML规格书的主要结构一直沿用至今,主要包含四份说明文件,分别为: Superstructure定义13类UML图,以及组成这些图的所有元素。 Infrastructure在Superstructure说明文件里,定义一般开发人员使用的元素,而在 Infrastructure这份说明文件里,则针对这些元素抽象出更基础

    24、的元素,构成UML的基础平台。这样其他专家学者可以基于这样的基础平台,设计出UML方言(UML dialect)。Object Constraint Language (OCL) 不同于UML主体的图示符号,OCL由简单的文本数字符号组成,用来表达变量、约束或条件等比图示更小,且不适合用图示来表达的元素。XMIoXMI:oXML Metadata Interchange MDA开发生命周期 图一模型驱动开发途径基于MDA的开发流程基于MDA的开发流程50类图 (Class Diagram) 来表达系统静态结构51时序图 (Sequence Diagram) 系统初始化52通信图 (Communication Diagram) o面向过程的方法:过程相互调用,实现系统功能o面向对象的方法:系统中所有的对象相互协作,完成了系统的功能53模型转换转换定义转换定义54模型转换o把一个模型转换成同类型的另一个模型o在不同的抽象层次间转换模型o把一种类型的模型转换成另一种类型的模型o在现有的转换基础上进行扩展转换工具转换工具ModelModel转换定义转换定义Thanks

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第三章-模型驱动开发概述.课件.ppt
    链接地址:https://www.163wenku.com/p-2984176.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库