面向对象软件工程标准建模语言UML课件_第1页
面向对象软件工程标准建模语言UML课件_第2页
面向对象软件工程标准建模语言UML课件_第3页
面向对象软件工程标准建模语言UML课件_第4页
面向对象软件工程标准建模语言UML课件_第5页
已阅读5页,还剩205页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象软件工程标准建模语言UML面向对象软件工程标准建模语言UML1面向对象软件工程面向对象“面向对象”是一种认识客观世界的世界观,这种世界观将客观世界看成是有许多不同种类的对象构成的,每个对象有自己的内部状态和运动规律,不同对象之间的相互联系、相互作用就构成了完整的客观世界。面向对象软件工程面向对象2面向对象软件工程面向对象“面向对象”是从结构组织的角度去模拟客观世界的一种方法,这种方法的基本着眼点是构成客观世界的那些成分对象。用“面向对象”的观点去认识客观世界,用“面向对象”的方法去模拟客观世界,这就构成了“面向对象”的完整含义。面向对象软件工程面向对象3面向对象软件工程面向对象概念对象对象是现实世界中个体或事物的抽象表示,是其属性和相关操作的封装。属性表示对象的性质,属性值规定了对象所有可能的状态。对象的操作是指该对象可以展现的外部服务。面向对象软件工程面向对象概念4面向对象软件工程面向对象概念类和实例类是某些对象的共同特性的表示,它描述了这些对象内部是如何构造的。相同类的对象在它们的操作和它们的信息结构两个方面都有相同的定义。在面向对象系统中,每个对象都属于一个类。属于某个特定类的对象称为该类的实例。因此,常常把对象和实例当作同义词。实例是从某类创建的一个对象。面向对象软件工程面向对象概念5面向对象软件工程面向对象概念继承

如果类B继承类A,那么类A中描述的操作和信息结构将成为类B的一部分。借助继承,可以表示类之间的类似性,并且在其他类能继承的一个类中描述这些相似性。因此,就能够复用公共的描述。继承常常被提倡为软件工业界中关于复用的一个核心思想。继承还有利于软件维护。通过抽取和共享公共特性就能够通用化一些类,并且把它们放在继承层次的更高位置。同样,如果希望增加新类,可以寻找这样一个类,它已经提供了适用于该新类的某些操作和信息结构。然后,让新类继承这个类,只需增加该新类所独有的那些内容。然后,使这个类专用化。面向对象软件工程面向对象概念6建立对象模型Identifyingclassesandobjects

(识别对象和类)Specifyingattributes

(说明对象属性)Definingoperations(定义对象操作)Finalizingtheobjectdefinition(最终确定对象定义)建立对象模型Identifyingclassesand7面向对象的过程模型PlanningRiskAnalysisCustomerCommunicationCustomerEvaluationEngineering,Construction&ReleaseIdentifycandidateclassesConstructnthiterationofsystemLookupclassesinlibraryPutnewclassesinlibraryExtractclassesifavailableEngineerclassesifunavailableanalysisdesignprogrammingtesting面向对象的过程模型PlanningRiskC8面向对象软件工程面向对象建模

面向对象思想比较自然地模拟了人类认识客观世界的方式,面向对象的分析和设计应该从建模开始。构造模型通常出于以下几个目地:在着手解决一个复杂问题之前,对解决方案进行检测;用于同客户或其他相关人员进行交流;加强视觉效果;对复杂问题进行简化。面向对象软件工程面向对象建模9面向对象软件工程面向对象建模模型是对事物的一种抽象,人们常常在正式建造实物之前,首先建立一个简化的模型,以便更透彻地了解它的本质,抓住问题的要害;在模型中,人们总是剔除那些与问题无关的、非本质的东西,从而使模型与真实的实体相比更加简单、易于把握;面向对象软件工程面向对象建模10面向对象软件工程面向对象建模在建造一个复杂系统时,开发者必须从多种不同的角度来抽象系统,使用准确的符号来构造模型,然后检查这些模型是否符合系统的需求,并逐步添加细节,从而将这些模型转化成实现方案。建模语言是面向对象建模中的一个非常关键的因素。面向对象软件工程面向对象建模11标准建模语言UMLUML的设计目标:运用面向对象概念来构造系统模型建立起从概念模型直至可执行体之间明显的对应关系着眼于那些有重大影响的问题创建一种对人和机器都适用的建模语言标准建模语言UMLUML的设计目标:12标准建模语言UMLUML概要UML由OMG与1997年11月批准为标准建模语言。UML建立在当今国际上最有代表性的三种面向对象方法(Booch方法,OMT方法,OOSE方法)的基础之上。UML是一种建模语言而不是一种方法,UML本身是独立于过程的。标准建模语言UMLUML概要13标准建模语言UMLUML为人们提供了从不同的角度去观察和展示系统的各种特征的一种标准表达方式。在UML中,从任何一个角度对系统所作的抽象都可能需要用几种模型图来描述,而这些来自不同角度的模型图最终组成了系统的完整模型。标准建模语言UMLUML为人们提供了从14标准建模语言UML一般而言,我们可以从以下几种常用的视角来描述一个系统:系统的使用实例:从系统外部的操作者的角度描述系统的功能。系统的逻辑结构:描述系统内部的静态结构和动态行为,即从内部描述如何设计实现系统功能。系统的构成:描述系统由哪些程序构件所组成。系统的并发性:描述系统的并发性,强调并发系统中存在的各种通信和同步问题。系统的配置:描述系统的软件和各种硬件设备之间的配置关系。标准建模语言UML一般而言,我们可以15标准建模语言UMLUML模型图(5类,10种):用例图静态图(类图,对象图,包图)行为图(状态图,活动图)交互图(顺序图,合作图)实现图(构件图,配置图)标准建模语言UMLUML模型图(5类,10种):16标准建模语言UMLUML语义元-元模型:元模型的基础体系结构,定义一种说明元模型的语言元模型:元-元模型的一个实例,定义一种说明模型的语言模型:元模型的一个实例,定义一种语言来描述信息领域用户对象:模型的一个实例,定义一个特定的领域标准建模语言UMLUML语义17标准建模语言UMLUML主要文件:UML概要(UMLSummary)UML语义(UMLSemantics)UML表示法指南(UMLNotationGuide)对象约束语言规约(ObjectContraintlanguageSpecification):该文件定义并介绍了一种对象约束语言(OCL),其用途是用来说明在图形化的系统模型中不能充分表达的建模信息。它是一种形式化语言。/uml/index.jtmpl标准建模语言UMLUML主要文件:18标准建模语言UML(用例图)从本质上将,一个用例是用户与计算机之间为达到某个目的的一次典型交互作用:用例描述了用户提出的一些可见的需求;用例可大可小;用例对应一个具体的用户目标标准建模语言UML(用例图)从本质上19标准建模语言UML(用例图)用例图描述系统外部的执行者与系统的用例之间的某种联系。所谓用例是指对系统提供的功能(或称系统的用途)的一种描述;执行者是那些可能使用这些用例的人或外部系统;用例和执行者之间的联系描述了“谁使用哪个用例”。标准建模语言UML(用例图)用例图描20标准建模语言UML(用例图)用例图着重于从系统外部执行者的角度来描述系统需要提供哪些功能,并且指明了这些功能的执行者是谁;用例图在UML方法中占有十分重要的地位,人们甚至称UML是一种用例图驱动的开发方法。标准建模语言UML(用例图)用例图着重于从系统外部执行者的21标准建模语言UML(用例图)用例图中的图符:

用例执行者系统:用于界定系统功能范围,描述该系统功能的用例都置于其中,而描述外部实体的执行者都置于其外。关联:连接执行者和用例,表示执行者所代表的系统外部实体与该用例所描述的系统需求有关。标准建模语言UML(用例图)用例图中的图符:22标准建模语言UML(用例图)用例图中的图符:使用:由用例A连向用例B,表示用例A中使用了用例B中的行为或功能。扩展:由用例A连向用例B,表示用例B描述了一项基本需求,而用例A则描述了该基本需求的特殊情况。注释体:对UML实体进行文字描述注释连接:将注释体与要描述的实体连接,说明该注释体是针对该实体所进行的描述。«使用»«扩展»标准建模语言UML(用例图)用例图中的图符:«使用»«扩展23标准建模语言UML(用例图)设置边界风险分析交易估计进行交易超越边界更新帐目评价贸易经理营销人员记帐系统销售人员«使用»«使用»«扩展»标准建模语言UML(用例图)设置边界风险分析交易估计进行交24标准建模语言UML(用例图)用例模型的获取:获取执行者获取用例标准建模语言UML(用例图)用例模型的获取:25标准建模语言UML(用例图)获取执行者:谁使用系统的主要功能(主要使用者)?谁需要系统支持他们的日常工作?谁来维护、管理系统使其能正常工作(辅助使用者)?系统需要控制哪些硬件?系统需要与其他哪些系统交互?对系统产生的结果感兴趣的是哪些人?标准建模语言UML(用例图)获取执行者:26标准建模语言UML(用例图)获取用例:执行者要求系统提供哪些功能?执行者需要读、产生、删除、修改或存储系统中的信息有哪些类型?必须提醒执行者的系统事件有哪些?执行者必须提醒系统事件有哪些?怎样把这些事件表示成用例中的功能?标准建模语言UML(用例图)获取用例:27标准建模语言UML(类图)在面向对象的建模技术中,类、对象和它们之间的关系是最基本的建模元素。对于一个想要描述的系统,其类模型、对象模型以及它们之间的关系揭示了系统的结构。类图描述了系统中的类及其相互之间的各种关系,其本质反映了系统中包含的各种对象的类型以及对象间的各种静态关系(关联,子类型)。标准建模语言UML(类图)在面向对象的建模技术中,类、对象28标准建模语言UML(类图)类图中的图符:类:表示一个类,其中第一栏是类的名,第二栏是类的属性,第三栏是类的操作。包:包是一种分组机制,表示一个类图集合。关联:用于表示类的对象之间的关系。其特殊形式有组成关联和聚集关联。OperationsAttributesClassPackage标准建模语言UML(类图)类图中的图符:Operation29标准建模语言UML(类图)类图中的图符:聚集关联:用于表示类的对象之间的关系是整体与部分的关系。组成关联:用于表示类的对象之间的关系:整体拥有各部分,部分与整体共存,如整体不存在了,部分也会随之消失。泛化关联:泛化关系(继承关系)定义了类和包间的一般元素和特殊元素之间的分类关系。标准建模语言UML(类图)类图中的图符:30标准建模语言UML(类图)类图中的图符:依赖关系:有两个类或包元素X、Y,修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖于元素X。对象:类的一个实例。链接:用于表示对象间的关联关系的一个实例。ValuesObject标准建模语言UML(类图)类图中的图符:ValuesObj31标准建模语言UML(类图)订单DateReceivedisPrepaidnumber:Stringprce:MoneyDispatch()close()订单项Quantity:Integerprice:MoneyisSatisfied:Boolean1*项客户NameaddressCreditRating():String团体客户ContactNamecreditRatingcreditLimitRemind()billforMonth(Intrger)雇员产品个人客户CreditCard#{creditRating()=“poor”}销售代表1*0..11**标准建模语言UML(类图)订单DateReceivedDi32标准建模语言UML(对象图)对象图对象图是类图的一种变形。除了在对象名下面要加下划线以外,对象图中所使用的符号与类图基本相同。对象图是类图的一种实例化。一张对象图表示的是与其对应的类图的一个具体实例,即系统在某一时期或者某一特定时刻可能存在的具体对象实例以及它们相互之间的具体关系。标准建模语言UML(对象图)对象图33标准建模语言UML(对象图)作者计算机名字:String内存:Ineger名字:String年龄:Integer0..1Uses1..*小王:作者小王的工作PC:计算机名字=“王小影”年龄=32小王的工作PC:计算机名字=“CompaqX”内存=32名字=“Dell486”内存=64类图对象图标准建模语言UML(对象图)作者计算机名字:String名34标准建模语言UML(对象图)对象图并不象类图那样具有重要的地位,但是利用它可以帮助我们通过具体的实例分析,更具体直观地了解复杂系统类图的丰富内涵。对象图还常常被用作合作图的一部分,用以展示一组对象实例之间的动态协作关系。标准建模语言UML(对象图)对象图并不象类图那样具有重要的35标准建模语言UML(包图)包是类的集合。包图所显示的是类的包以及这些包之间的依赖关系。如果两个包中的任意两个类之间存在依赖关系,则这两个包之间存在依赖关系。包的依赖是不传递的。标准建模语言UML(包图)包是类的集合。36标准建模语言UML(包图)订单获取界面订单获取应用AWT邮件发送清单界面邮件发送清单应用订单顾客标准建模语言UML(包图)订单获取订单获取AWT邮件发送邮37标准建模语言UML(包图)何时使用包图:在大项目中,包图是一种重要工具(有专家建议,只要你不能将整个系统的类图压缩到一张A4纸上,你就应该使用包图);依赖产生耦合,应该尽量将依赖性减少到最低程度;包的概念对测试也是特别有用的。标准建模语言UML(包图)何时使用包图:38标准建模语言UML(状态图)状态图状态图是对类的一种补充描述,它展示了此类对象所具有的可能的状态以及某些事件发生时其状态的转移情况。在状态图中,状态由圆角矩形表示。状态的改变称作转移,状态转移由箭头表示,箭头旁可以标出转移发生的条件。状态转移可以伴随有某个动作,它表明当转移发生时系统要做什么。标准建模语言UML(状态图)状态图39标准建模语言UML(状态图)下降状态在第一层上升状态向第一层下降空闲状态上升到达到达上升超时下降到达第一层标准建模语言UML(状态图)下降状态在第一层上升状态向第一40标准建模语言UML(顺序图)顺序图顺序图描述了对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。顺序图由一组对象构成,每个对象分别带有一条竖线,称作对象的生命线,它代表时间轴,时间沿竖线向下延伸。顺序图描述了这些对象随着时间的推移相互之间交换消息的过程。消息用从一条垂直的对象生命线指向另一个对象的生命线的水平箭头表示。图中还可以根据需要增加有关时间的说明和其他注释。标准建模语言UML(顺序图)顺序图41标准建模语言UML(顺序图):计算机:打印服务程序:打印队列:打印机打印文件打印文件[打印机空闲]保存文件[打印机忙]标准建模语言UML(顺序图):计算机:打印服务程序:打印队42标准建模语言UML(顺序图)P1P2P3e1e2e3e4e5e6e7e8e9e10标准建模语言UML(顺序图)P1P2P3e1e2e3e4e43标准建模语言UML(顺序图)顺序图中的事件顺序:因果性(Causality):对同一消息而言,发送事件先于接收事件。可控性(Controlability):对同一对象而言,事件p出现在发送事件q的上方,则p先于q。队列性(FIFO):对同一对象而言,接收事件p出现在接收事件q的上方,并且它们分别对应的发送事件也位于同一个对象,则p先于q。标准建模语言UML(顺序图)顺序图中的事件顺序:44标准建模语言UML(顺序图)e1e2e3e4e5e6e8e7e9e10e12e11P1P2P3P1P2P3e1e2e3e4e6e5e7e8e9e11e10e12标准建模语言UML(顺序图)e1e2e3e4e5e6e8e45标准建模语言UML(合作图)合作图与顺序图作用相同,合作图也是用来描述系统中对象之间的动态协作关系。合作图侧重于描述各个对象之间存在的消息收发关系(交互关系),而不专门突出这些消息发送的时间顺序。在合作图中,对象同样是用一个对象图符来表示,箭头表示消息发送的方向,而消息执行的顺序则由消息的编号来表明。标准建模语言UML(合作图)合作图46标准建模语言UML(合作图):计算机:打印队列:打印服务程序:打印机1.打印文件3.保存文件[打印机忙]2.打印文件[打印机空闲]标准建模语言UML(合作图):计算机:打印队列:打印服务程47标准建模语言UML(合作图)合作图的布局方法能更清楚地表示出对象之间静态的连接关系。顺序图突出执行的时序,能更方便地看出事情发生的次序。如果要描述在一个用例中的几个对象协同工作的行为,交互图是一种有力的工具。交互图擅长显示对象之间的合作关系,尽管它并不对这些对象的行为进行精确的定义。如果想要描述跨越多个用例的单个对象的行为,应当使用状态图;如果想要描述跨越多个用例或多个线程的多个对象的复杂行为,则需考虑使用活动图。标准建模语言UML(合作图)合作图的布局方法能更清楚地表示48标准建模语言UML(活动图)活动图活动图描述系统中各种活动的执行顺序,通常用于描述一个操作中所要进行的各项活动的执行流程。同时,它也常被用来描述一个用例的处理流程,或者某种交互流程。活动图由一些活动组成,图中同时包括了对这些活动的说明。当一个活动执行完毕之后,控制将沿着控制转移箭头转向下一个活动。活动图中还可以方便地描述控制转移的条件以及并行执行等要求。标准建模语言UML(活动图)活动图49标准建模语言UML(活动图)加水到容器中将咖啡放到过滤器中点燃咖啡炉取出咖啡杯把过滤器放到咖啡炉上冲调咖啡倒咖啡找饮料取一听可口可乐喝饮料人[找到可口可乐][没有可口可乐][没有咖啡][找到咖啡]熄灭咖啡炉标准建模语言UML(活动图)加水到容器中将咖啡放到点燃咖啡50标准建模语言UML(活动图)活动图最适合支持描述并行行为,这使之成为支持工作流建模的最好工具。活动图最大的缺点是很难清楚地描述动作与对象之间的关系。标准建模语言UML(活动图)活动图最适合支持描述并行行为,51标准建模语言UML(活动图)对于以下情况可以使用活动图:(1)分析用例;(2)理解牵涉多个用例的工作流;(3)处理多线程应用。在下列情况下,一般不要使用活动图:(1)显示对象间合作;(2)显示对象在其生命周期内的运转情况。标准建模语言UML(活动图)对于以下情况可以使用活动图:52标准建模语言UML(构件图)构件图构件图描述软件构件以及它们之间的依赖关系,从而便于人们分析和发现当修改某个构件时可能对那些构件产生影响,以便对它们做相应的修改或更新。构件可以是源代码构件、二进制目标码构件、可执行构件或文档构件。标准建模语言UML(构件图)构件图53标准建模语言UML(构件图)Whnd.cpp:窗口处理器Graphic.dll:图形库Comhnd.cpp:命令处理器Main.cpp:主类Whnd.obj:窗口处理器Comhnd.obj:命令处理器Main.obj:主类client.exe:客户程序标准建模语言UML(构件图)Whnd.c54标准建模语言UML(配置图)配置图配置图描述系统中硬件和软件的物理配置情况和系统体系结构。在配置图中,用结点表示实际的物理设备,如计算机和各种外部设备等,并根据它们之间的连接关系,将相应的结点连接起来,并说明其连接方式。在结点里面,说明分配给该结点上运行的可执行构件或对象,从而说明哪些软件单元被分配在哪些结点上运行。标准建模语言UML(配置图)配置图55标准建模语言UML(配置图)客户A:个人电脑PC客户B:个人电脑PC数据库服务器:VAX服务器:02«TCP/IP协议»«TCP/IP»协议«DecNet协议»标准建模语言UML(配置图)客户A:客户B:数据库服务器:56UML支撑环境RationalRose基于UML的模型驱动的软件开发环境全面支持团队整体合作的开发形式集成了最新软件开发技术和思想UML支撑环境RationalRose57UML的扩展实时模型UML-RT可执行模型企业计算

EnterpriseDistributedObjectComputing(EDOC)EnterpriseApplicationIntegration(EAI)软件过程RationalUnifiedProcess(RUP)其他StandardforDataWarehousingCORBAmapstoUMLXMIformatfortheexchangeofUMLmodelsintextformat

UML的扩展实时模型UML-RT58UML框架下的软件工程我们已经有了统一的建模语言UML我们正在拥有统一软件过程(RUP?)下一步是什么?ASoftwareComponentMarketplaceQualityfromtheBeginningGiveSoultoSoftwareProcessACompleteUMLBasedSoftwarePlatform

IvarJacobsonUML框架下的软件工程我们已经有了统一的建模语言UML59UML时间表1997UMLversion1.0,version1.11998UMLversion1.32000UMLversion1.4?2002UMLversion2.0?2004一个稳定完善的UMLversion?UML时间表1997UMLversion160UML的国际会议<<UML>>98TheFirstInternationalWorkshoponTheUnifiedModelingLanguage,3-4June,1998,Mulhouse,France<<UML>>99TheSecondInternationalConferenceonTheUnifiedModelingLanguage,28-30October,1999,FortCollins,Colorado,USA<<UML>>2000TheThirdInternationalConferenceontheUnifiedModelingLanguage,2-6October,2000,York,UK<<UML>>2001TheFourthInternationalConferenceontheUnifiedModelingLanguage,1-5October,2001,Toronto,Canada<<UML>>2002TheFifthInternationalConferenceontheUnifiedModelingLanguage,30Sept.–4Oct.,2002,Dresden,Germany.<<UML>>2003TheSixthInternationalConferenceontheUnifiedModelingLanguage,20–24,Oct.,2003,USA.

LectureNotesinComputerScience,SpringerUML的国际会议<<UML>>98TheF61UML当前的研究热点当前围绕UML的研究工作集中在两个方面:使得UML更加精确为UML提供有效的工具支持UML当前的研究热点当前围绕UML的研究工作集中在两个方面:62模型驱动的体系结构

ModelDrivenArchitecture(MDA)

模型驱动的体系结构

ModelDrivenArchite63OMG

(ObjectManagementGroup)OMG是世界上最大的计算机工业联盟,于1989年4月有8个公司发起,目前有800多家成员。OMG

(ObjectManagementGroup)64WhoAreOMG?AT&TBEABorlandBoeingCACitigroupCompaqEricssonFordFujitsuGlaxoSmithKlineHewlettPackardHitachiHyperionIBMIONAioSoftwareKabiraKennedyCarterJohnDeereMicrosoftMITREMSC.SoftwareNASANECNetGenicsNTTOASISOraclePfizerRationalSAGASoftwareSAPSASInstituteSecantSiemensSprintSunUnisysVertelWhoAreOMG?AT&TGlaxoSmithKli65异构--无处不在Programminglanguages~3millionCOBOLprogrammers~1.6millionVBprogrammers~1.1millionC/C++programmersOperatingsystemsUnix,MVS,VMS,MacOS,Windows(all8!),PalmOS…Windows3.1:it’sstilloutthere!Embeddeddevices(mobile,set-top,etc.)NetworksEthernet,ATM,IP,SS7,Firewire,USBBluetooth,802.11b,HomeRF异构--无处不在Programminglanguages66OMG的技术目标问题:分布异构限制了互操作,同一功能用多种语言在多种环境下重复实现。目标:使得基于对象的软件在分布异构环境下具有良好的可重用性、可移植性和互操作性,从而能够在由多种主流硬件平台上运行多种操作系统构成的异构分布环境中,方便地建立异构分布应用系统。OMG的技术目标问题:分布异构限制了互操作,同一功能用多种语67如何集成?不存在统一的硬件平台不存在统一的操作系统不存在统一的网络协议不存在统一的应用模式必须通过接口和互操作达到集成。如何集成?不存在统一的硬件平台68OMG的任务TheOMG’smissionistohelpcomputeruserssolveintegrationproblemsbysupplyingopen,vendor-neutralinteroperabilityspecifications.OMG的任务TheOMG’smissionisto69OMG的产品CommonObjectRequestBrokerArchitectureCORBA®remainstheonlylanguage-andplatform-neutralinteroperabilitystandardUnifiedModelingLanguageUMLTMremainstheworld’sonlystandardizedmodelinglanguageCommonWarehouseMetamodelCWMTM,theintegrationofthelasttwodatawarehousinginitiativesMeta-ObjectFacilityMOFTM,therepositorystandardXMLMetadataInterchangeXMITM,theXML-UMLstandardOMG的产品CommonObjectRequestBr70中间件中间件是软件领域近十年来发展起来的一种新技术,其泛指位于操作系统与应用软件之间、能够屏蔽操作系统和网络协议的差异、为异构系统之间提供通讯服务的软件。

中间件中间件是软件领域近十年来发展起来的一种新技71中间件硬件平台系统软件支撑软件硬件平台系统软件支撑软件中间件应用软件应用软件中间件硬件平台系统软件支撑软件硬件平台系统软件支撑软件中间件72中间件中间件屏蔽了底层系统软件(包括操作系统、网络、数据库管理系统等)的异构性和复杂性,通过一个简单而统一的开发环境,减少程序设计的复杂性并提高程序的可移植性,使得开发人员将注意力集中在自己的业务上,大大减少了技术上的负担。中间件带给应用系统的,不只是开发的简便和开发周期的缩短,也减少了系统的维护、运行和管理的工作量,从而减少了系统总体费用的投入。中间件中间件屏蔽了底层系统软件(包括操73中间件目前的主流中间件可以分为五类:数据访问中间件远程过程调用中间件事务中间件消息中间件面向对象中间件中间件目前的主流中间件可以分为五类:74面向对象中间件面向对象的中间件是对象技术和分布式计算发展的产物,它提供一种通讯机制,透明地在异构的分布计算环境中传递对象请求。OMG的CORBA微软的COMSun公司基于EJB的J2EE面向对象中间件面向对象的中间件是对象技75面向对象中间件面向对象中间件的异构性和开放性各有不同:适用于异构环境、开放的CORBA是Internet与企业应用事实上的工业标准;特定于Windows平台、专有的COM则是桌面系统的首选;基于EJB的J2EE则兼具二者之优势,J2EE是一种利用Java2平台来简化企业解决方案的开发、部署和管理相关复杂问题的体系结构,已经被许多从事电子商务的中间件厂商所采纳。面向对象中间件面向对象中间件的异构性和76中间件没有消除异构由于一个中间件不能满足所有用户的要求,导致多种中间件并存又无法统一,于是为解决异构问题提出的中间件本身产生异构。中间件似乎“提升”了异构而没有消除异构。中间件没有消除异构由于一个中间件不能满足所有用户的要求,导致77中间件没有消除异构由于难以形成统一的标准,中间件的不断发展将使得新旧系统之间的集成或系统的演化面临不同的实现技术,从而使得如何在保障已有投资的条件下驱动整个系统的技术升级成为我们迫切需要解决的问题。中间件没有消除异构由于难以形成统一的标78模型驱动的体系结构MDA

(ModelDrivenArchitecture)MDAisOMG’snextstepinsolvingintegrationproblems.模型驱动的体系结构MDA

(ModelDrivenArc79MDA的主要思想MDA的主要思想是分离业务功能分析与设计和实现技术与平台之间紧耦合的关系,从而将技术与平台变化对系统的影响降低到最小程度。MDA极大地加强了应用模型与领域模型在整个软件生命周期中的复用。MDA的主要思想MDA的主要思想是分离业务功能分析与设计和实80MDA的主要思想与实现技术和平台无关、描述业务需求的功能模型(Platform-IndependentModel,PIM)与具体实现技术和平台相关的应用模型(Platform-SpecificModel,PSM)MDA将PIM抽象出来,针对不同实现技术与平台制订多个映射规则,然后通过这些映射规则及辅助工具将PIM转换成PSM,再将PSM不断求精直至形成最后代码。MDA的主要思想与实现技术和平台无关、描述业务需求的功能模型81MDA的主要思想PIMMappingsPSMCORBAspecificplatformmodelsPSMEJBspecificplatformmodelsPSMXMLspecificplatformmodelsPSM.NETspecificplatformmodelsPSMWEBspecificplatformmodelsCORBA/CCMJ2EE/EJBSOAP/XMLDCOM/.NETWEB/WSDLMDA的主要思想PIMMappingsPSMPSMPSMPS82BuildinganMDAApplicationStartwithaPlatform-IndependentModel(PIM)representingbusinessfunctionalityandbehavior,undistortedbytechnologydetails.Platform-

IndependentModelADetailedModel,

statingPre-andPost-

ConditionsinOCL,

andSemanticsin

ActionLanguageBuildinganMDAApplicationSta83GeneratingPlatform-SpecificModelPlatform-

IndependentModelMapaPIMtoSpecificMiddlewareTechnologiesviaOMGStandardMappingsMDAtoolappliesastandardmappingtogeneratePlatform-SpecificModel(PSM)fromthePIM.Codeispartiallyautomatic,partiallyhand-written.CORBA

ModelGeneratingPlatform-SpecificM84MappingtoMultipleDeploymentTechnologiesPlatform-

IndependentModelCORBA

ModelMDAtoolappliesanstandardmappingtogeneratePlatform-SpecificModel(PSM)fromthePIM.Codeispartiallyautomatic,partiallyhand-written.Java/EJB

ModelXML/SOAP

ModelOther

ModelMapaPIMtoManyMiddlewareTechnologiesviaOMGStandardMappingsMappingtoMultipleDeployment85GeneratingImplementationsPlatform-

IndependentModelCORBA

ModelMDAToolgeneratesallormostoftheimplementationcodefordeploymenttechnologyselectedbythedeveloper.Java/EJB

ModelCORBAXML/SOAP

ModelJava/EJBXML/SOAPOtherOther

ModelMapPSMtoapplicationinterfaces,code,GUIdescriptors,SQLqueries,etc.GeneratingImplementationsPlat86IntegratingLegacy&COTSPlatform-

IndependentModelLegacyAppMDAToolsforreverseengineeringautomatediscoveryofmodelsforre-integrationonnewplatforms.COTSAppOtherOther

ModelReverse-engineeringexistingapplicationintoamodelandredeploy.IntegratingLegacy&COTSPlatf87AutomatingBridgesCORBA

ModelXML/SOAP

ModelPlatform-

IndependentModelCORBA

SystemXML/SOAPSystemInteropBridgeMDAToolscombineapplicationandplatformknowledgetogeneratebridgesBridgegenerationissimplifiedbycommonapplicationmodels,simplifyingcreationofintegratedapplicationsbothwithinandacrossenterprises.AutomatingBridgesCORBA

Model88MDA带来的好处增强软件复用性增强软件可移植性提高软件开发效率、降低成本降低软件维护成本推动软件自动化进程MDA带来的好处增强软件复用性89MDA的构成MDA的构成90MDA的核心以下标准或规范构成了MDA的核心:统一建模语言(UniformModelingLanguage,UML,建模工具)元对象设施(Mete-ObjectFacility,MOF,标准的建模与交换结构)公共仓库元模型(CommonWarehouseMetamodel,CWM,数据仓库的标准)基于XML的元数据交换(XMLMetadataInterchange,XMI,信息交换的标准格式)等。此外,MDA还将标准化少数通用领域的PIM、基于特定于中间件标准的PSM、以及PIM与PSM之间的映射规则,为设计到代码的自动生成提供基础。MDA的核心以下标准或规范构成了MDA的核心:91UML2.0MDA的需求:精确的语义可执行模型自动代码生成更强的描述能力针对特定领域的可扩充性UML2.0MDA的需求:92UMLProfilesAUMLprofileisasetofextensionstoUMLusingthebuilt-inextensionfacilitiesofUML,stereotypesandtaggedvalues.

UMLProfilesAUMLprofileisa93MOF(MetaObjectFacility)MOFprovidesthestandardmodelingandinterchangeconstructsthatareusedinMDA.OtherstandardOMGmodels,includingUMLandCWN,aredefinedintermsofMOFconstructs.MOF(MetaObjectFacility)MOF94CWM

(CommonWarehouseMetamodel)CWMistheOMGdatawarehousestandard.CWMcoversthefulllifecycleofdesigning,buildingandmanagingdatawarehouseapplicationsandsupportsmanagementofthelifecycle.CWM

(CommonWarehouseMetamode95XMI

(XMLMetadataInterchange)XMIisastandardinterchangemechanismusedbetweenvarioustools,repositoriesandmiddleware.XMIcanbeusedtoautomaticallyproduceXMLDTDs(andsoonXMLSchemas)fromUMLandMOFmodels.XMI

(XMLMetadataInterchange96MDA的发展进程MajordirectionagreedMarch’01;overallarchitectureadoptedSeptember’01.UML1.4complete;2.0inprocess.Mappings(“profiles”)underway:EDOC(adopted)CORBA(adopted)EAI(inprocess)EJB(adoptedbyJCP)SOAP/XML(inprocess).Net(tobestarted)MDA的发展进程Majordirectionagreed97MDA的发展进程Moreimportantly,verticalmarketgroupsarethrivingonMDAapproach:ElectronicCommerceFinancialServicesHealthcareLifeSciencesResearchManufacturingSpace&GroundSystemsTelecommunicationsMDA的发展进程Moreimportantly,vert98模型驱动的工程

ModelDrivenEngineeringMDEiswiderinscopethanMDA:MDE=MDA+process模型驱动的工程

ModelDrivenEngineeri99基于MDA的UML模型转换基于MDA的软件开发过程中需要解决的关键技术问题是各种UML模型间的转换:PIMtoPIMPIMtoPSMPSMtoPSMPSMtoPIM基于MDA的UML模型转换基于MDA的100基于MDA的UML模型转换基于MDA的UML模型转换101基于MDA的UML模型转换Toimplementthemapping,oneneedstoknowthemetamodelsofinputandoutputmodelsandtheirmappingrules.UMLprofileshaveanimportantroletoplayinMDA.基于MDA的UML模型转换102MappingPIMtoJ2EEMappingPIMtoJ2EE103MDAInformationPage/mda/MDAInformationPage104COTSCommerical-Off-the-ShelfCOTS105面向对象软件工程标准建模语言UML面向对象软件工程标准建模语言UML106面向对象软件工程面向对象“面向对象”是一种认识客观世界的世界观,这种世界观将客观世界看成是有许多不同种类的对象构成的,每个对象有自己的内部状态和运动规律,不同对象之间的相互联系、相互作用就构成了完整的客观世界。面向对象软件工程面向对象107面向对象软件工程面向对象“面向对象”是从结构组织的角度去模拟客观世界的一种方法,这种方法的基本着眼点是构成客观世界的那些成分对象。用“面向对象”的观点去认识客观世界,用“面向对象”的方法去模拟客观世界,这就构成了“面向对象”的完整含义。面向对象软件工程面向对象108面向对象软件工程面向对象概念对象对象是现实世界中个体或事物的抽象表示,是其属性和相关操作的封装。属性表示对象的性质,属性值规定了对象所有可能的状态。对象的操作是指该对象可以展现的外部服务。面向对象软件工程面向对象概念109面向对象软件工程面向对象概念类和实例类是某些对象的共同特性的表示,它描述了这些对象内部是如何构造的。相同类的对象在它们的操作和它们的信息结构两个方面都有相同的定义。在面向对象系统中,每个对象都属于一个类。属于某个特定类的对象称为该类的实例。因此,常常把对象和实例当作同义词。实例是从某类创建的一个对象。面向对象软件工程面向对象概念110面向对象软件工程面向对象概念继承

如果类B继承类A,那么类A中描述的操作和信息结构将成为类B的一部分。借助继承,可以表示类之间的类似性,并且在其他类能继承的一个类中描述这些相似性。因此,就能够复用公共的描述。继承常常被提倡为软件工业界中关于复用的一个核心思想。继承还有利于软件维护。通过抽取和共享公共特性就能够通用化一些类,并且把它们放在继承层次的更高位置。同样,如果希望增加新类,可以寻找这样一个类,它已经提供了适用于该新类的某些操作和信息结构。然后,让新类继承这个类,只需增加该新类所独有的那些内容。然后,使这个类专用化。面向对象软件工程面向对象概念111建立对象模型Identifyingclassesandobjects

(识别对象和类)Specifyingattributes

(说明对象属性)Definingoperations(定义对象操作)Finalizingtheobjectdefinition(最终确定对象定义)建立对象模型Identifyingclassesand112面向对象的过程模型PlanningRiskAnalysisCustomerCommunicationCustomerEvaluationEngineering,Construction&ReleaseIdentifycandidateclassesConstructnthiterationofsystemLookupclassesinlibraryPutnewclassesinlibraryExtractclassesifavailableEngineerclassesifunavailableanalysisdesignprogrammingtesting面向对象的过程模型PlanningRiskC113面向对象软件工程面向对象建模

面向对象思想比较自然地模拟了人类认识客观世界的方式,面向对象的分析和设计应该从建模开始。构造模型通常出于以下几个目地:在着手解决一个复杂问题之前,对解决方案进行检测;用于同客户或其他相关人员进行交流;加强视觉效果;对复杂问题进行简化。面向对象软件工程面向对象建模114面向对象软件工程面向对象建模模型是对事物的一种抽象,人们常常在正式建造实物之前,首先建立一个简化的模型,以便更透彻地了解它的本质,抓住问题的要害;在模型中,人们总是剔除那些与问题无关的、非本质的东西,从而使模型与真实的实体相比更加简单、易于把握;面向对象软件工程面向对象建模115面向对象软件工程面向对象建模在建造一个复杂系统时,开发者必须从多种不同的角度来抽象系统,使用准确的符号来构造模型,然后检查这些模型是否符合系统的需求,并逐步添加细节,从而将这些模型转化成实现方案。建模语言是面向对象建模中的一个非常关键的因素。面向对象软件工程面向对象建模116标准建模语言UMLUML的设计目标:运用面向对象概念来构造系统模型建立起从概念模型直至可执行体之间明显的对应关系着眼于那些有重大影响的问题创建一种对人和机器都适用的建模语言标准建模语言UMLUML的设计目标:117标准建模语言UMLUML概要UML由OMG与1997年11月批准为标准建模语言。UML建立在当今国际上最有代表性的三种面向对象方法(Booch方法,OMT方法,OOSE方法)的基础之上。UML是一种建模语言而不是一种方法,UML本身是独立于过程的。标准建模语言UMLUML概要118标准建模语言UMLUML为人们提供了从不同的角度去观察和展示系统的各种特征的一种标准表达方式。在UML中,从任何一个角度对系统所作的抽象都可能需要用几种模型图来描述,而这些来自不同角度的模型图最终组成了系统的完整模型。标准建模语言UMLUML为人们提供了从119标准建模语言UML一般而言,我们可以从以下几种常用的视角来描述一个系统:系统的使用实例:从系统外部的操作者的角度描述系统的功能。系统的逻辑结构:描述系统内部的静态结构和动态行为,即从内部描述如何设计实现系统功能。系统的构成:描述系统由哪些程序构件所组成。系统的并发性:描述系统的并发性,强调并发系统中存在的各种通信和同步问题。系统的配置:描述系统的软件和各种硬件设备之间的配置关系。标准建模语言UML一般而言,我们可以120标准建模语言UMLUML模型图(5类,10种):用例图静态图(类图,对象图,包图)行为图(状态图,活动图)交互图(顺序图,合作图)实现图(构件图,配置图)标准建模语言UMLUML模型图(5类,10种):121标准建模语言UMLUML语义元-元模型:元模型的基础体系结构,定义一种说明元模型的语言元模型:元-元模型的一个实例,定义一种说明模型的语言模型:元模型的一个实例,定义一种语言来描述信息领域用户对象:模型的一个实例,定义一个特定的领域标准建模语言UMLUML语义122标准建模语言UMLUML主要文件:UML概要(UMLSummary)UML语义(UMLSemantics)UML表示法指南(UMLNotationGuide)对象约束语言规约(ObjectContraintlanguageSpecification):该文件定义并介绍了一种对象约束语言(OCL),其用途是用来说明在图形化的系统模型中不能充分表达的建模信息。它是一种形式化语言。/uml/index.jtmpl标准建模语言UMLUML主要文件:123标准建模语言UML(用例图)从本质上将,一个用例是用户与计算机之间为达到某个目的的一次典型交互作用:用例描述了用户提出的一些可见的需求;用例可大可小;用例对应一个具体的用户目标标准建模语言UML(用例图)从本质上124标准建模语言UML(用例图)用例图描述系统外部的执行者与系统的用例之间的某种联系。所谓用例是指对系统提供的功能(或称系统的用途)的一种描述;执行者是那些可能使用这些用例的人或外部系统;用例和执行者之间的联系描述了“谁使用哪个用例”。标准建模语言UML(用例图)用例图描125标准建模语言UML(用例图)用例图着重于从系统外部执行者的角度来描述系统需要提供哪些功能,并且指明了这些功能的执行者是谁;用例图在UML方法中占有十分重要的地位,人们甚至称UML是一种用例图驱动的开发方法。标准建模语言UML(用例图)用例图着重于从系统外部执行者的126标准建模语言UML(用例图)用例图中的图符:

用例执行者系统:用于界定系统功能范围,描述该系统功能的用例都置于其中,而描述外部实体的执行者都置于其外。关联:连接执行者和用例,表示执行者所代表的系统外部实体与该用例所描述的系统需求有关。标准建模语言UML(用例图)用例图中的图符:127标准建模语言UML(用例图)用例图中的图符:使用:由用例A连向用例B,表示用例A中使用了用例B中的行为或功能。扩展:由用例A连向用例B,表示用例B描述了一项基本需求,而用例A则描述了该基本需求的特殊情况。注释体:对UML实体进行文字描述注释连接:将注释体与要描述的实体连接,说明该注释体是针对该实体所进行的描述。«使用»«扩展»标准建模语言UML(用例图)用例图中的图符:«使用»«扩展128标准建模语言UML(用例图)设置边界风险分析交易估计进行交易超越边界更新帐目评价贸易经理营销人员记帐系统销售人员«使用»«使用»«扩展»标准建模语言UML(用例图)设置边界风险分析交易估计进行交129标准建模语言UML(用例图)用例模型的获取:获取执行者获取用例标准建模语言UML(用例图)用例模型的获取:130标准建模语言UML(用例图)获取执行者:谁使用系统的主要功能(主要使用者)?谁需要系统支持他们的日常工作?谁来维护、管理系统使其能正常工作(辅助使用者)?系统需要控制哪些硬件?系统需要与其他哪些系统交互?对系统产生的结果感兴趣的是哪些人?标准建模语言UML(用例图)获取执行者:131标准建模语言UML(用例图)获取用例:执行者要求系统提供哪些功能?执行者需要读、产生、删除、修改或存储系统中的信息有哪些类型?必须提醒执行者的系统事件有哪些?执行者必须提醒系统事件有哪些?怎样把这些事件表示成用例中的功能?标准建模语言UML(用例图)获取用例:132标准建模语言UML(类图)在面向对象的建模技术中,类、对象和它们之间的关系是最基本的建模元素。对于一个想要描述的系统,其类模型、对象模型以及它们之间的关系揭示了系统的结构。类图描述了系统中的类及其相互之间的各种关系,其本质反映了系统中包含的各种对象的类型以及对象间的各种静态关系(关联,子类型)。标准建模语言UML(类图)在面向对象的建模技术中,类、对象133标准建模语言UML(类图)类图中的图符:类:表示一个类,其中第一栏是类的名,第二栏是类的属性,第三栏是类的操作。包:包是一种分组机制,表示一个类图集合。关联:用于表示类的对象之间的关系。其特殊形式有组成关联和聚集关联。OperationsAttributesClassPackage标准建模语言UML(类图)类图中的图符:Operation134标准建模语言UML(类图)类图中的图符:聚集关联:用于表示类的对象之间的关系是整体与部分的关系。组成关联:用于表示类的对象之间的关系:整体拥有各部分,部分与整体共存,如整体不存在了,部分也会随之消失。泛化关联:泛化关系(继承关系)定义了类和包间的一般元素和特殊元素之间的分类关系。标准建模语言UML(类图)类图中的图符:135标准建模语言UML(类图)类图中的图符:依赖关系:有两个类或包元素X、Y,修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖于元素X。对象:类的一个实例。链接:用于表示对象间的关联关系的一个实例。ValuesObject标准建模语言UML(类图)类图中的图符:ValuesObj136标准建模语言UML(类图)订单DateReceivedisPrepaidnumber:Stringprce:MoneyDispatch()close()订单项Quantity:Integerprice:MoneyisSatisfied:Boolean1*项客户NameaddressCreditRating():String团体客户ContactNamecreditRatingcreditLimitRemind()billforMonth(Intrger)雇员产品个人客户CreditCard#{creditRating()=“poor”}销售代表1*0..11**标准建模语言UML(类图)订单DateReceivedDi137标准建模语言UML(对象图)对象图对象图是类图的一种变形。除了在对象名下面要加下划线以外,对象图中所使用的符号与类图基本相同。对象图是类图的一种实例化。一张对象图表示的是与其对应的类图的一个具体实例,即系统在某一时期或者某一特定时刻可能存在的具体对象实例以及它们相互之间的具体关系。标准建模语言UML(对象图)对象图138标准建模语言UML(对象图)作者计算机名字:String内存:Ineger名字:String年龄:Integer0..1Uses1..*小王:作者小王的工作PC:计算机名字=“王小影”年龄=32小王的工作PC:计算机名字=“CompaqX”内存=32名字=“Dell486”内存=64类图对象图标准建模语言UML(对象图)作者计算机名字:String名139标准建模语言UML(对象图)对象图并不象类图那样具有重要的地位,但是利用它可以帮助我们通过具体的实例分析,更具体直观地了解复杂系统类图的丰富内涵。对象图还常常被用作合作图的一部分,用以展示一组对象实例之间的动态协作关系。标准建模语言UML(对象图)对象图并不象类图那样具有重要的140标准建模语言UML(包图)包是类的集合。包图所显示的是类的包以及这些包之间的依赖关系。如果两个包中的任意两个类之间存在依赖关系,则这两个包之间存在依赖关系。包的依赖是不传递的。标准建模语言UML(包图)包是类的集合。141标准建模语言UML(包图)订单获取界面订单获取应用AWT邮件发送清单界面邮件发送清单应用订单顾客标准建模语言UML(包图)订单获取订单获取AWT邮件发送邮142标准建模语言UML(包图)何时使用包图:在大项目中,包图是一种重要工具(有专家建议,只要你不能将整个系统的类图压缩到一张A4纸上,你就应该使用包图);依赖产生耦合,应该尽量将依赖性减少到最低程度;包的概念对测试也是特别有用的。标准建模语言UML(包图)何时使用包图:143标准建模语言UML(状态图)状态图状态图是对类的一种补充描述,它展示了此类对象所具有的可能的状态以及某些事件发生时其状态的转移情况。在状态图中,状态由圆角矩形表示。状态的改变称作转移,状态转移由箭头表示,箭头旁可以标出转移发生的条件。状态转移可以伴随有某个动作,它表明当转移发生时系统要做什么。标准建模语言UML(状态图)状态图144标准建模语言UML(状态图)下降状态在第一层上升状态向第一层下降空闲状态上升到达到达上升超时下降到达第一层标准建模语言UML(状态图)下降状态在第一层上升状态向第一145标准建模语言UML(顺序图)顺序图顺序图描述了对象之间动态的交互关系,着重体现对象间消息传递的时间顺

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论