UML
目录
1 UML简介 1
1.1 UML的简介 1
1.2 UML的历史 1
1.3 UML模型图分类 2
2 类图 2
3 用例图 2
1 UML简介
1.1 UML的简介
UML (Unified Modeling Language)统一建模语言,为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程。
Unified:UML是一种标准语言,广泛适用于全世界。
Modeling:UML用途在建模。
Language:UML是一门语言。
UML的定义包括UML语义和UML表示法两个部分。
(1) UML语义:UML对语义的描述使开发者能在语义上取得一致认识,消除了因人 而异的表达方法所造成的影响。
(2) UML表示法:UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。
UML的模型图是一种实体关系图(表示实体与实体之间关系的图形):
事物(Things):UML模型中最基本的构成元素,是具有代表性的成分的抽象(实体)。
关系(Relationships):关系把事物紧密联系在一起
图(Diagrams ):图是事物和关系的可视化表示
1.2 UML的历史
UML在Rational Software公司支持下于1994年开始成形,是Grady Booch,James Rumbaugh,Ivar Jacobson 三位从事面向对象方法研究专家合作研究的成果,UML标准是OMG协会在1997年制定。
1996年6月和10月分别发布了UML0.9, UML0.91。
1997年1月,UML1.0被提交给对象管理组织OMG。
1997年9月,提交UML1.1,1997年11月被OMG采纳作为基于面向对象技术的标准建模语言。
1998、1999、2000、2001、2004年分别发布了UML1.2、UML1.3、UML1.4、UML1.5、UML2.0。
UML已经迅速成长为一个事实上的工业标准。不论在计算机学术界、软件产业界还是在商业界,UML已经逐渐成为人们为各种系统建模、描述系统体系结构、商业体系结构和商业过程时使用的统一工具,而且在实践过程中人们还在不断扩展它的应用领域。
1.3 UML模型图分类
UML有很多种图,大体可以分为两类:
(1)结构型(静态)的图(Structure Diagram)
类图(Class Diagram)
对象图(Object Diagram)
构件图(Component Diagram)
部署图(Deployment Diagram)
包图(Package Diagram)
(2)行为型(动态)的图(Behavior Diagram)
活动图(Activity Diagram)
状态机图(State Machine Diagram)
顺序图(Sequence Diagram)
通信图(Communication Diagram)
用例图(Use Case Diagram)
时序图(Timing Diagram)
2 类图
类图:描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关依赖、关联、泛化、实现、聚合等,也包括类的内部结构(类的属性和操作) 。是描述类,接口,协作关系的图。
2.1 类图中的类
类:是对现实世界中的事物的抽象,这些事物具有相同属性,操作,关系和语义。
类图也是一种实体关系图:类图的实体:就是类,接口等。类图的关系:依赖,关联,实现,泛化,聚合,组合。
类的3个基本组件:类名、属性、方法。
[img]http://dl.iteye.com/upload/attachment/0070/5353/05ab15a5-8521-358a-9ab1-e01dbdeb04bb.jpg[/img]
类的名称是必须的,属性和操作可选。
如果有属性,属性具有属性名,可见性,默认值,值类型。
如果有操作,操作具有操作名,可见性,参数值,返回值类型。
可见性:“+”表示public,“#”表示protected,“-”表示private。
2.2 类图中的关系
类图中的关系有:泛化,实现,依赖,关联,聚合,组合。
(1) 泛化
泛化(generalization):表示is-a的关系,是对象之间耦合度最大的一种关系,子类继承父类的所有细节。直接使用语言中的继承表达。在类图中使用带三角箭头的实线表示,箭头从子类指向父类。
代码示例:类的继承
表示:
[img]http://dl.iteye.com/upload/attachment/0070/5542/30c752d4-718e-3a8f-be39-cd33abf1ac10.jpg[/img]
(2) 实现
实现(Realization):在类图中就是接口和实现的关系。这个没什么好讲的。在类图中使用带三角箭头的虚线表示,箭头从实现类指向接口。
代码示例:类实现接口
表示:
[img]http://dl.iteye.com/upload/attachment/0070/5548/c14100a2-7bb5-347f-ba34-bcd9da243867.jpg[/img]
(3) 依赖
依赖(Dependency):对象之间最弱的一种关联方式,是临时性的关联。代码中一般指由局部变量、函数参数、返回值建立的对于其他对象的调用关系。 一个类调用被依赖类中的某些方法而得以完成这个类的一些职责。在类图使用带箭头的虚线表示,箭头从使用类指向被依赖的类。
代码示例:局部变量、方法的参数或者对方法的调用
表示:
[img]http://dl.iteye.com/upload/attachment/0070/5538/9a7ebd0b-f3bc-38cc-a655-a0964a30bc3b.jpg[/img]
(4) 关联
关联(Association) : 对象之间一种引用关系,比如客户类与订单类之间的关系。这种关系通常使用类的属性表达。关联又分为一般关联、聚合关联与组合关联。后两种在后面分析。在类图使用带箭头的实线表示,箭头从使用类指向被关联的类。可以是单向和双向。
代码示例:成员变量
表示:
[img]http://dl.iteye.com/upload/attachment/0070/5544/cbd2fc6f-7197-39df-9850-5c1963cefbb0.jpg[/img]
(5) 聚合
聚合(Aggregation) : 表示has-a的关系,是一种不稳定的包含关系。较强于一般关联,有整体与局部的关系,并且没有了整体,局部也可单独存在。
代码示例:关联的一种,成员变量
表示:
[img]http://dl.iteye.com/upload/attachment/0070/5546/a6b81bd4-8106-3cdd-9801-b258de6d8ca9.jpg[/img]
(6) 组合
组合(Composition) : 表示contains-a的关系,是一种强烈的包含关系。组合类负责被组合类的生命周期。是一种更强的聚合关系。部分不能脱离整体存在。
代码示例:关联的一种,不可缺少成员变量
表示:
[img]http://dl.iteye.com/upload/attachment/0070/5540/d73b370f-d8b0-3850-9196-27335d895db3.jpg[/img]
3 用例图
用例图是从用户角度描述系统功能, 是用户所能观察到的系统功能的模型图。用例是系统中的一个功能单元 ,用例建模的最主要功能就是用来表达系统的功能性需求或行为。用例建模可分为 用例图和用例描述。
用例图与用例描述的区别:用例图是以图的形式来描述功能性的需求和行为,而用例描述这是以一定格式的文字来描述功能性需求和行为的。
用例图从实体关系图角度来分析:用例图的实体,参与者和用例名。用例图的关系,泛化,关联,包含,扩展。
3.1 用例图的事物
参与者:在系统外部与系统直接交互的人或事物(如另一个计算机系统或一些可运行的进程)。需要注意的是:
1.参与者是角色(role)而不是具体的人,它代表了参与者在与系统打交道的过程中所扮演的角色。所以在系统的实际运作中,一个实际用户可能对应系统的多个参与者。不同的用户也可以只对应于一个参与者,从而代表同一参与者的不同实例。
2.参与者作为外部用户(而不是内部)与系统发生交互作用,是它的主要特征。
3.在后面的顺序图等中出现的“参与者”,与此概念相同,但具体指代的含义,视具体情况而定。
参与者表示:
[img]http://dl.iteye.com/upload/attachment/0070/6001/b7286738-aff6-3592-9dd7-e55856c18596.jpg[/img]
用例:系统外部可见的一个系统功能单元。系统的功能由系统单元所提供,并通过一系列系统单元与一个或多个参与者之间交换的消息所表达 。
用例的表示:
[img]http://dl.iteye.com/upload/attachment/0070/5999/e85019a5-e61e-3442-bc4b-48bd20da93ad.jpg[/img]
************************
未完待续
目录
1 UML简介 1
1.1 UML的简介 1
1.2 UML的历史 1
1.3 UML模型图分类 2
2 类图 2
3 用例图 2
1 UML简介
1.1 UML的简介
UML (Unified Modeling Language)统一建模语言,为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程。
Unified:UML是一种标准语言,广泛适用于全世界。
Modeling:UML用途在建模。
Language:UML是一门语言。
UML的定义包括UML语义和UML表示法两个部分。
(1) UML语义:UML对语义的描述使开发者能在语义上取得一致认识,消除了因人 而异的表达方法所造成的影响。
(2) UML表示法:UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。
UML的模型图是一种实体关系图(表示实体与实体之间关系的图形):
事物(Things):UML模型中最基本的构成元素,是具有代表性的成分的抽象(实体)。
关系(Relationships):关系把事物紧密联系在一起
图(Diagrams ):图是事物和关系的可视化表示
1.2 UML的历史
UML在Rational Software公司支持下于1994年开始成形,是Grady Booch,James Rumbaugh,Ivar Jacobson 三位从事面向对象方法研究专家合作研究的成果,UML标准是OMG协会在1997年制定。
1996年6月和10月分别发布了UML0.9, UML0.91。
1997年1月,UML1.0被提交给对象管理组织OMG。
1997年9月,提交UML1.1,1997年11月被OMG采纳作为基于面向对象技术的标准建模语言。
1998、1999、2000、2001、2004年分别发布了UML1.2、UML1.3、UML1.4、UML1.5、UML2.0。
UML已经迅速成长为一个事实上的工业标准。不论在计算机学术界、软件产业界还是在商业界,UML已经逐渐成为人们为各种系统建模、描述系统体系结构、商业体系结构和商业过程时使用的统一工具,而且在实践过程中人们还在不断扩展它的应用领域。
1.3 UML模型图分类
UML有很多种图,大体可以分为两类:
(1)结构型(静态)的图(Structure Diagram)
类图(Class Diagram)
对象图(Object Diagram)
构件图(Component Diagram)
部署图(Deployment Diagram)
包图(Package Diagram)
(2)行为型(动态)的图(Behavior Diagram)
活动图(Activity Diagram)
状态机图(State Machine Diagram)
顺序图(Sequence Diagram)
通信图(Communication Diagram)
用例图(Use Case Diagram)
时序图(Timing Diagram)
2 类图
类图:描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关依赖、关联、泛化、实现、聚合等,也包括类的内部结构(类的属性和操作) 。是描述类,接口,协作关系的图。
2.1 类图中的类
类:是对现实世界中的事物的抽象,这些事物具有相同属性,操作,关系和语义。
类图也是一种实体关系图:类图的实体:就是类,接口等。类图的关系:依赖,关联,实现,泛化,聚合,组合。
类的3个基本组件:类名、属性、方法。
[img]http://dl.iteye.com/upload/attachment/0070/5353/05ab15a5-8521-358a-9ab1-e01dbdeb04bb.jpg[/img]
类的名称是必须的,属性和操作可选。
如果有属性,属性具有属性名,可见性,默认值,值类型。
如果有操作,操作具有操作名,可见性,参数值,返回值类型。
可见性:“+”表示public,“#”表示protected,“-”表示private。
2.2 类图中的关系
类图中的关系有:泛化,实现,依赖,关联,聚合,组合。
(1) 泛化
泛化(generalization):表示is-a的关系,是对象之间耦合度最大的一种关系,子类继承父类的所有细节。直接使用语言中的继承表达。在类图中使用带三角箭头的实线表示,箭头从子类指向父类。
代码示例:类的继承
表示:
[img]http://dl.iteye.com/upload/attachment/0070/5542/30c752d4-718e-3a8f-be39-cd33abf1ac10.jpg[/img]
(2) 实现
实现(Realization):在类图中就是接口和实现的关系。这个没什么好讲的。在类图中使用带三角箭头的虚线表示,箭头从实现类指向接口。
代码示例:类实现接口
表示:
[img]http://dl.iteye.com/upload/attachment/0070/5548/c14100a2-7bb5-347f-ba34-bcd9da243867.jpg[/img]
(3) 依赖
依赖(Dependency):对象之间最弱的一种关联方式,是临时性的关联。代码中一般指由局部变量、函数参数、返回值建立的对于其他对象的调用关系。 一个类调用被依赖类中的某些方法而得以完成这个类的一些职责。在类图使用带箭头的虚线表示,箭头从使用类指向被依赖的类。
代码示例:局部变量、方法的参数或者对方法的调用
表示:
[img]http://dl.iteye.com/upload/attachment/0070/5538/9a7ebd0b-f3bc-38cc-a655-a0964a30bc3b.jpg[/img]
(4) 关联
关联(Association) : 对象之间一种引用关系,比如客户类与订单类之间的关系。这种关系通常使用类的属性表达。关联又分为一般关联、聚合关联与组合关联。后两种在后面分析。在类图使用带箭头的实线表示,箭头从使用类指向被关联的类。可以是单向和双向。
代码示例:成员变量
表示:
[img]http://dl.iteye.com/upload/attachment/0070/5544/cbd2fc6f-7197-39df-9850-5c1963cefbb0.jpg[/img]
(5) 聚合
聚合(Aggregation) : 表示has-a的关系,是一种不稳定的包含关系。较强于一般关联,有整体与局部的关系,并且没有了整体,局部也可单独存在。
代码示例:关联的一种,成员变量
表示:
[img]http://dl.iteye.com/upload/attachment/0070/5546/a6b81bd4-8106-3cdd-9801-b258de6d8ca9.jpg[/img]
(6) 组合
组合(Composition) : 表示contains-a的关系,是一种强烈的包含关系。组合类负责被组合类的生命周期。是一种更强的聚合关系。部分不能脱离整体存在。
代码示例:关联的一种,不可缺少成员变量
表示:
[img]http://dl.iteye.com/upload/attachment/0070/5540/d73b370f-d8b0-3850-9196-27335d895db3.jpg[/img]
3 用例图
用例图是从用户角度描述系统功能, 是用户所能观察到的系统功能的模型图。用例是系统中的一个功能单元 ,用例建模的最主要功能就是用来表达系统的功能性需求或行为。用例建模可分为 用例图和用例描述。
用例图与用例描述的区别:用例图是以图的形式来描述功能性的需求和行为,而用例描述这是以一定格式的文字来描述功能性需求和行为的。
用例图从实体关系图角度来分析:用例图的实体,参与者和用例名。用例图的关系,泛化,关联,包含,扩展。
3.1 用例图的事物
参与者:在系统外部与系统直接交互的人或事物(如另一个计算机系统或一些可运行的进程)。需要注意的是:
1.参与者是角色(role)而不是具体的人,它代表了参与者在与系统打交道的过程中所扮演的角色。所以在系统的实际运作中,一个实际用户可能对应系统的多个参与者。不同的用户也可以只对应于一个参与者,从而代表同一参与者的不同实例。
2.参与者作为外部用户(而不是内部)与系统发生交互作用,是它的主要特征。
3.在后面的顺序图等中出现的“参与者”,与此概念相同,但具体指代的含义,视具体情况而定。
参与者表示:
[img]http://dl.iteye.com/upload/attachment/0070/6001/b7286738-aff6-3592-9dd7-e55856c18596.jpg[/img]
用例:系统外部可见的一个系统功能单元。系统的功能由系统单元所提供,并通过一系列系统单元与一个或多个参与者之间交换的消息所表达 。
用例的表示:
[img]http://dl.iteye.com/upload/attachment/0070/5999/e85019a5-e61e-3442-bc4b-48bd20da93ad.jpg[/img]
************************
未完待续