南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件

上传人:M****1 文档编号:567542446 上传时间:2024-07-21 格式:PPT 页数:101 大小:287KB
返回 下载 相关 举报
南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件_第1页
第1页 / 共101页
南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件_第2页
第2页 / 共101页
南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件_第3页
第3页 / 共101页
南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件_第4页
第4页 / 共101页
南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件_第5页
第5页 / 共101页
点击查看更多>>
资源描述

《南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件》由会员分享,可在线阅读,更多相关《南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件(101页珍藏版)》请在金锄头文库上搜索。

1、Object-Oriented Software Engineering(Unified Modeling Language, UML) 李 宣 东南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件Object-Oriented Paradigm面向对象“面向对象”是一种认识客观世界的世界观,这种世界观将客观世界看成是有许多不同种类的对象构成的,每个对象有自己的内部状态和运动规律,不同对象之间的相互联系、相互作用就构成了完整的客观世界。南京大学计算机科学与技术系ObjectOrientedSoft

2、wareEngineeringUnifiedModelingLanguageUML课件Object-Oriented Paradigm面向对象“面向对象”是从结构组织的角度去模拟客观世界的一种方法,这种方法的基本着眼点是构成客观世界的那些成分-对象。用“面向对象”的观点去认识客观世界,用“面向对象”的方法去模拟客观世界,这就构成了“面向对象”的完整含义。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件Object-Oriented Concepts对象(Objects) 对象是现实世界中个体或事

3、物的抽象表示,是其属性(Attributes)和相关操作(Operations, Methods)的封装。属性表示对象的性质,属性值规定了对象所有可能的状态。对象的操作是指该对象可以展现的外部服务。对象之间的通讯通过消息(Messages)传递进行。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件Object-Oriented Concepts类和实例(Classes and instances) 类是某些对象的共同特性的表示,它描述了这些对象内部是如何构造的。相同类的对象在它们的操作和它们的信

4、息结构两个方面都有相同的定义。 在面向对象系统中,每个对象都属于一个类。属于某个特定类的对象称为该类的实例。因此,常常把对象和实例当作同义词。实例是从某类创建的一个对象。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件Object-Oriented Concepts继承(Inheritance) 如果类B继承类A,那么类A中描述的操作和信息结构将成为类B的一部分。 借助继承,可以表示类之间的类似性,并且在其他类能继承的一个类中描述这些相似性。因此,就能够复用公共的描述。继承常常被提倡为软件工业界

5、中关于复用的一个核心思想。继承还有利于软件维护。 通过抽取和共享公共特性就能够通用化一些类,并且把它们放在继承层次的更高位置。同样,如果希望增加新类,可以寻找这样一个类,它已经提供了适用于该新类的某些操作和信息结构。然后,让新类继承这个类,只需增加该新类所独有的那些内容。然后,使这个类专用化。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件Constructing Object ModelsIdentifying classes and objectsSpecifying attributesD

6、efining operationsFinalizing the object definition南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件Object-Oriented Process ModelPlanning RiskAnalysis CustomerCommunication CustomerEvaluation Engineering,Construction & ReleaseIdentifycandidateclassesConstructnth iterationof s

7、ystemLook upclassesin libraryPut new classesin libraryExtractclassesif availableEngineerclassesif unavailable analysis design programming testing南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件Object-Oriented Modeling 面向对象思想比较自然地模拟了人类认识客观世界的方式,面向对象的分析和设计应该从建模开始。构造模型通常出于以下几个

8、目地:在着手解决一个复杂问题之前,对解决方案进行检测;用于同客户或其他相关人员进行交流;加强视觉效果;对复杂问题进行简化。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件Object-Oriented Modeling模型是对事物的一种抽象,人们常常在正式建造实物之前,首先建立一个简化的模型,以便更透彻地了解它的本质,抓住问题的要害;在模型中,人们总是剔除那些与问题无关的、非本质的东西,从而使模型与真实的实体相比更加简单、易于把握;南京大学计算机科学与技术系ObjectOrientedSoftw

9、areEngineeringUnifiedModelingLanguageUML课件Object-Oriented Modeling在建造一个复杂系统时,开发者必须从多种不同的角度来抽象系统,使用准确的符号来构造模型,然后检查这些模型是否符合系统的需求,并逐步添加细节,从而将这些模型转化成实现方案。建模语言是面向对象建模中的一个非常关键的因素。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件Unified Modeling Language (UML)UML的设计目标:运用面向对象概念来构造系统

10、模型建立起从概念模型直至可执行体之间明显的对应关系着眼于那些有重大影响的问题创建一种对人和机器都适用的建模语言南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件Unified Modeling Language (UML)UML概要UML由OMG与1997年11月批准为标准建模语言。UML建立在当今国际上最有代表性的三种面向对象方法(Booch方法,OMT方法,OOSE方法)的基础之上。UML是一种建模语言而不是一种方法,UML本身是独立于过程的。南京大学计算机科学与技术系ObjectOrient

11、edSoftwareEngineeringUnifiedModelingLanguageUML课件Unified Modeling Language (UML) UML为人们提供了从不同的角度去观察和展示系统的各种特征的一种标准表达方式。在UML中,从任何一个角度对系统所作的抽象都可能需要用几种模型图来描述,而这些来自不同角度的模型图最终组成了系统的完整模型。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件Unified Modeling Language (UML) 一般而言,我们可以从以下几

12、种常用的视角来描述一个系统:系统的使用实例:从系统外部的操作者的角度描述系统的功能。系统的逻辑结构:描述系统内部的静态结构和动态行为,即从内部描述如何设计实现系统功能。系统的构成:描述系统由哪些程序构件所组成。系统的并发性:描述系统的并发性,强调并发系统中存在的各种通信和同步问题。系统的配置:描述系统的软件和各种硬件设备之间的配置关系。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件Unified Modeling Language (UML)UML模型图(5类,10种):用例图静态图(类图,对

13、象图,包图)行为图(状态图,活动图)交互图(顺序图,合作图)实现图(构件图,配置图)南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件Unified Modeling Language (UML)UML语义元-元模型: 元模型的基础体系结构,定义一种说明元模型的语言元模型: 元-元模型的一个实例,定义一种说明模型的语言模型: 元模型的一个实例,定义一种语言来描述信息领域用户对象: 模型的一个实例,定义一个特定的领域南京大学计算机科学与技术系ObjectOrientedSoftwareEnginee

14、ringUnifiedModelingLanguageUML课件Unified Modeling Language (UML)UML主要文件:UML概要(UML Summary)UML语义(UML Semantics)UML表示法指南(UML Notation Guide)对象约束语言规约(Object Contraint language Specification):该文件定义并介绍了一种对象约束语言(OCL),其用途是用来说明在图形化的系统模型中不能充分表达的建模信息。它是一种形式化语言。uml/index.jtmpl南京大学计算机科学与技术系ObjectOrientedSoftware

15、EngineeringUnifiedModelingLanguageUML课件UML Use Case Diagrams(用例图) 从本质上将,一个用例是用户与计算机之间为达到某个目的的一次典型交互作用:用例描述了用户提出的一些可见的需求;用例可大可小;用例对应一个具体的用户目标南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Use Case Diagrams(用例图) 用例图描述系统外部的执行者与系统的用例之间的某种联系。所谓用例是指对系统提供的功能(或称系统的用途)的一种描述;执行者

16、是那些可能使用这些用例的人或外部系统;用例和执行者之间的联系描述了“谁使用哪个用例”。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Use Case Diagrams(用例图)用例图着重于从系统外部执行者的角度来描述系统需要提供哪些功能,并且指明了这些功能的执行者是谁;用例图在UML方法中占有十分重要的地位,人们甚至称UML是一种用例图驱动的开发方法。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguag

17、eUML课件UML Use Case Diagrams(用例图)用例图中的图符: 用例 执行者 系统:用于界定系统功能范围,描述该系统功能的用例都置于其中,而描述外部实体的执行者都置于其外。 关联:连接执行者和用例,表示执行者所代表的系统外部实体与该用例所描述的系统需求有关。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Use Case Diagrams(用例图)用例图中的图符: 使用:由用例A连向用例B,表示用例A中使用了用例B中的行为或功能。 扩展:由用例A连向用例B,表示用例B描

18、述了一项基本需求,而用例A则描述了该基本需求的特殊情况。 注释体:对UML实体进行文字描述 注释连接:将注释体与要描述的实体连接,说明该注释体是针对该实体所进行的描述。使用扩展南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Use Case Diagrams(用例图)设置边界风险分析交易估计进行交易超越边界更新帐目评价贸易经理营销人员记帐系统销售人员使用使用扩展南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLan

19、guageUML课件UML Use Case Diagrams(用例图)用例模型的获取:获取执行者获取用例南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Use Case Diagrams(用例图)获取执行者:谁使用系统的主要功能(主要使用者)?谁需要系统支持他们的日常工作?谁来维护、管理系统使其能正常工作(辅助使用者)?系统需要控制哪些硬件?系统需要与其他哪些系统交互?对系统产生的结果感兴趣的是哪些人?南京大学计算机科学与技术系ObjectOrientedSoftwareEnginee

20、ringUnifiedModelingLanguageUML课件UML Use Case Diagrams(用例图)获取用例:执行者要求系统提供哪些功能?执行者需要读、产生、删除、修改或存储系统中的信息有哪些类型?必须提醒执行者的系统事件有哪些?执行者必须提醒系统事件有哪些?怎样把这些事件表示成用例中的功能?南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Class Diagrams(类图)在面向对象的建模技术中,类、对象和它们之间的关系是最基本的建模元素。对于一个想要描述的系统,其类模

21、型、对象模型以及它们之间的关系揭示了系统的结构。类图描述了系统中的类及其相互之间的各种关系,其本质反映了系统中包含的各种对象的类型以及对象间的各种静态关系(关联,子类型)。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Class Diagrams(类图)类图中的图符: 类:表示一个类,其中第一栏是类的 名,第二栏是类的属性,第三栏是类的操作。 包:包是一种分组机制,表示一个类 图集合。 关联:用于表示类的对象之间的关系。其特殊形式有组成关联和聚集关联。OperationsAttribu

22、tesClassPackage南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Class Diagrams(类图)类图中的图符: 聚集关联:用于表示类的对象之间的关系是整体与部分的关系。 组成关联:用于表示类的对象之间的关系:整体拥有各部分,部分与整体共存,如整体不存在了,部分也会随之消失。 泛化关联:泛化关系(继承关系)定义了类和包间的一般元素和特殊元素之间的分类关系。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModeli

23、ngLanguageUML课件UML Class Diagrams(类图)类图中的图符: 依赖关系:有两个类或包元素X、Y,修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖于元素X。 对象:类的一个实例。 链接:用于表示对象间的关联关系的一个实例。ValuesObject南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Class Diagrams(类图)订单DateReceivedisPrepaidnumber:Stringprce:MoneyDispatch()cl

24、ose()订单项Quantity:Integerprice:MoneyisSatisfied:Boolean1*项客户NameaddressCreditRating():String团体客户ContactNamecreditRatingcreditLimitRemind()billforMonth(Intrger)雇员产品个人客户CreditCard#creditRating()=“poor”销售代表1*0.11*南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Object Diagra

25、ms(对象图)对象图对象图是类图的一种变形。除了在对象名下面要加下划线以外,对象图中所使用的符号与类图基本相同。对象图是类图的一种实例化。一张对象图表示的是与其对应的类图的一个具体实例,即系统在某一时期或者某一特定时刻可能存在的具体对象实例以及它们相互之间的具体关系。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Object Diagrams(对象图)作者计算机名字:String内存:Ineger名字:String年龄:Integer0.1Uses1.*小王:作者小王的工作PC:计算机

26、名字 = “王小影”年龄 = 32小王的工作PC:计算机名字 = “Compaq X”内存 = 32名字 = “Dell486”内存 = 64类图对象图南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Object Diagrams(对象图)对象图并不象类图那样具有重要的地位,但是利用它可以帮助我们通过具体的实例分析,更具体直观地了解复杂系统类图的丰富内涵。对象图还常常被用作合作图的一部分,用以展示一组对象实例之间的动态协作关系。南京大学计算机科学与技术系ObjectOrientedSof

27、twareEngineeringUnifiedModelingLanguageUML课件UML Packages (包图)包是类的集合。包图所显示的是类的包以及这些包之间的依赖关系。如果两个包中的任意两个类之间存在依赖关系,则这两个包之间存在依赖关系。包的依赖是不传递的。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Packages(包图)订单获取界面订单获取应用AWT邮件发送清单界面邮件发送清单应用订单顾客南京大学计算机科学与技术系ObjectOrientedSoftwareEngi

28、neeringUnifiedModelingLanguageUML课件UML Packages (包图)何时使用包图:在大项目中,包图是一种重要工具(有专家建议,只要你不能将整个系统的类图压缩到一张A4纸上,你就应该使用包图);依赖产生耦合,应该尽量将依赖性减少到最低程度;包的概念对测试也是特别有用的。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Statechart Diagrams(状态图)状态图状态图是对类的一种补充描述,它展示了此类对象所具有的可能的状态以及某些事件发生时其状态

29、的转移情况。在状态图中,状态由圆角矩形表示。状态的改变称作转移,状态转移由箭头表示,箭头旁可以标出转移发生的条件。状态转移可以伴随有某个动作,它表明当转移发生时系统要做什么。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Statechart Diagrams(状态图)下降状态在第一层上升状态向第一层下降空闲状态上升到达到达上升超时下降到达第一层南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML

30、课件UML Sequence Diagrams (顺序图)顺序图顺序图描述了对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。顺序图由一组对象构成,每个对象分别带有一条竖线,称作对象的生命线,它代表时间轴,时间沿竖线向下延伸。顺序图描述了这些对象随着时间的推移相互之间交换消息的过程。消息用从一条垂直的对象生命线指向另一个对象的生命线的水平箭头表示。图中还可以根据需要增加有关时间的说明和其他注释。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Sequence Diagrams (

31、顺序图):计算机:打印服务程序:打印队列:打印机打印文件打印文件打印机空闲保存文件打印机忙南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Collaboration Diagrams(合作图)合作图与顺序图作用相同,合作图也是用来描述系统中对象之间的动态协作关系。合作图侧重于描述各个对象之间存在的消息收发关系(交互关系),而不专门突出这些消息发送的时间顺序。在合作图中,对象同样是用一个对象图符来表示,箭头表示消息发送的方向,而消息执行的顺序则由消息的编号来表明。南京大学计算机科学与技术系

32、ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Collaboration Diagrams(合作图):计算机:打印队列:打印服务程序:打印机1. 打印文件 3. 保存文件打印机忙打印文件打印机空闲南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Collaboration Diagrams(合作图)合作图的布局方法能更清楚地表示出对象之间静态的连接关系。顺序图突出执行的时序,能更方便地看出事情发生的次序。如

33、果要描述在一个用例中的几个对象协同工作的行为,交互图是一种有力的工具。交互图擅长显示对象之间的合作关系,尽管它并不对这些对象的行为进行精确的定义。如果想要描述跨越多个用例的单个对象的行为,应当使用状态图;如果想要描述跨越多个用例或多个线程的多个对象的复杂行为,则需考虑使用活动图。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Activity Diagrams(活动图)活动图活动图描述系统中各种活动的执行顺序,通常用于描述一个操作中所要进行的各项活动的执行流程。同时,它也常被用来描述一个

34、用例的处理流程,或者某种交互流程。活动图由一些活动组成,图中同时包括了对这些活动的说明。当一个活动执行完毕之后,控制将沿着控制转移箭头转向下一个活动。活动图中还可以方便地描述控制转移的条件以及并行执行等要求。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Activity Diagrams(活动图)加水到容器中将咖啡放到过滤器中点燃咖啡炉取出咖啡杯把过滤器放到咖啡炉上冲调咖啡倒咖啡找饮料取一听可口可乐喝饮料人找到可口可乐没有可口可乐没有咖啡找到咖啡熄灭咖啡炉南京大学计算机科学与技术系Ob

35、jectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Activity Diagrams(活动图)活动图最适合支持描述并行行为,这使之成为支持工作流建模的最好工具。活动图最大的缺点是很难清楚地描述动作与对象之间的关系。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Activity Diagrams(活动图)对于以下情况可以使用活动图:(1)分析用例;(2)理解牵涉多个用例的工作流;(3)处理多线程应用。在下列情况下

36、,一般不要使用活动图:(1)显示对象间合作;(2)显示对象在其生命周期内的运转情况。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Component Diagrams(构件图)构件图构件图描述软件构件以及它们之间的依赖关系,从而便于人们分析和发现当修改某个构件时可能对那些构件产生影响,以便对它们做相应的修改或更新。构件可以是源代码构件、二进制目标码构件、可执行构件或文档构件。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedMod

37、elingLanguageUML课件UML Component Diagrams(构件图) Whnd.cpp: 窗口处理器 Graphic.dll:图形库 Comhnd.cpp: 命令处理器 Main.cpp:主类 Whnd.obj: 窗口处理器 Comhnd.obj: 命令处理器 Main.obj:主类 client.exe: 客户程序南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Deployment Diagrams(配置图)配置图配置图描述系统中硬件和软件的物理配置情况和系统体系

38、结构。在配置图中,用结点表示实际的物理设备,如计算机和各种外部设备等,并根据它们之间的连接关系,将相应的结点连接起来,并说明其连接方式。在结点里面,说明分配给该结点上运行的可执行构件或对象,从而说明哪些软件单元被分配在哪些结点上运行。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML Deployment Diagrams(配置图)客户A:个人电脑PC客户B:个人电脑PC数据库服务器:VAX服务器:02TCP/IP协议TCP/IP协议DecNet协议南京大学计算机科学与技术系ObjectOr

39、ientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML支撑环境Rational Rose基于UML的模型驱动的软件开发环境全面支持团队整体合作的开发形式集成了最新软件开发技术和思想南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML的扩展实时模型 UML-RT可执行模型企业计算 Enterprise Distributed Object Computing (EDOC) Enterprise Application Integratio

40、n (EAI)软件过程 Rational Unified Process (RUP)其他 Standard for Data Warehousing CORBA maps to UML XMI format for the exchange of UML models in text format 南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML框架下的软件工程我们已经有了统一的建模语言UML我们正在拥有统一软件过程(RUP?)下一步是什么?A Software Component Mar

41、ketplaceQuality from the BeginningGive Soul to Software ProcessA Complete UML Based Software Platform Ivar Jacobson南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML时间表1997 - UML version 1.0, version 1.11998 - UML version 1.32000 - UML version 1.4 ?2002 - UML version 2.0 ?

42、2004 - 一个稳定完善的UML version ?南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML的国际会议 98 - The First International Workshop on The Unified Modeling Language, 3 - 4 June, 1998, Mulhouse, France 99 - The Second International Conference on The Unified Modeling Language, 28 - 30

43、October, 1999, Fort Collins, Colorado, USA 2000 - The Third International Conference on the Unified Modeling Language, 2 - 6 October, 2000, York, UK 2001 - The Fourth International Conference on the Unified Modeling Language, 1 - 5 October, 2001, Toronto, Canada 2002 - The Fifth International Confer

44、ence on the Unified Modeling Language, 30 Sept. 4 Oct., 2002, Dresden, Germany. 2003 - The Sixth International Conference on the Unified Modeling Language, 20 24, Oct., 2003, USA. Lecture Notes in Computer Science, Springer南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML

45、当前的研究热点当前围绕UML的研究工作集中在两个方面:使得UML更加精确为UML提供有效的工具支持南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件模型驱动的体系结构Model Driven Architecture (MDA) 南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件OMG (Object Management Group)OMG是世界上最大的计算机工业联盟,于1989年4月有8个公司发起

46、,目前有800多家成员。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件Who Are OMG?AT&TBEABorlandBoeingCACitigroupCompaqEricssonFordFujitsuGlaxo SmithKlineHewlett PackardHitachiHyperionIBMIONAio SoftwareKabiraKennedy CarterJohn DeereMicrosoftMITREMSC.SoftwareNASANECNetGenicsNTTOASISOr

47、aclePfizerRationalSAGA SoftwareSAPSAS InstituteSecantSiemensSprintSunUnisysVertel南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件异构-无处不在Programming languages3 million COBOL programmers1.6 million VB programmers1.1 million C/C+ programmersOperating systemsUnix, MVS, VMS, Mac

48、OS, Windows (all 8!), PalmOSWindows 3.1: its still out there!Embedded devices (mobile, set-top, etc.)NetworksEthernet, ATM, IP, SS7, Firewire, USBBluetooth, 802.11b, HomeRF南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件OMG的技术目标问题:分布异构限制了互操作,同一功能用多种语言在多种环境下重复实现。目标:使得基于对象的软件

49、在分布异构环境下具有良好的可重用性、可移植性和互操作性,从而能够在由多种主流硬件平台上运行多种操作系统构成的异构分布环境中,方便地建立异构分布应用系统。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件如何集成?不存在统一的硬件平台不存在统一的操作系统不存在统一的网络协议不存在统一的应用模式 必须通过接口和互操作达到集成。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件OMG的任务The OMGs

50、mission is to help computer users solve integration problems by supplying open, vendor-neutral interoperability specifications.南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件OMG的产品Common Object Request Broker ArchitectureCORBA remains the only language- and platform-neutra

51、l interoperability standardUnified Modeling LanguageUMLTM remains the worlds only standardized modeling languageCommon Warehouse MetamodelCWMTM, the integration of the last two data warehousing initiativesMeta-Object FacilityMOFTM, the repository standardXML Metadata InterchangeXMITM, the XML-UML st

52、andard南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件Middleware(中间件) 中间件是软件领域近十年来发展起来的一种新技术,其泛指位于操作系统与应用软件之间、能够屏蔽操作系统和网络协议的差异、为异构系统之间提供通讯服务的软件。 南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件中间件南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifie

53、dModelingLanguageUML课件中间件 中间件屏蔽了底层系统软件(包括操作系统、网络、数据库管理系统等)的异构性和复杂性,通过一个简单而统一的开发环境,减少程序设计的复杂性并提高程序的可移植性,使得开发人员将注意力集中在自己的业务上,大大减少了技术上的负担。中间件带给应用系统的,不只是开发的简便和开发周期的缩短,也减少了系统的维护、运行和管理的工作量,从而减少了系统总体费用的投入。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件中间件目前的主流中间件可以分为五类:数据访问中间件远程过

54、程调用中间件事务中间件消息中间件面向对象中间件南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件面向对象中间件 面向对象的中间件是对象技术和分布式计算发展的产物,它提供一种通讯机制,透明地在异构的分布计算环境中传递对象请求。OMG的CORBA微软的COMSun公司基于EJB的J2EE南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件面向对象中间件 面向对象中间件的异构性和开放性各有不同:适用于异构环境

55、、开放的CORBA是Internet与企业应用事实上的工业标准;特定于Windows平台、专有的COM则是桌面系统的首选;基于EJB的J2EE则兼具二者之优势,J2EE是一种利用Java2平台来简化企业解决方案的开发、部署和管理相关复杂问题的体系结构,已经被许多从事电子商务的中间件厂商所采纳。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件中间件没有消除异构由于一个中间件不能满足所有用户的要求,导致多种中间件并存又无法统一,于是为解决异构问题提出的中间件本身产生异构。中间件似乎“提升”了异构而没

56、有消除异构。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件中间件没有消除异构 由于难以形成统一的标准,中间件的不断发展将使得新旧系统之间的集成或系统的演化面临不同的实现技术,从而使得如何在保障已有投资的条件下驱动整个系统的技术升级成为我们迫切需要解决的问题。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件模型驱动的体系结构MDA(Model Driven Architecture)MDA is

57、OMGs next step in solving integration problems.南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件MDA的主要思想MDA的主要思想是分离业务功能分析与设计和实现技术与平台之间紧耦合的关系,从而将技术与平台变化对系统的影响降低到最小程度。MDA极大地加强了应用模型与领域模型在整个软件生命周期中的复用。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件MDA的

58、主要思想与实现技术和平台无关、描述业务需求的功能模型(Platform-Independent Model, PIM)与具体实现技术和平台相关的应用模型(Platform-Specific Model, PSM)MDA将PIM抽象出来,针对不同实现技术与平台制订多个映射规则,然后通过这些映射规则及辅助工具将PIM转换成PSM,再将PSM不断求精直至形成最后代码。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件MDA的主要思想PIMMappingsPSMCORBA specificplatform

59、 modelsPSMEJB specificplatform modelsPSMXML specificplatform modelsPSM.NET specificplatform modelsPSMWEB specificplatform modelsCORBA/CCMJ2EE/EJBSOAP/XMLDCOM/.NETWEB/WSDL南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件Building an MDA ApplicationStart with a Platform-Indepen

60、dent Model (PIM) representing business functionality and behavior, undistorted by technology details.Platform-IndependentModelA Detailed Model, stating Pre- and Post-Conditions in OCL, and Semantics in Action Language南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件Generatin

61、g Platform-Specific ModelPlatform-IndependentModelMap a PIM to Specific Middleware Technologies via OMG Standard MappingsMDA tool applies a standard mapping to generate Platform-Specific Model (PSM) from the PIM. Code is partially automatic, partially hand-written.CORBA Model南京大学计算机科学与技术系ObjectOrien

62、tedSoftwareEngineeringUnifiedModelingLanguageUML课件Mapping to Multiple Deployment TechnologiesPlatform-IndependentModelCORBA ModelMDA tool applies an standard mapping to generate Platform-Specific Model (PSM) from the PIM. Code is partially automatic, partially hand-written.Java/EJBModelXML/SOAPModel

63、OtherModelMap a PIM to Many Middleware Technologies via OMG Standard Mappings南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件Generating ImplementationsPlatform-IndependentModelCORBA ModelMDA Tool generates all or most of the implementation code for deployment technology sel

64、ected by the developer.Java/EJBModelCORBAXML/SOAPModelJava/EJBXML/SOAPOtherOtherModelMap PSM to application interfaces, code, GUI descriptors, SQL queries, etc.南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件Integrating Legacy & COTSPlatform-IndependentModelLegacyAppMDA Too

65、ls for reverse engineering automate discovery of models for re-integration on new platforms.COTSAppOtherOtherModelReverse-engineering existing application into a model and redeploy.南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件Automating BridgesCORBA ModelXML/SOAPModelPla

66、tform-IndependentModelCORBA SystemXML/SOAPSystemInteropBridgeMDA Tools combine application and platform knowledge to generate bridgesBridge generation is simplified by common application models, simplifying creation of integrated applications both within and across enterprises.南京大学计算机科学与技术系ObjectOri

67、entedSoftwareEngineeringUnifiedModelingLanguageUML课件MDA带来的好处增强软件复用性增强软件可移植性提高软件开发效率、降低成本降低软件维护成本推动软件自动化进程南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件MDA的构成南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件MDA的核心以下标准或规范构成了MDA的核心:统一建模语言(Uniform Mod

68、eling Language, UML,建模工具)元对象设施(Mete-Object Facility, MOF,标准的建模与交换结构)公共仓库元模型(Common Warehouse Metamodel , CWM,数据仓库的标准)基于XML的元数据交换(XML Metadata Interchange , XMI,信息交换的标准格式)等。此外,MDA还将标准化少数通用领域的PIM、基于特定于中间件标准的PSM、以及PIM与PSM之间的映射规则,为设计到代码的自动生成提供基础。南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModel

69、ingLanguageUML课件UML 2.0MDA的需求:精确的语义可执行模型自动代码生成更强的描述能力针对特定领域的可扩充性南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件UML ProfilesA UML pro a set of extensions to UML using the built-in extension facilities of UML, stereotypes and tagged values. 南京大学计算机科学与技术系ObjectOrientedSoftwar

70、eEngineeringUnifiedModelingLanguageUML课件MOF (Meta Object Facility)MOF provides the standard modeling and interchange constructs that are used in MDA.Other standard OMG models, including UML and CWN, are defined in terms of MOF constructs.南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingL

71、anguageUML课件CWM(Common Warehouse Metamodel)CWM is the OMG data warehouse standard.CWM covers the full life cycle of designing, building and managing data warehouse applications and supports management of the life cycle.南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件XMI (XM

72、L Metadata Interchange)XMI is a standard interchange mechanism used between various tools, repositories and middleware.XMI can be used to automatically produce XML DTDs (and soon XML Schemas) from UML and MOF models.南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件MDA的发展进程Ma

73、jor direction agreed March 01; overall architecture adopted September 01.UML 1.4 complete; 2.0 in process.Mappings (“profiles”) underway:EDOC (adopted)CORBA (adopted)EAI (in process)EJB (adopted by JCP)SOAP/XML (in process).Net (to be started)南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedMode

74、lingLanguageUML课件MDA的发展进程More importantly, vertical market groups are thriving on MDA approach:Electronic CommerceFinancial ServicesHealthcareLife Sciences ResearchManufacturingSpace & Ground SystemsTelecommunications南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件模型驱动的工程Mo

75、del Driven EngineeringMDE is wider in scope than MDA: MDE = MDA + process南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件基于MDA的UML模型转换 基于MDA的软件开发过程中需要解决的关键技术问题是各种UML模型间的转换:PIM to PIMPIM to PSMPSM to PSMPSM to PIM南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingL

76、anguageUML课件基于MDA的UML模型转换南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件基于MDA的UML模型转换To implement the mapping, one needs to know the metamodels of input and output models and their mapping rules.UML profiles have an important role to play in MDA.南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件Mapping PIM to J2EE南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件MDA Information Page.omg.org/mda/南京大学计算机科学与技术系ObjectOrientedSoftwareEngineeringUnifiedModelingLanguageUML课件

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号