UML(统一建模语言)基础

上传人:jiups****uk12 文档编号:53974946 上传时间:2018-09-06 格式:PPT 页数:103 大小:4.16MB
返回 下载 相关 举报
UML(统一建模语言)基础_第1页
第1页 / 共103页
UML(统一建模语言)基础_第2页
第2页 / 共103页
UML(统一建模语言)基础_第3页
第3页 / 共103页
UML(统一建模语言)基础_第4页
第4页 / 共103页
UML(统一建模语言)基础_第5页
第5页 / 共103页
点击查看更多>>
资源描述

《UML(统一建模语言)基础》由会员分享,可在线阅读,更多相关《UML(统一建模语言)基础(103页珍藏版)》请在金锄头文库上搜索。

1、第三章 UML,易国洪,2,知识图谱,3,Agenda,什么是UML 什么是模型 常见的UML认识误区,4,什么是UML,UML是一种Language(语言) UML是一种Modeling(建模)Language UML是Unified(统一)Modeling Language已进入全面应用阶段的事实标准 应用领域正在逐渐扩展,包括嵌入式系统建模、业务建模、流程建模等多个领域 成为“产生式编程”的重要支持技术:MDA、 可执行UML等,5,UML发展历程,6,UML的统一,活动图来自James Odell, 状态图来自David Harel,接口来自Microsoft,包的符号来自Apple

2、Macintosh,7,什么是模型,模型是对现实的简化,8,建模的目的与原则,帮助我们按照实际情况或按我们需要的样式对系统进行可视化;提供一种详细说明系统的结构或行为的方法;给出一个指导系统构造的模板;对我们所做出的决策进行文档化 仅当需要模型时,才构建它 选择要创建什么模型对如何动手解决问题和如何形成解决方案有着意义深远的影响;最好的模型是与现实相联系的;,9,为什么使用UML建模,UML是一种统一的、标准化的建模语言 UML是一种应用面很广泛的建模语言,10,UML可以建立什么模型,11,草图与蓝图,蓝图一般是指采用CASE工具绘制的、正式的、规范的UML模型 草图则通常是指手工绘制的、规

3、范度较低的在纸张的UML模型 大胆地绘制草图,尽可能基于草图进行讨论。对于局部的、重要性不高的、共享范围较小的UML模型,直接将草图扫描到电脑存档即可;对于全局的、重要性高的、高度共享的,在草图的基础上用CASE工具绘制成为正式的蓝图,并将其纳入统一的模型管理中,12,谁应该建模,业务建模:以领域专家为主,需求分析人员是主力,系统分析员、架构师可参与 需求模型:以需求分析人员为主,系统分析员是主力,领域专家提供指导,架构师和资深开发人员参与 设计模型:高层设计模型以架构师为主,系统分析员从需求方面提供支持,资深开发人员从技术实现方面提供支持。详细设计模型则以资深开发人员为主,架构师提供指导。

4、实现模型:以资深开发人员(设计人员)为主,架构师提供总体指导。 数据库模型:以数据库开发人员为主,架构师提供指导,资深开发人员(设计人员)予以配合。,13,UML 最适于的过程,Use-case driven 用例驱动的 Architecture-centric 以体系结构为中心 Iterative & incremental 迭代的和增量的,14,UML修饰,命名:也就是为对象、关系和图起名字。和任何语言一样,名字都是一个标识符 UML修饰:在为了更好的表示这些细节,UML中还提供了一些修饰符号,例如不同可视性的符号、用斜体字表示抽象类,15,UML定义的图,16,4+1视图,Use cas

5、e View描述系统的外部特性、系统功能等。,Implementation View 表示系统的实现特征,常用构件图表示。,Design View 描述系统设计特征,包括结构模型视图和行为模型视图,前者描述系统的静态结构(类图、对象图),后者描述系统的动态行为(交互图、状态图、活动图)。,Process View 表示系统内部的控制机制。常用类图描述过程结构,用交互图描述过程行为。,Deployment View部署视图描述系统的物理部署特征。用部署图表示。,Logic Model,Physic Model,17,UML视图和图,18,UML图形分类,19,UML模型关系的种类,20,关联关系

6、,关联(Association)表示两个类之间存在某种语义上的联系。关联关系提供了通信的路径,它是所有关系中最通用、语义最弱的。 在UML中,使用一条实线来表示关联关系 在关联关系中,有两种比较特殊的关系:聚合和组合 聚合关系:聚合(Aggregation)是一种特殊形式的关联。聚合表示类之间的关系是整体与部分的关系 如果发现“部分”类的存在,是完全依赖于“整体”类的,那么就应该使用“组合”关系来描述,21,泛化、实现、扩展与依赖,泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。 实现关系是用来规定接口和实现接口的类或组件之间的关系。接口是操作的集合,这些操作

7、用于规定类或组件的服务。 扩展表示将一个构造型附加到一个元类(metaclass)上,使得元类的定义中包括这个构造型。 有两个元素X、Y,如果修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖(Dependency)于元素X。,22,类图 class diagram,描述类以及类之间的关系 单个类的符号表示,访问权限的表示:public +; protect # ; private 类符号的几种变体,23,表示类之间关系的UML符号,派生 Student 派生GraduateStudent 继承 GraduateStudent继承Student 泛化 Student泛化Gra

8、duateStudent 特化 GraduateStudent继承Student,24,聚合aggregation: Airport 聚集Aircraft 一个机场可以有0架或多架(*)飞机 一架飞机可以正停在0个或1个机场,25,组合composition: Car由Tire组成 汽车包含轮胎 1辆汽车包含4到5个轮胎 1个轮胎只能装在1辆汽车上,26,汽车使用(依赖)加油站,27,28,示例类图,先看清有哪些类,然后看看类之间存在的关系,并结合多重性来理解类图的结构特点以及各个属性和方法的含义,29,读图过程,读出类:图中共有7个类,Order、OrderItem、Customer、Con

9、signee、DeliverOrder、Peddlery、Prodcut 读出关系:从图中关系最复杂(也就是线最密集)的类开始阅读,本图中最复杂的就是Order类。 1)OrderItem和Order之间是组合关系,根据箭头的方向可知Order包含了OrderItem。 2)Order类和Customer、Consignee、DeliverOrder是关联关系。也就是说,一个订单和客户、收货人、送货单是相关的。,30,接口与抽象类,抽象类是一种不能够被直接实例化的类,也就是说不能够创建一个属于抽象类的对象接口则是一种类似于抽象 类的机制,它是一个没有 具体实现的类,31,关联类,关联类即是关联

10、也是类,它不仅像关联那样连接两个类,而且还可以定义一组属于关系本身的特性,32,对象图,对象是类的实例,是具有具体属性值的具体事物 例如你的时钟,品牌是:瑞士,型号是R001 下图中的图标说明了如何用UML来表示对象。注意对象的图标也是一个矩形,并且对象名下面要带下划线。具体实例的名字位于冒号的左边而该实例所属的类名位于冒号的右边。实例的名字以一个小写字母开头。也有可能是一个匿名类。,33,开发过程,34,(0)业务 (1)需求 (2)分析:结构 (3)分析:行为 (4)设计,35,两种分析方法,36,用例图,用例图能描述系统、子系统、或类的行为。它将系统功能划分成对参与者有用的需求。站在用户

11、的角度看待系统、定义系统 ;使用用户能够看懂的语言来表述。表示处于同一系统中的参与者和用例之间的关系的图 表示法:用例图是包括参与者、由系统边界(一个矩形)封闭一组用例、参与者和用例之间的关联、用例间的关系以及参与者泛化的图。,37,用例图组成元素,参与者 用例 系统边界 关系,38,参与者,参与者是与系统、子系统或类发生交互作用的外部用户、进程或其他系统的理想化概念。作为外部用户与系统发生交互作用,这是参与者的特征。 参与者可以是人,也可以是外部计算机系统和外部进程、硬件、时钟。 表示法:用一个小人图标表示参与者,1)外部系统:当系统需要与其它系统交互时,如ATM柜员机系统中,银行后台系统就

12、是一个参与者; 2)硬件设备:如果系统需要与硬件设备交互时,如在开发IC卡门禁系统时,IC卡读写就是一个参与者; 3)时钟:当系统需要定时触发时,时钟就是参与者,39,用例,用例是外部可见的一个系统功能单元,这些功能单元由系统所提供,并通过一系列系统功能单元与一个或多个参与者之间交换消息所表达。 用例的用途是在不揭示系统内部构造的情况下定义连贯的行为。 用例的定义包含用例所必需的所有行为 表示法:用例用一个包括用例名的椭圆形来表示。,40,系统边界,系统边界:描述了系统的边界,以及描述了外部系统与系统之间交互的边界 表示法: 用封闭所有用例的矩形表示,41,关系,参与者与用例以及用例之间的关系

13、,42,举例,43,状态图,显示一个状态机(包括简单状态、转换、嵌套组成状态)的图。 表示法:简单状态图表示成直边圆角矩形框,44,多种状态的表示,45,阅读最简单的状态图,最为核心的元素无外乎是两个:一个是用圆角矩形表示的状态(初态和终态例外);另一个则是在状态之间的、包含一些文字描述的有向箭头线,这些箭头线称为转换,46,转换的五要素,源状态:即受转换影响的状态 目标状态:当转换完成后对象的状态 触发事件:用来为转换定义一个事件,包括调用、改变、信号、时间四类事件 前置条件:布尔表达式,决定是否激活转换、 动作:转换激活时的操作,47,复杂转换,48,49,各种转换的区别,进入和退出转换:

14、当进入一个状态时,执行某个动作;或当退出某个状态时,执行什么动作。这时就可以使用进入和退出转换来表示 内部转换:用来处理一些不离开该状态的事件,50,使用复合状态,51,绘制状态图,绘制状态机图的理想步骤是:寻找主要的状态,确定状态之间的转换,细化状态内的活动与转换,用复合状态来展开细节 寻找主要状态:对于航班机票预订系统而言,显然包括的状态主要有 - 在刚确定飞机计划时,显然是没有任何预订的,并且在有人预订机票之前都将处于这种“无预订”状态 - 对订座而言显然有“部分预订”和“预订完”两种状态 - 而当航班快要起飞时,显然要“预订关闭” 总结一下,主要有四种状态:无预订、部分预订、预订完以及

15、预订关闭,52,活动图,活动图是一种特殊形式的状态机,用于对计算机流程和工作流程建模。活动图中的状态表示计算过程中所处的各种状态,而不是普通对象的状态 通常,活动图假定在整个计算处理的过程中没有外部事件引起中断,否则普通的状态机更适合描述这种情况 活动节点是活动图中最主要的元素之一,它用来表示一个活动 活动节点表示法:表示成带有圆形边线的矩形框,53,活动图的主要元素,分支与前置条件:分支是用菱形表示的,它有一个进入转换(箭头从外指向分支符号), 一个或多个离开转换(箭头从分支符 号指向外)。而每个离开转换上都会 有一个监护条件,用来表示满足什么 条件的时候执行该转换。 分岔与汇合:,54,转

16、换,转换:当一个活动结束时,控制流就会马上传递给下一个活动节点,在活动图中称之为“转换”,用一条带箭头的直线来表示,55,阅读简单活动图,56,带泳道的活动图,57,带对象流的活动图,58,59,绘制活动图,“活动图” 比较直观易懂;与传统的流程图十分的相近,只要能够读懂活动图,就不难画出活动图 绘制时首先决定是否采用泳道:主要根据活动图中是否要体现出活动的不同实施者 然后尽量使用分支、分岔和汇合等基本的建模元素来描述活动控制流程 如果需要,加入对象流以及对象的状态变化,利用一些高级的建模元素(如辅助活动图、汇合描述、发送信号与接收信号、引脚、扩展区)来表示更多的信息 活动图的建模关键是表示出控制流,其它的建模元素都是围绕这一宗旨所进行的补充,60,顺序图,UML中的4种交互图 顺序图:顺序图是一种强调消息时间顺序的交互图,为读者提供了控制流随着时间推移的清晰的可视化轨迹 通信图:UML 2.0中的通信图实际上就是UML 1中的协作图,它强调的是参加交互的对象的组织,为读者提供了在协作对象结构组织的语境中观察控制流的一个清晰的可视化轨迹 计时图:采用了一种带数字刻度的时间轴来精确地描述消息的顺序 交互概述图:是交互图和活动图的混合物,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

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