1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,统一建模语言,UML,快速入门,1,UML,的由来,UML,的全名:,unified modeling language,统一建模语言,UML,在,Rational Software,公司的支持下于1994年开始成形。,是,Grady Booch,James Rumbaugh,Ivar Jacobson,三位从事面向对象方法研究的专家合作研究的成果。,UML,标准是,OMG,协会在1997年制定的。,注,OMG,:,Object Management Group,,对象管理组织,2,为什么要建模,?,模型
2、帮助我们按照实际情况对系统进行可视化,模型可以让我们描述系统的结构和行为,并且利用它和同事沟通,模型提供了指导我们创建系统的模板,我们还可以利用它为使用系统的人提供帮助,模型对我们所做的决策进行文档化,3,UML,概述,什么是,UML?,一种通用可视化建模语言,。用来对软件密集型系统进行,可视化,、,详述,、,构造,和,文档化,。,Unified:,UML,是一种标准语言,广泛运用于全世界,Modelling:UML,用途在建模,Language:,一种建模语言,4,UML,的层次,UML,在设计上分3个层次,概念层,规格说明层,实现层,5,概念层:,一种图形表示方法,让相关人员可以一眼就看出
3、所要表达的含义,动物界,动物,狮子,UML,的层次,6,对象和类的概念,对象的引入,:,能用于指定一台特定的电视机,类的引入,:,把不同品牌、尺寸和型号的电视机捆绑在一个集合中,用于描述电视机的共同属性,应用类:,定义电视机模型,应用对象:,在类的基础上定义属于某一品牌和型号尺寸的一台特定的电视机,类是对象的抽象,对象是类的实例,7,UML,中的类,类名,属性:,类型=初始值,方法,名(参数表,):,返回值类型,TV,brandName:string,modelType:string,size:integer,turnon():boolean,turnoff():boolean,8,规格说明层
4、一种图形,目的是将该图形转换为程序代码。,UML,的层次,9,实现层:,将规格说明转换为程序代码。,UML,的层次,10,UML,基础知识,-,事物,事物类型,内容,表示法举例,结构事物,类,接口,用例,组件,结点等,动作事物,交互,状态等,分组事物,包,注释事物,解释部分,11,UML,基础知识,-,关系,关系,功能,表示法,关联,实例之间连接的描述,依赖,两个模型元素间的关系,对一个元素(提供者)的改变可能影响或提供信息给其他元素,泛化,更概括的描述和更具体的种类间的关系,适用于继承,实现,说明和实现间的关系,12,依赖,dependency,一个事物(独立事物)发生变化会影响,使用,
5、它的另一个事物(依赖事物),但反之则不然。箭头指向独立事物。,举例:,“,CourseScheduel,”,类依赖于,“,Course,”,类,Add(c:Course,),Remove(c:Course,),CourseScheduel,Course,UML,基础知识,-,关系,13,泛化,generalization,泛化指把一般类连接到较为特殊的类,也称为超类,/,子类关系或父类,/,子类关系,举例:,类的泛化关系,火车,交通工具,机动车,汽车,三轮车,自行车,非机动车,基类,叶子类,单继承,UML,基础知识,-,关系,14,关联,association,是一种结构关系,它指明一个事物的
6、对象与另一个事物的对象间的联系,关联可以有,名称,角色,关联中靠近它的一端的类对另一端的类呈现的职责,多重性,在关联的另一端的每个对象要求在本端的类必须有多少个对象,Person,Company,Works for,Person,Company,employee,employer,Person,Company,Works for,1.*,*,UML,基础知识,-,关系,15,Question?,1、描述下列关联?,Student,Course,Enrolled-in,10.45,1.5,Person,Car,Car,Wheel,2、标注下列关联的多重性?,owns,has,16,Answers
7、Person,Car,Car,Wheel,owns,has,1,0.*,1,4,17,聚合,aggregation,表示,类之间的关系是,“,整体-部分,”,的关系。,“,包含,”,、,“,组成,”,、,“,分成,部分,”,组合,composition,特殊的聚合,每个部分只能属于一个整体,且整体和部分具有一致的生命周期。,学生,杭州电子,科技大学,软件职业,技术学院,UML,基础知识,-,关系,18,实现,realization,实现用于接口和实现它的类之间,什么是接口?,一个类提供给另一个类的一组操作,On:Button,Off:Button,increaseVol:Button,dec
8、reaseVol:Button,Channel:Button,TV,Radio,turnon(),turnoff(),Control,TV,Control,UML,基础知识,-,关系,19,UML,基础知识,-,视图,一个系统应从不同的角度进行描述,从一个角度观察到的系统称为一个视图(,view,)。,视图由多个图(,Diagrams,)构成,它不是一个图表(,Graph,),而是在某一个抽象层上,对系统的抽象表示。,如果要为系统建立一个完整的模型图,需定义一定数量的视图,每个视图表示系统的一个特殊的方面。另外,视图还把建模语言和系统开发时选择的方法或过程连接起来。,20,UML,基础知识,-
9、视图,视图名称,视图内容,静态表现,动态表现,观察角度,1,用户模型视图(,用例视图,),系统行为,及动力,用例图,交互图,状态图,活动图,用户、,分析员、,测试员,2,结构模型视图(,设计视图,),问题,及解决方案,类图,对象图,交互图,状态图,活动图,类、,接口、,协作,3,行为模型视图(,进程视图,),性能、可伸,缩性和吞吐量,类图,对象图,交互图,状态图,活动图,线程、,进程,4,实现模型视图(,实现视图,),构件、文件,构件图,交互图,状态图,活动图,配置、,发布,5,环境模型视图(,实施视图,),部件发布、,交付和安装,配置图,(,实施图,),交互图,状态图,活动图,拓扑结构,的
10、节点,21,UML,基础知识,-,图,UML,语言定义了五种类型,9,种不同的图,把它们有机结合起来就可以描述系统的所有视图。,用例图,(Use case diagram),从用户角度描述系统功能,并指出各功能的操作者。,静态图,(Static diagram),表示系统的静态结构。包括类图、对象图、包图。,行为图,(Behavior diagram),,描述系统的动态模型和组成对象间的交互关系。包括状态图、活动图。,交互图,(Interactive diagram),描述对象间的交互关系。包括顺序图、合作图。,实现图,(Implementation diagram),用于描述系统的物理实现。
11、包括构件图、部件图。,22,UML,基础知识,-,图,UML,静态图,用例图,(,Use Case Diagram,),类图,(,Class Diagram,),对象图,(,Object Diagram,),构件图,(,Component Diagram,),实施图,(,Deployment Diagram,),UML,动态图,状态图,(,State Diagram,),顺序图,(,Sequence Diagram,),协作图,(,Collaboration Diagram,),活动图,(,Activity Diagram,),23,UML,项目实践,使用,UML,进行项目的分析和设计时,一般
12、遵循的步骤是,第一步,描述需求,产生用例图,第二步,根据需求建立系统的静态模型,构造系统的结构,这个步骤产生:类图,对象图,组件图和部署图,第三步,描述系统的行为,产生状态图,活动图,顺序图,24,用例图,use case diagram,从系统的使用者的角度所理解的系统的总体功能。,建立于系统需求阶段,是开发者和用户对系统需求达成的共识。,用例,描述一个系统做什么,参与者,表示用例的使用者在与这些用例交互时所扮演的角色,可以是:人、硬件设备或一个系统,客 户,取款,UML,基础知识,-,图,25,UML,项目实践,-,举例,系统用例图,根据系统的需求分析可知,系统中的角色有,银行客户,、,工
13、作人员,和,系统,,其中银,行客户,使用系统进行交易;,工作人员,可以更改的设置、放置现金、机器维护等;,系统,则作为外部角色参与整个活动,系统用例图如图所示:,26,UML,项目实践,-,举例,ATM,(,自动柜员机)系统的用例图,27,UML,项目实践,-,举例,顾客用例图,顾客先将自己的磁卡或智能卡插入机,机先审核该卡,如果合法,则提示用户输入密码,如密码错误,则提示重新输入,如果输入次数超过限制,则自动吐卡;如果密码正确,则让顾客选择服务类型,此时顾客就可以进行取款、查询余额、设置密码、转账等操作,操作完成后退磁卡或智能卡,顾客用例图如图所示:,28,类图,class diagram,
14、显示一组类、接口、协作以及它们之间关系的图,对象图,object diagram,显示某一时刻系统中一组对象以及它们之间关系,UML,基础知识,-,图,29,UML,项目实践,-,举例,ATM,系统中,取款用例,的类图,30,活动图,activity diagram,显示从活动到活动的流,与交互图不同:交互图观察传递消息的对象,而活动图观察对象之间传送的操作,活动图包括,动作状态,:不能被分解,活动状态:,能被分解,转换,:,同步棒,用来说明并发分叉和汇合,对象流,UML,基础知识,-,图,31,UML,项目实践,-,举例,ATM,系统中,“,客户插入卡,”,的活动图,32,UML,项目实践,
15、举例,客户取款存款,-,转账,-,更改密码活动图,33,顺序图和协作图均被称为,交互图,interaction diagram,由一组对象、对象间的关系、对象间发送的消息组成,一种动态视图,可以单独使用、也可以对用例中的特定控制流程建模,顺序图,sequence diagram,强调消息的时间顺序,有对象生命线、有控制焦点,协作图,collaboration diagram,强调收发消息的对象的组织结构,有路径、有顺序号,同构的:,两种图之间可以相互转换,而没有任何信息损失,UML,基础知识,-,图,34,UML,项目实践,-,举例,某客户,Joe,取,20,美元的顺序图,35,UML,项
16、目实践,-,举例,某客户,Joe,取,20,美元的协作图,36,状态图,statechart diagram,对一个对象按事件排序的行为建模,与交互图不同:交互图对共同工作的对象群体的行为建模,而状态图对单个对象的行为建模,状态图包括,状态、转换、事件、动作,初始态,每张状态图有1个初始态,终止态,每张状态图有多个终止态,UML,基础知识,-,图,37,UML,项目实践,-,举例,账目类的状态图,38,UML,项目实践,-,举例,存取款状态图,39,UML,项目实践,-,举例,存取款状态图,40,构件图,component diagram,构件:系统中遵从一组接口且提供其实现,的物理的、可替换
17、的部分,构件图显示系统中的构件以及它们之间的,依赖、泛化和关联关系,构件图可以用来对源代码。可执行的发布,体、物理数据库建模,实施图,deployment diagram,展现了系统运行时,系统内处理结点以及驻留在结点中的构件,TicketSeller,UML,基础知识,-,图,41,UML,项目实践,-,举例,ATM,系统,客户的,构件图,42,UML,项目实践,-,举例,ATM,系统的实施,图,43,绘制,UML,图,工具软件,Rational Rose,Visio,Visual Modeler,Together,Visual UML,Enterprise Architect(EA),44,