第8章-统一建模语言UML简介_第1页
第8章-统一建模语言UML简介_第2页
第8章-统一建模语言UML简介_第3页
第8章-统一建模语言UML简介_第4页
第8章-统一建模语言UML简介_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

第8章统一建模语言UML简介8.1UML的发展历史8.2UML的建模方法8.3使用UML的准则10/12/20231上海大学计算机学院UML(UnifiedModelingLanguage)JamesRumbaughGradyBooch

IvarJacobson8.1UML的发展历史Booch、Rumbaugh和Jacobson发起,在Booch方法、OMT方法和OOSE方法的基础上,汲取其它面向对象方法的优点,几经修改而成。

10/12/20232上海大学计算机学院面向对象分析与设计方法的发展在20世纪80年代末到90年代中出现了一个高潮,统一建模语言UML就是这个高潮的产物。UML已得到许多世界知名公司的使用和支持,并于1997年11月17日被OMG(对象管理组织)采纳,成为面向对象建模的标准语言。UML已经迅速成长为一个事实上的工业标准。不论在计算机学术界、软件产业界还是在商业界,UML已经逐渐成为人们为各种系统建模、描述系统体系结构、商业体系结构和商业过程时使用的统一工具,而且在实践过程中人们还在不断扩展它的应用领域。10/12/20233上海大学计算机学院8.2UML的建模方法

UML的模型:DeploymentDiagramUse-caseDiagramScenarioDiagramsScenarioDiagramsSequenceDiagramStateDiagramsStateDiagramsStateDiagramComponentDiagramsComponentDiagramsComponentDiagramModelsStateDiagramsStateDiagramsObjectDiagramScenarioDiagramsScenarioDiagramsCollaborationDiagramActivityDiagramStateDiagramsStateDiagramsClassDiagram结构建模行为建模体系结构建模10/12/20234上海大学计算机学院1.用例图(Use-caseDiagram)

用例图着重于从系统外部执行者的角度来描述系统需要提供哪些功能,并且指明了这些功能的执行者是谁。用例(Use-case)是系统的一种行为,它为执行者产生一定的价值结果。用例描述执行者想要系统完成的事情。用例应该是一个完整的任务。执行者(Actor)是同系统交互的所有事物,如人、其它软件、数据存储、硬件设备或网络。每个执行者定义一种特定角色。贷款一、结构建模10/12/20235上海大学计算机学院用例图示例:客户代表订购货物获取订单状态获取目录取消订单退货运送货物发送货物订单处理客户运输公司供应商10/12/20236上海大学计算机学院获取执行者:谁使用系统的主要功能(主要使用者)?谁需要系统支持他们的日常工作?谁来维护、管理系统使其能正常工作(辅助使用者)?系统需要控制哪些硬件?系统需要与其他哪些系统交互?对系统产生的结果感兴趣的是哪些人?用例模型的获取:(1)获取执行者(2)

获取用例获取用例:执行者要求系统提供哪些功能?执行者需要读、产生、删除、修改或存储系统中的信息有哪些类型?必须提醒执行者的系统事件有哪些?执行者必须提醒系统事件有哪些?怎样把这些事件表示成用例中的功能?10/12/20237上海大学计算机学院描述完成用例功能需要的步骤:前置条件事件流基本路径可选路径后置条件10/12/20238上海大学计算机学院事件流示例:前置条件:一个合法的客户已登录到系统事件流:基本路径1.当客户选择订购货物时用例开始2.客户输入自己的姓名和地址3.客户输入产品代码a)系统显示产品描述和价格b)系统在客户订单中添加该产品的价格循环结束4.客户输入信用卡支付信息5.客户选择提交6.系统检验输入的信息,把该订单作为未完成的订单保存,同时向记账系统提供支付信息7.支付确认后,订单也被标记为已确认,返回客户一个订单ID。用例结束订购货物用例描述10/12/20239上海大学计算机学院事件流示例:(续)可选路径在选择提交(第5步)前的任何时候,客户可选择“取消”。这次订购没被保存,用例结束。在第6步,如果有任何不正确的信息,系统提示客户修改这些信息在第7步,如果支付每被确认,系统将提示客户去支付信息或取消。如果客户选择修正信息,就回到基本路径的第4步,否则用例结束。后置条件如果订单没有被取消,它将被保存在系统里,并做上标记10/12/202310上海大学计算机学院2.类图(ClassDiagram)类图描述类和类与类之间的静态关系,它是从静态角度表示系统的,因此类图属于一种静态模型。(1)类(Class)

类的图形符号10/12/202311上海大学计算机学院类的示例:10/12/202312上海大学计算机学院(2)关系(Relationship)事物之间的联系图形上:一条线,不同线表示不同种类的关系三种关系关联关系泛化关系依赖和细化

依赖细化关联泛化聚集10/12/202313上海大学计算机学院1)关联关系①普通关联普通关联是最常见的关联关系,只要在类与类之间存在连接关系就可以用普通关联表示。普通关联的图示符号是连接两个类之间的直线。在类图中还可以表示关联中的数量关系,即参与关联的对象的个数。在UML中用重数说明数量或数量范围,例如,

0··1表示0到1个对象

0··*或*表示0到多个对象

1··15表示1到15个对象

3表示3个对象如果图中未明确标出关联的重数,则缺省重数是1。普通关联示例10/12/202314上海大学计算机学院②关联的角色在任何关联中都会涉及到参与此关联的对象所扮演的角色(即起的作用),在某些情况下显式标明角色名有助于别人理解类图。如果没有显式标出角色名,则意味着用类名作为角色名。关联的角色10/12/202315上海大学计算机学院③限定关联目录与文件的受限关联目录与文件的关联10/12/202316上海大学计算机学院④关联类为了说明关联的性质可能需要一些附加信息。可以引入一个关联类来记录这些信息。关联中的每个连接与关联类的一个对象相联系。关联类通过一条虚线与关联连接。关联类示例10/12/202317上海大学计算机学院⑤聚集聚集也称为聚合,是关联的特例。聚集表示类与类之间的关系是整体与部分的关系。如果在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成,则该聚集称为共享聚集。如果部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也会随之消失(或失去存在阶值了),则该聚集称为复合聚集(简称为组成)。共享聚集示例10/12/202318上海大学计算机学院复合聚集示例10/12/202319上海大学计算机学院2)泛化关系

UML中的泛化关系就是通常所说的继承关系,它是通用元素和具体元素之间的一种分类关系。在UML中,用一端为空心三角形的连线表示泛化关系,三角形的顶角紧挨着通用元素。

注意,泛化针对类型而不针对实例,一个类可以继承另一个类,但一个对象不能继承另一个对象。

泛化可进一步划分成普通泛化和受限泛化。①普通泛化普通泛化的概念与继承概念基本相同,此处不再过多解释。②受限泛化可以给泛化关系附加约束条件,以进一步说明该泛化关系的使用方法或扩充方法,这样的泛化关系称为受限泛化。预定义的约束有4种:多重、不相交、完全和不完全。这些约束都是语义约束。10/12/202320上海大学计算机学院普通泛化示例10/12/202321上海大学计算机学院多重继承示例10/12/202322上海大学计算机学院3)依赖和细化①依赖关系依赖关系描述两个模型元素(类、用例等)之间的语义连接关系:其中一个模型元素是独立的,另一个模型元素不是独立的,它依赖于独立的模型元素,如果独立的模型元素改变了,将影响依赖于它的模型元素。友元依赖关系示例10/12/202323上海大学计算机学院②细化关系当对同一事物在不同抽象层次上描述时,这些描述之间具有细化关系。细化是UML中的术语,表示对事物更详细一层的描述。假设两个元素A和B描述同一个事物,它们的区别是抽象层次不同,如果B是在A的基础上的更详细的描述,则称B细化了A,或称A细化成了B。细化的图示符号为由元素B指向元素A的、一端为空心三角的虚线(不是实线)。细化主要用于模型之间的合作,表示各开发阶段不同抽象层次的模型的相关性,常用于跟踪模型的演变。细化关系的示例10/12/202324上海大学计算机学院关联示例:关联的修饰名称角色多重性人公司工作名称雇佣雇主角色*1··*多重性10/12/202325上海大学计算机学院类图示例:10/12/202326上海大学计算机学院3.对象图(Objectdiagram):TransactionTran:TransactionTran

对象是类的实例,对象之间的连接是类之间关联的实例,因此,对象图可以看作是类图的实例,能帮助人理解一个比较复杂的类图。

对象名的图形表示对象图是类图的一种变形。除了在对象名下面要加下划线以外,对象图中所使用的符号与类图基本相同。对象图是类图的一种实例化。一张对象图表示的是与其对应的类图的一个具体实例,即系统在某一时期或者某一特定时刻可能存在的具体对象实例以及它们相互之间的具体关系。对象名:类名:类名对象名10/12/202327上海大学计算机学院对象图示例:对象图小王:作者小王的工作PC:计算机名字=“王小影”年龄=32小王的工作PC:计算机名字=“CompaqX”内存=32名字=“Dell486”内存=64作者计算机名字:String内存:Ineger名字:String年龄:IntegerUses1..*类图对象图并不象类图那样具有重要的地位,但是利用它可以帮助我们通过具体的实例分析,更具体直观地了解复杂系统类图的丰富内涵。10/12/202328上海大学计算机学院二、行为建模顺序图协作图状态图活动图10/12/202329上海大学计算机学院1.顺序图(SequenceDiagram)顺序图描述对象之间的动态交互关系,着重表现对象间消息传递的时间顺序。内容对象对象生命线激活(控制焦点)消息(表示为连接发送者和接收者的一根箭头线,箭头的形状表示消息的类型)各种图都有的注解和约束:TransactionTran:TransactionTran10/12/202330上海大学计算机学院UML定义了三种消息。

·简单消息:表示简单的控制流,它只是表示控制从一个对象传给另一个对象,而没有描述通信的任何细节。

·同步消息:表示嵌套的控制流,操作的调用是一种典型的同步消息。调用者发出消息后必须等待消息返回,只有当处理消息的操作执行完毕后,调用者才可以继续执行自己的操作。

·异步消息:表示异步控制流,发送者发出消息后不用等待消息处理完就可以继续执行自己的操作。异步消息主要用于描述实时系统中的并发行为。可以把一个简单消息和一个同步消息合并成一个消息,这样的消息意味着操作调用一旦完成就立即返回。10/12/202331上海大学计算机学院顺序图示例:10/12/202332上海大学计算机学院2.协作图(CollaborationDiagram)与顺序图作用相同,协作图也是用来描述系统中对象之间的动态协作关系。协作图侧重于描述各个对象之间存在的消息收发关系(交互关系),而不专门突出这些消息发送的时间顺序。在协作图中,对象同样是用一个对象图符来表示,箭头表示消息发送的方向,而消息执行的顺序则由消息的编号来表明。除了描述对象间的关联外,还显示对象间的消息传递。10/12/202333上海大学计算机学院协作图示例::计算机:打印队列:打印服务程序:打印机1.打印文件

3.保存文件[打印机忙]2.打印文件[打印机空闲]10/12/202334上海大学计算机学院3.状态图(StateDiagram)描绘对象的状态、触发状态转换的事件、以及对象的行为(对事件的响应)。事件:指某个时刻所发生的事情,是对引起对象从一种状态转换到另一种状态的现实世界中的事件的抽象。状态:指对象在其生命周期中的某个特定阶段所处的某种情形。行为:指对象达到某种状态时所做的一系列处理操作每个类的动态行为用一张状态图来描绘,各个类的状态图通过共享事件合并起来,从而构成系统的动态模型。状态1DO:行为1初始事件事件1[条件1]结束事件状态2DO:行为210/12/202335上海大学计算机学院状态图示例:电话系统的状态图10/12/202336上海大学计算机学院4.活动图(ActivityDiagram)是状态图的一个变体,但状态是计算过程的活动状态(计算过程中命令的执行或工作流中活动的进行),而不是普通对象状态。活动图描述系统中各种活动的执行顺序,通常用于描述一个操作中所要进行的各项活动的执行流程。同时,它也常被用来描述一个用例的处理流程,或者某种交互流程。活动图由一些活动组成,图中同时包括了对这些活动的说明。当一个活动执行完毕之后,控制将沿着控制转移箭头转向下一个活动。活动图中还可以方便地描述控制转移的条件以及并行执行等要求。活动图本质上是一个流程图,表示从活动到活动的控制流。10/12/202337上海大学计算机学院活动图示例:加水到容器中将咖啡放到过滤器中点燃咖啡炉取出咖啡杯把过滤器放到咖啡炉上冲调咖啡倒咖啡找饮料取一听可口可乐喝饮料人[找到可口可乐][没有可口可乐][没有咖啡][找到咖啡]熄灭咖啡炉10/12/202338上海大学计算机学院协作图的布局方法能更清楚地表示出对象之间静态的连接关系。顺序图突出执行的顺序,能更方便地看出事情发生的次序。如果要描述在一个用例中的几个对象协同工作的行为,交互图(顺序图和协作图)是一种有力的工具。交互图擅长显示对象之间的协作关系,尽管它并不对这些对象的行为进行精确的定义。如果想要描述跨越多个用例的单个对象的行为,应当使用状态图;如果想要描述跨越多个用例或多个线程的多个对象的复杂行为,则需考虑使用活动图。关于行为建模中各种图的小结:10/12/202339上海大学计算机学院对于以下情况可以使用活动图:(1)分析用例;(2)理解牵涉多个用例的工作流;(3)处理多线程应用。在下列情况下,一般不要使用活动图:(1)显示对象间合作;(2)显示对象在其生命周期内的运转情况。活动图最适合支持描述并行行为,这使之成为支持工作流建模的最好工具。活动图最大的缺点是很难清楚地描述动作与对象之间的关系。10/12/202340上海大学计算机学院三、体系结构建模构件图配置图10/12/202341上海大学计算机学院1.构件图(ComponentDiagram)系统建模过程中将可重用的块包装成具有可替代性的物理单元,这些单元称为构件。构件图用构件及构件间的接口和依赖关系来表示设计元素的具体实现。构件图描述软件构件及构件之间的依赖关系,显示代码的静态结构。CourseRegister构件(Component)10/12/202342上海大学计算机学院构件图示例:

财务系统.exe教学管理.exe

课程课程管理.dll成绩管理.dll人事管理.dll开设课程选课注册教师学生10/12/202343上海大学计算机学院2.配置图(DeploymentDiagram)配置图描述处理器、硬件设备和软件构件在运行时的架构,它显示系统硬件的物理拓扑结构及在此结构上执行的软件。使用配置图可以显示硬件节点的拓扑结构和通信路径、节点上运行的软件构件、软件构件包含的逻辑单元(对象、类)等。配置图常用于帮助人理解分布式系统。表示系统运行时包含的节点以及节点间的联系,节点包含构件的配置,每个构件必须存在于某个节点上。CourseCatalog节点(Node)10/12/202344上海大学计算机学院配置图示例:

局域网InternetATM客户机银行储户ATM应用服务器ATM数据服务器ATM系统配置图10/12/202345上海大学计算机学院8.3使用UML的准则1.不要试图使用所有的图形和符号应该根据项目的特点,选用最适用的图形和符号。一般来说,应该优先选用简单的图形和符号,例如,用例、类、关联、属性和继承等概念是最常用的。

2.不要为每个事物都画一个模型应该把精力集中于关键的领域。最好只画几张关键的图,经常使用并不断更新、修改这几张图。

10/12/202346上海大学计算机学院3.应该分层次地画模型图根据项目进展的不同阶段,用正确的观点画模型图。如果处于分析阶段,应该画概念层模型图;当开始着手进行软件设计时,应该画说明层模型图;当考察某个特定的实现方案时,则应画实现层模型图。使用UML的最大危险是过早地陷入实现细节。为了避免这一危险,应该把重点放在概念层和说明层。4.模型应该具有协调性模型必须在每个抽象层次内和不同的抽象层次之间协调。10/12/202347上海大学计算机学院5.模型和模型元素的大小应该适中过于复杂的模型和模型元素难于理解也难于使用,这样的模型和模型元素很难生存下去。如果要建模的问题相当复杂,则可以把该问题分解成若干个子问题,分别为每个子问题建模,每个子模型构成原模型中的一个包,以降

温馨提示

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

评论

0/150

提交评论