面向对象软件工程标准建模语言UML.ppt
《面向对象软件工程标准建模语言UML.ppt》由会员分享,可在线阅读,更多相关《面向对象软件工程标准建模语言UML.ppt(105页珍藏版)》请在三一办公上搜索。
1、面向对象软件工程(标准建模语言UML),李 宣 东 南京大学计算机科学与技术系,面向对象软件工程,面向对象“面向对象”是一种认识客观世界的世界观,这种世界观将客观世界看成是有许多不同种类的对象构成的,每个对象有自己的内部状态和运动规律,不同对象之间的相互联系、相互作用就构成了完整的客观世界。,面向对象软件工程,面向对象“面向对象”是从结构组织的角度去模拟客观世界的一种方法,这种方法的基本着眼点是构成客观世界的那些成分-对象。用“面向对象”的观点去认识客观世界,用“面向对象”的方法去模拟客观世界,这就构成了“面向对象”的完整含义。,面向对象软件工程,面向对象概念对象 对象是现实世界中个体或事物的
2、抽象表示,是其属性和相关操作的封装。属性表示对象的性质,属性值规定了对象所有可能的状态。对象的操作是指该对象可以展现的外部服务。,面向对象软件工程,面向对象概念类和实例 类是某些对象的共同特性的表示,它描述了这些对象内部是如何构造的。相同类的对象在它们的操作和它们的信息结构两个方面都有相同的定义。在面向对象系统中,每个对象都属于一个类。属于某个特定类的对象称为该类的实例。因此,常常把对象和实例当作同义词。实例是从某类创建的一个对象。,面向对象软件工程,面向对象概念继承 如果类B继承类A,那么类A中描述的操作和信息结构将成为类B的一部分。借助继承,可以表示类之间的类似性,并且在其他类能继承的一个
3、类中描述这些相似性。因此,就能够复用公共的描述。继承常常被提倡为软件工业界中关于复用的一个核心思想。继承还有利于软件维护。通过抽取和共享公共特性就能够通用化一些类,并且把它们放在继承层次的更高位置。同样,如果希望增加新类,可以寻找这样一个类,它已经提供了适用于该新类的某些操作和信息结构。然后,让新类继承这个类,只需增加该新类所独有的那些内容。然后,使这个类专用化。,建立对象模型,Identifying classes and objects(识别对象和类)Specifying attributes(说明对象属性)Defining operations(定义对象操作)Finalizing the
4、 object definition(最终确定对象定义),面向对象的过程模型,Planning,RiskAnalysis,CustomerCommunication,CustomerEvaluation,Engineering,Construction&Release,Identifycandidateclasses,Constructnth iterationof system,Look upclassesin library,Put new classesin library,Extractclassesif available,Engineerclassesif unavailable,
5、analysis design programming testing,面向对象软件工程,面向对象建模 面向对象思想比较自然地模拟了人类认识客观世界的方式,面向对象的分析和设计应该从建模开始。构造模型通常出于以下几个目地:在着手解决一个复杂问题之前,对解决方案进行检测;用于同客户或其他相关人员进行交流;加强视觉效果;对复杂问题进行简化。,面向对象软件工程,面向对象建模模型是对事物的一种抽象,人们常常在正式建造实物之前,首先建立一个简化的模型,以便更透彻地了解它的本质,抓住问题的要害;在模型中,人们总是剔除那些与问题无关的、非本质的东西,从而使模型与真实的实体相比更加简单、易于把握;,面向对象软
6、件工程,面向对象建模在建造一个复杂系统时,开发者必须从多种不同的角度来抽象系统,使用准确的符号来构造模型,然后检查这些模型是否符合系统的需求,并逐步添加细节,从而将这些模型转化成实现方案。建模语言是面向对象建模中的一个非常关键的因素。,标准建模语言UML,UML的设计目标:运用面向对象概念来构造系统模型建立起从概念模型直至可执行体之间明显的对应关系着眼于那些有重大影响的问题创建一种对人和机器都适用的建模语言,标准建模语言UML,UML概要UML由OMG与1997年11月批准为标准建模语言。UML建立在当今国际上最有代表性的三种面向对象方法(Booch方法,OMT方法,OOSE方法)的基础之上。
7、UML是一种建模语言而不是一种方法,UML本身是独立于过程的。,标准建模语言UML,UML为人们提供了从不同的角度去观察和展示系统的各种特征的一种标准表达方式。在UML中,从任何一个角度对系统所作的抽象都可能需要用几种模型图来描述,而这些来自不同角度的模型图最终组成了系统的完整模型。,标准建模语言UML,一般而言,我们可以从以下几种常用的视角来描述一个系统:系统的使用实例:从系统外部的操作者的角度描述系统的功能。系统的逻辑结构:描述系统内部的静态结构和动态行为,即从内部描述如何设计实现系统功能。系统的构成:描述系统由哪些程序构件所组成。系统的并发性:描述系统的并发性,强调并发系统中存在的各种通
8、信和同步问题。系统的配置:描述系统的软件和各种硬件设备之间的配置关系。,标准建模语言UML,UML模型图(5类,10种):用例图静态图(类图,对象图,包图)行为图(状态图,活动图)交互图(顺序图,合作图)实现图(构件图,配置图),标准建模语言UML,UML语义元-元模型:元模型的基础体系结构,定义一种说明元模型的语言元模型:元-元模型的一个实例,定义一种说明模型的语言模型:元模型的一个实例,定义一种语言来描述信息领域用户对象:模型的一个实例,定义一个特定的领域,标准建模语言UML,UML主要文件:UML概要(UML Summary)UML语义(UML Semantics)UML表示法指南(UM
9、L Notation Guide)对象约束语言规约(Object Contraint language Specification):该文件定义并介绍了一种对象约束语言(OCL),其用途是用来说明在图形化的系统模型中不能充分表达的建模信息。它是一种形式化语言。http:/,标准建模语言UML(用例图),从本质上将,一个用例是用户与计算机之间为达到某个目的的一次典型交互作用:用例描述了用户提出的一些可见的需求;用例可大可小;用例对应一个具体的用户目标,标准建模语言UML(用例图),用例图描述系统外部的执行者与系统的用例之间的某种联系。所谓用例是指对系统提供的功能(或称系统的用途)的一种描述;执行
10、者是那些可能使用这些用例的人或外部系统;用例和执行者之间的联系描述了“谁使用哪个用例”。,标准建模语言UML(用例图),用例图着重于从系统外部执行者的角度来描述系统需要提供哪些功能,并且指明了这些功能的执行者是谁;用例图在UML方法中占有十分重要的地位,人们甚至称UML是一种用例图驱动的开发方法。,标准建模语言UML(用例图),用例图中的图符:用例 执行者 系统:用于界定系统功能范围,描述该系统功能的用例都置于其中,而描述外部实体的执行者都置于其外。关联:连接执行者和用例,表示执行者所代表的系统外部实体与该用例所描述的系统需求有关。,标准建模语言UML(用例图),用例图中的图符:使用:由用例A
11、连向用例B,表示用例A中使用了用例B中的行为或功能。扩展:由用例A连向用例B,表示用例B描述了一项基本需求,而用例A则描述了该基本需求的特殊情况。注释体:对UML实体进行文字描述 注释连接:将注释体与要描述的实体连接,说明该注释体是针对该实体所进行的描述。,使用,扩展,标准建模语言UML(用例图),设置边界,风险分析,交易估计,进行交易,超越边界,更新帐目,评价,贸易经理,营销人员,记帐系统,销售人员,使用,使用,扩展,标准建模语言UML(用例图),用例模型的获取:获取执行者获取用例,标准建模语言UML(用例图),获取执行者:谁使用系统的主要功能(主要使用者)?谁需要系统支持他们的日常工作?谁
12、来维护、管理系统使其能正常工作(辅助使用者)?系统需要控制哪些硬件?系统需要与其他哪些系统交互?对系统产生的结果感兴趣的是哪些人?,标准建模语言UML(用例图),获取用例:执行者要求系统提供哪些功能?执行者需要读、产生、删除、修改或存储系统中的信息有哪些类型?必须提醒执行者的系统事件有哪些?执行者必须提醒系统事件有哪些?怎样把这些事件表示成用例中的功能?,标准建模语言UML(类图),在面向对象的建模技术中,类、对象和它们之间的关系是最基本的建模元素。对于一个想要描述的系统,其类模型、对象模型以及它们之间的关系揭示了系统的结构。类图描述了系统中的类及其相互之间的各种关系,其本质反映了系统中包含的
13、各种对象的类型以及对象间的各种静态关系(关联,子类型)。,标准建模语言UML(类图),类图中的图符:类:表示一个类,其中第一栏是类的 名,第二栏是类的属性,第三栏是类的操作。包:包是一种分组机制,表示一个类 图集合。关联:用于表示类的对象之间的关系。其特殊形式有组成关联和聚集关联。,Operations,Attributes,Class,Package,标准建模语言UML(类图),类图中的图符:聚集关联:用于表示类的对象之间的关系是整体与部分的关系。组成关联:用于表示类的对象之间的关系:整体拥有各部分,部分与整体共存,如整体不存在了,部分也会随之消失。泛化关联:泛化关系(继承关系)定义了类和包
14、间的一般元素和特殊元素之间的分类关系。,标准建模语言UML(类图),类图中的图符:依赖关系:有两个类或包元素X、Y,修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖于元素X。对象:类的一个实例。链接:用于表示对象间的关联关系的一个实例。,Values,Object,标准建模语言UML(类图),订单,DateReceivedisPrepaidnumber:Stringprce:Money,Dispatch()close(),订单项,Quantity:Integerprice:MoneyisSatisfied:Boolean,1,*,项,客户,Nameaddress,Credi
15、tRating():String,团体客户,ContactNamecreditRatingcreditLimit,Remind()billforMonth(Intrger),雇员,产品,个人客户,CreditCard#,creditRating()=“poor”,销售代表,1,*,0.1,1,*,*,标准建模语言UML(对象图),对象图对象图是类图的一种变形。除了在对象名下面要加下划线以外,对象图中所使用的符号与类图基本相同。对象图是类图的一种实例化。一张对象图表示的是与其对应的类图的一个具体实例,即系统在某一时期或者某一特定时刻可能存在的具体对象实例以及它们相互之间的具体关系。,标准建模语言
16、UML(对象图),作者,计算机,名字:String内存:Ineger,名字:String年龄:Integer,0.1,Uses,1.*,小王:作者,小王的工作PC:计算机,名字=“王小影”年龄=32,小王的工作PC:计算机,名字=“Compaq X”内存=32,名字=“Dell486”内存=64,类图,对象图,标准建模语言UML(对象图),对象图并不象类图那样具有重要的地位,但是利用它可以帮助我们通过具体的实例分析,更具体直观地了解复杂系统类图的丰富内涵。对象图还常常被用作合作图的一部分,用以展示一组对象实例之间的动态协作关系。,标准建模语言UML(包图),包是类的集合。包图所显示的是类的包以
17、及这些包之间的依赖关系。如果两个包中的任意两个类之间存在依赖关系,则这两个包之间存在依赖关系。包的依赖是不传递的。,标准建模语言UML(包图),订单获取界面,订单获取应用,AWT,邮件发送清单界面,邮件发送清单应用,订单,顾客,标准建模语言UML(包图),何时使用包图:在大项目中,包图是一种重要工具(有专家建议,只要你不能将整个系统的类图压缩到一张A4纸上,你就应该使用包图);依赖产生耦合,应该尽量将依赖性减少到最低程度;包的概念对测试也是特别有用的。,标准建模语言UML(状态图),状态图状态图是对类的一种补充描述,它展示了此类对象所具有的可能的状态以及某些事件发生时其状态的转移情况。在状态图
18、中,状态由圆角矩形表示。状态的改变称作转移,状态转移由箭头表示,箭头旁可以标出转移发生的条件。状态转移可以伴随有某个动作,它表明当转移发生时系统要做什么。,标准建模语言UML(状态图),下降状态,在第一层,上升状态,向第一层下降,空闲状态,上升,到达,到达,上升,超时,下降,到达第一层,标准建模语言UML(顺序图),顺序图顺序图描述了对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。顺序图由一组对象构成,每个对象分别带有一条竖线,称作对象的生命线,它代表时间轴,时间沿竖线向下延伸。顺序图描述了这些对象随着时间的推移相互之间交换消息的过程。消息用从一条垂直的对象生命线指向另一个对象的生命
19、线的水平箭头表示。图中还可以根据需要增加有关时间的说明和其他注释。,标准建模语言UML(顺序图),:计算机,:打印服务程序,:打印队列,:打印机,打印文件,打印文件打印机空闲,保存文件打印机忙,标准建模语言UML(顺序图),P1,P2,P3,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,标准建模语言UML(顺序图),顺序图中的事件顺序:因果性(Causality):对同一消息而言,发送事件先于接收事件。可控性(Controlability):对同一对象而言,事件p出现在发送事件q的上方,则p先于q。队列性(FIFO):对同一对象而言,接收事件p出现在接收事件q的上方,并且它们分
20、别对应的发送事件也位于同一个对象,则p先于q。,标准建模语言UML(顺序图),e1,e2,e3,e4,e5,e6,e8,e7,e9,e10,e12,e11,P1,P2,P3,P1,P2,P3,e1,e2,e3,e4,e6,e5,e7,e8,e9,e11,e10,e12,标准建模语言UML(合作图),合作图与顺序图作用相同,合作图也是用来描述系统中对象之间的动态协作关系。合作图侧重于描述各个对象之间存在的消息收发关系(交互关系),而不专门突出这些消息发送的时间顺序。在合作图中,对象同样是用一个对象图符来表示,箭头表示消息发送的方向,而消息执行的顺序则由消息的编号来表明。,标准建模语言UML(合作
21、图),:计算机,:打印队列,:打印服务程序,:打印机,1.打印文件,3.保存文件打印机忙,2.打印文件打印机空闲,标准建模语言UML(合作图),合作图的布局方法能更清楚地表示出对象之间静态的连接关系。顺序图突出执行的时序,能更方便地看出事情发生的次序。如果要描述在一个用例中的几个对象协同工作的行为,交互图是一种有力的工具。交互图擅长显示对象之间的合作关系,尽管它并不对这些对象的行为进行精确的定义。如果想要描述跨越多个用例的单个对象的行为,应当使用状态图;如果想要描述跨越多个用例或多个线程的多个对象的复杂行为,则需考虑使用活动图。,标准建模语言UML(活动图),活动图活动图描述系统中各种活动的执
22、行顺序,通常用于描述一个操作中所要进行的各项活动的执行流程。同时,它也常被用来描述一个用例的处理流程,或者某种交互流程。活动图由一些活动组成,图中同时包括了对这些活动的说明。当一个活动执行完毕之后,控制将沿着控制转移箭头转向下一个活动。活动图中还可以方便地描述控制转移的条件以及并行执行等要求。,标准建模语言UML(活动图),加水到容器中,将咖啡放到过滤器中,点燃咖啡炉,取出咖啡杯,把过滤器放到咖啡炉上,冲调咖啡,倒咖啡,找饮料,取一听可口可乐,喝饮料,人,找到可口可乐,没有可口可乐,没有咖啡,找到咖啡,熄灭咖啡炉,标准建模语言UML(活动图),活动图最适合支持描述并行行为,这使之成为支持工作流
23、建模的最好工具。活动图最大的缺点是很难清楚地描述动作与对象之间的关系。,标准建模语言UML(活动图),对于以下情况可以使用活动图:(1)分析用例;(2)理解牵涉多个用例的工作流;(3)处理多线程应用。在下列情况下,一般不要使用活动图:(1)显示对象间合作;(2)显示对象在其生命周期内的运转情况。,标准建模语言UML(构件图),构件图构件图描述软件构件以及它们之间的依赖关系,从而便于人们分析和发现当修改某个构件时可能对那些构件产生影响,以便对它们做相应的修改或更新。构件可以是源代码构件、二进制目标码构件、可执行构件或文档构件。,标准建模语言UML(构件图),Whnd.cpp:窗口处理器,Grap
24、hic.dll:图形库,Comhnd.cpp:命令处理器,Main.cpp:主类,Whnd.obj:窗口处理器,Comhnd.obj:命令处理器,Main.obj:主类,client.exe:客户程序,标准建模语言UML(配置图),配置图配置图描述系统中硬件和软件的物理配置情况和系统体系结构。在配置图中,用结点表示实际的物理设备,如计算机和各种外部设备等,并根据它们之间的连接关系,将相应的结点连接起来,并说明其连接方式。在结点里面,说明分配给该结点上运行的可执行构件或对象,从而说明哪些软件单元被分配在哪些结点上运行。,标准建模语言UML(配置图),客户A:个人电脑PC,客户B:个人电脑PC,数
25、据库服务器:VAX,服务器:02,TCP/IP协议,TCP/IP协议,DecNet协议,UML支撑环境,Rational Rose基于UML的模型驱动的软件开发环境全面支持团队整体合作的开发形式集成了最新软件开发技术和思想,UML的扩展,实时模型 UML-RT可执行模型企业计算 Enterprise Distributed Object Computing(EDOC)Enterprise Application Integration(EAI)软件过程 Rational Unified Process(RUP)其他 Standard for Data Warehousing CORBA map
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 软件工程 标准 建模 语言 UML
链接地址:https://www.31ppt.com/p-5461866.html