UML快速入门.ppt
UML的由来UML的全名:unified modeling language 统一建模语言统一建模语言UML在Rational Software公司的支持下于1994年开始成形。是Grady Booch,James Rumbaugh,Ivar Jacobson三位从事面向对象方法研究的专家合作研究的成果。UML标准是OMG协会在1997年制定的。注OMG:Object Management Group,对象管理组织为什么要建模为什么要建模?n模型帮助我们按照实际情况对系统进行可视化n模型可以让我们描述系统的结构和行为,并且利用它和同事沟通 n模型提供了指导我们创建系统的模板,我们还可以利用它为使用系统的人提供帮助n模型对我们所做的决策进行文档化UML概述n什么是UML? 一种通用可视化建模语言一种通用可视化建模语言。用来对软件密集型系统进行可视化可视化、详述详述、构造构造和文档化文档化。Unified:UML是一种标准语言,广泛运用于全世界Modelling:UML用途在建模Language:一种建模语言UML的层次nUML在设计上分3个层次 概念层概念层 规格说明层规格说明层 实现层实现层 n概念层概念层 :一种图形表示方法,让相关人员可以一眼就看出所要表达的含义动物界动物狮子UML的层次对象和类的概念v对象的引入对象的引入:能用于指定一台特定的电视机v类的引入类的引入:把不同品牌、尺寸和型号的电视机捆绑在一个集合中,用于描述电视机的共同属性应用类:定义电视机模型应用对象:在类的基础上定义属于某一品牌和型号尺寸的一台特定的电视机 类是对象的抽象,对象是类的实例UML中的类类名属性:类型=初始值方法名(参数表):返回值类型TVbrandName:string modelType:stringsize:integerturnon():booleanturnoff():boolean规格说明层规格说明层 :一种图形,目的是将该图形转换为程序代码。UML的层次实现层实现层 :将规格说明转换为程序代码。UML的层次UML基础知识-事物UML基础知识-关系n依赖依赖 dependency 一个事物(独立事物)发生变化会影响使用它的另一个事物(依赖事物),但反之则不然。箭头指向独立事物。举例:举例:“CourseScheduel” 类依赖于 “Course”类Add(c:Course)Remove(c:Course)CourseScheduelCourseUML基础知识-关系n泛化泛化 generalization 泛化指把一般类连接到较为特殊的类,也称为超类/子类关系或父类/子类关系举例:举例:类的泛化关系火车交通工具机动车汽车三轮车自行车非机动车基类叶子类单继承UML基础知识-关系n关联关联 association 是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系n关联可以有 n名称名称 n角色角色 关联中靠近它的一端的类对另一端的类呈现的职责n多重性多重性 在关联的另一端的每个对象要求在本端的类必须有多少个对象PersonCompanyWorks forPersonCompanyemployeeemployerPersonCompanyWorks for1.*UML基础知识-关系Question?1、描述下列关联?StudentCourseEnrolled-in 10.45 1.5 Person CarCarWheel2、标注下列关联的多重性?owns hasAnswersn Person CarCarWheelowns has10.*1 4n聚合聚合 aggregation 表示类之间的关系是“整体-部分”的关系。 “包含”、“组成”、“分成部分”n组合组合 composition 特殊的聚合 每个部分只能属于一个整体,且整体和部分具有一致的生命周期。学生杭州电子科技大学软件职业技术学院UML基础知识-关系n实现实现 realizationv实现用于接口和实现它的类之间 v什么是接口?什么是接口? 一个类提供给另一个类的一组操作On:ButtonOff:ButtonincreaseVol:ButtondecreaseVol:ButtonChannel:ButtonTVRadioturnon()turnoff()ControlTVControlUML基础知识-关系UML基础知识-视图n一个系统应从不同的角度进行描述,从一个角度观察到的系统称为一个视图(view)。n视图由多个图(Diagrams)构成,它不是一个图表(Graph),而是在某一个抽象层上,对系统的抽象表示。n如果要为系统建立一个完整的模型图,需定义一定数量的视图,每个视图表示系统的一个特殊的方面。另外,视图还把建模语言和系统开发时选择的方法或过程连接起来。UML基础知识-视图UML基础知识-图nUML语言定义了五种类型9种不同的图,把它们有机结合起来就可以描述系统的所有视图。用例图用例图(Use case diagram) 从用户角度描述系统功能,并指出各功能的操作者。静态图静态图(Static diagram),表示系统的静态结构。包括类图、对象图、包图。行为图行为图(Behavior diagram),描述系统的动态模型和组成对象间的交互关系。包括状态图、活动图。 交互图交互图(Interactive diagram), 描述对象间的交互关系。包括顺序图、合作图。 实现图实现图( Implementation diagram ) 用于描述系统的物理实现。包括构件图、部件图。UML基础知识-图UML项目实践n使用UML进行项目的分析和设计时,一般遵循的步骤是 n第一步,描述需求,产生用例图 n第二步,根据需求建立系统的静态模型,构造系统的结构 ,这个步骤产生:类图,对象图,组件图和部署图 n第三步,描述系统的行为 , 产生状态图,活动图,顺序图n用例图用例图 use case diagram从系统的使用者的角度所理解的系统的总体功能。建立于系统需求阶段,是开发者和用户对系统需求达成的共识。v用例用例 描述一个系统做什么 v参与者参与者 表示用例的使用者在与这些用例交互时所扮演的角色 可以是:人、硬件设备或一个系统客 户取款UML基础知识-图UML项目实践-举例n系统用例图系统用例图根据系统的需求分析可知,系统中的角色有银行客户银行客户、工作工作人员人员和系统系统,其中银行客户行客户使用系统进行交易;工作工作人员人员可以更改的设置、放置现金、机器维护等;系统系统则作为外部角色参与整个活动,系统用例图如图所示:UML项目实践-举例ATM(自动柜员机)系统的用例图 客户(from 角色)转帐(from 用例)取钱(from 用例)查询余额(from 用例)信用系统(from 角色)付款(from 用例)修改密码(from 用例)维护ATM硬件设备(from 用例)银行官员(from 角色)添加现金(from 用例)存钱(from 用例)UML项目实践-举例n顾客用例图顾客用例图顾客先将自己的磁卡或智能卡插入机,机先审核该卡,如果合法,则提示用户输入密码,如密码错误,则提示重新输入,如果输入次数超过限制,则自动吐卡;如果密码正确,则让顾客选择服务类型,此时顾客就可以进行取款、查询余额、设置密码、转账等操作,操作完成后退磁卡或智能卡,顾客用例图如图所示:n类图类图 class diagram显示一组类、接口、协作以及它们之间关系的图n对象图对象图 object diagram显示某一时刻系统中一组对象以及它们之间关系UML基础知识-图UML项目实践-举例ATM系统中取款用例的类图 n活动图活动图 activity diagram显示从活动到活动的流与交互图不同:交互图观察传递消息的对象,而活动图观察对象之间传送的操作n活动图包括动作状态:不能被分解活动状态:能被分解转换: 同步棒 用来说明并发分叉和汇合 对象流UML基础知识-图UML项目实践-举例ATM系统中“客户插入卡”的活动图 UML项目实践-举例n客户取款存款-转账-更改密码活动图n顺序图和协作图均被称为交互图交互图 interaction diagram由一组对象、对象间的关系、对象间发送的消息组成一种动态视图可以单独使用、也可以对用例中的特定控制流程建模n顺序图顺序图 sequence diagram强调消息的时间顺序有对象生命线、有控制焦点n协作图协作图 collaboration diagram强调收发消息的对象的组织结构有路径、有顺序号n同构的:同构的:两种图之间可以相互转换,而没有任何信息损失 UML基础知识-图UML项目实践-举例 某客户Joe取20美元的顺序图 UML项目实践-举例 某客户Joe取20美元的协作图 n状态图状态图 statechart diagram对一个对象按事件排序的行为建模与交互图不同:交互图对共同工作的对象群体的行为建模,而状态图对单个对象的行为建模n状态图包括状态状态 、转换、事件、动作、转换、事件、动作初始态 每张状态图有1个初始态终止态 每张状态图有多个终止态UML基础知识-图UML项目实践-举例账目类的状态图 UML项目实践-举例n存取款状态图取款输入密码3次不正确,系统退去选择取款选择退出服务选择继续服务输入密码密码输入不正确选择服务类型存款选择退出系统选择继续服务插入磁卡密码输入正确选择存款UML项目实践-举例n存取款状态图n构件图构件图 component diagram构件:系统中遵从一组接口且提供其实现 的物理的、可替换的部分构件图显示系统中的构件以及它们之间的 依赖、泛化和关联关系构件图可以用来对源代码。可执行的发布 体、物理数据库建模n实施图实施图 deployment diagram展现了系统运行时,系统内处理结点以及驻留在结点中的构件TicketSellerUML基础知识-图UML项目实践-举例ATM系统客户的构件图 UML项目实践-举例ATM系统的实施图 绘制UML图n工具软件Rational Rose VisioVisual ModelerTogetherVisual UMLEnterprise Architect(EA)