已经学习了UML,应该对UML有一个大概的认识,下面一张图是我画的一个思维导图。
从图上可以看出UML可以大致分为视图、事物、关系以及它的9种图。
视图
在逻辑视图中:逻辑视图通常由类图、对象图以及包图表示,组件图通常由组件图表示,并发图通常由状态图、活动图、时序图、协作图表示,配置图通常由配置图表示,用例图通常由用例图表示。
结构事物也分为了类、接口、用例、协作、活动类、组件和节点
类:类是由具有相同属性、相同方法、相同语义和相同关系的一组对象的集合。一个类可以实现一个或多个接口。在UML图中,类用包括类名、属性、方法的矩形表示。
接口:接口是指类或组件所提供的、可以完成特定功能的一组操作的集合。即:接口描述了类或组件的对外的、可见动作,通常一个类实现一个或多个接口。
用例:用例定义了系统的一组操作,对特定的用户产生可以观察的结果。
协作:协作定义了交互的操作,表示一些角色和其他元素一起工作,提供一些合作的动作。一个给定的类可能是几个协作的组成部分,这些协作代表构成系统的模式的实现。在UML中,协作通常用一个虚线椭圆表示。
活动类:指类对象有一个或多个线程或进程的类。活动类和类相似,只是它的对象代表的元素的行为和其他元素同时存在。在UML中活动类的表示方法和普通类的表示方法相似,也是使用一个矩形,只是最外面的边框用粗线。
组件:组件是物理上可替换的,实现了一个或多个皆苦的系统元素。
节点:节点是一个物理元素,它在运行时存在,代表一个可计算的资源,在UML中,节点使用一个立方体来表示。
关系
关联关系:关联关系是一种结构化关系,指一种对象和另一种对象有关联。是一种拥有关系,使一个类知道另一个类的属性和方法,如:老师与学生、丈夫与妻子。关联关系可以有方向,表示该关联在某方向被使用。只在一个方向上存在的关联,称为单向关联,在两个方向是国内都存在的叫做双向关联。关联关系用一条实线表示。双向关联可以有两个或没有箭头,单向关联有一个箭头。
老师和学生是双向关联,老师可以有多名学生,学生也可以有多名老师,但学生与课程之间是单向关联,一名学生可以有多门课程,课程不拥有学生。
聚合:是关联的特例,聚合表示类与类之间关系时整体与部分的关系。聚合是整体与部分的关系,部分可以离开整体而单独存在,如果在聚集关系中储运部分方的对象可同时参与多个处于整体方对象的构成,则该聚集称为共享聚合。 在IUML中聚合关系用一段带有空心小菱形的直线表示,菱形端连接表示整体事物的模型元素,另一端连接的是部分事物的模型元素。
例如:一个评委可以参加多个比赛,表示歌唱大赛由评委等对象组成
组合关系:组合关系时再聚合关系之上的更紧密的耦合关系,描述元素之间部分与整体的关系。部分类需要整体类才能存在,当整体类背销毁,部分类将同时被销毁。组合关系用一端带有实心小菱形的直线表示,菱形端连接表示整体事物的模型元素,另一端连接表示部分事物的模型元素。
依赖:依赖关系描述两个模型元素(类、用例)之间的语义关系,是一种使用关系。其中一个模型元素是独立的,另一个模型元素不是独立的,它依赖于独立的模型元素,如果独立的模型元素改变,将影响依赖于它的元素。箭头指向为被指用者。
泛化:是一种继承关系,表示一般与特殊的关系,指定了子类如何特化父类的所有特征和行为。泛化可分为普通泛化以及受限泛化。普通泛化就是没有给泛化添加约束。普通泛化关系用一条带有空心箭头的实线表示,箭头指向父类。受限泛化可以给泛化关系附加约束条件,说明该泛化关系的使用方法或扩充方法。
实现:是一种类与接口的关系,表示类是接口的所有特征和行为的实现。再UML中用带三角的虚线表示,箭头指向接口。
各种关系强弱顺序:泛化=实现>组合>聚合>关联>依赖
下图描述了各类的关系:
另外:用例图分为用例图;静态图分为:类图、对象图、包图;交互图:时序图、协作图
在需求阶段:采用用例图描述需求
分析阶段:用类图描述静态结构
设计阶段:采用类图、包图对类的接口进行设计
实现阶段:将类用某个面向对象的语言实现
集成交付阶段:构件图、包图、部署图
测试阶段:单元测试用类图和类的规格说明书,集成测试阶段用类图、包图、构件图和合作图,系统测试阶段用用例图来测试系统功能。
用例图:描述角色以及角色与用例直接按的连接关系。说明谁要使用系统,以及他们使用该系统可以做什么
类图:描述系统的静态结构,以及各个类之间的关系的静态视图。
对象图:描述系统在某个时刻的静态静态结构。它是类图的实例,对象图i西安市类的多个对象实例,而不是实例的类。
活动图:描述用例要求所要进行的活动,以及活动间的约束关系。
状态图:描述类的对象所有可能的状态,以及事件发生时状态的转移条件。
序列图:按事件顺序描述系统元素间的交互,用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。
协作图:显示对象间的活动合作状态,可以看成时类图和顺序图的交集,按时间、空间顺序描述系统元素间的交互,和他们之间的关系。
构件图(组件图):描述代码构件的物理结构以及各种构建直接按的额依赖关系。实现系统的元素的组织。
部署图:用来建模系统的物理部署。例如计算机和设备,以及他们之间是如何连接的,部署的使用者是开发人员。系统集成人员和测试人员。
以上是对UML的总结,如有不足指出,欢迎指正!