UML作为设计工具,重在实践上,而这就离不开九种图了,画图是在看完视频以后进行的,刚开始画图的时候脑袋懵懵的,不知道该从哪下手,于是就在画图之前再次的学习了一下这九种图和四种关系,理了理思路,终于有点了想法,这才开始着手画。UML的九种图包括:用例图,对象图,类图,构件图,部署图,状态图,顺序图,活动图,协作图。四种关系和九种图在UML学习中是重中之重,而在这九种图中最重要的是用例图,类图和顺序图,反复的学习才能将它消化。
一、概念
在这九种图中又可以将他们分成静态图和动态图,静态图包括:类图,对象图,用例图,构件图,部署图;动态图包括:状态图,顺序图,活动图,协作图。
1、用例图(user-case diagram)
定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。
2、类图(class diagram)
对静态结构的描述,用来定义系统中类和类之间的关系。
3、对象图(object diagrams)
表示类的对象实例。通常用来示例一个复杂的类图,通过对象图反映真正的实例是什么,它们之间可能具有什么样的关系,帮助对类的理解。
4、状态图(statechart diagrams)
类所描述事物的补充说明,类所有对象可能具有的状态,以及引起状态变化的事物。
5、序列图(Sequence Diagrams)
又叫顺序图,强调消息时间顺序的交互图,描述类以及类相互交互以完成期望行为的消息。
6、协作图(collaboration diagrams)
协作图只对相互间有交互作用的对象和这些对象间的关系建模,而忽略了其他对象和关联。
7、活动图(activity diagram)
反映一个连续的活动流,用于描述某个操作执行时的活动状况。
8、构件图(component diagrams)
主要用于描述各种软件构件之间的依赖关系。
9、部署图(deployment diagrams)
是用来显示系统中软件和硬件的物理架构。从部署图中,可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。
二、九种图的应用阶段
需求阶段:用例图描述需求
分析阶段:类图描述静态结构
设计阶段:类图和包图对接口的应用
实现阶段:构件图,部署图
三、PK赛
1、时序图 and 协作图
相同点:
(1)时序图和协作图都属于交互图,他们表示对象间的交互关系,描述了一个交互,由一组对象和他们之间的关系组成,并且还包括在对象之间传递的消息,
(2)时序图和协作图是等价的
(3)两者都来自UML元模型的相同信息,因此他们的语义是等价的,他们可以从一种形式的图转换成另一种形式的图,而不丢失任何信息。
不同点:
协作图强调的是空间,但时间顺序必须从序列号获得。
时序图强调的是时间但是没有明确的表达对象间的关系。
2、状态图 and 活动图
相同点:都属于行为图,都是描述对象的动态行为。
不同点:
(1)描述对象不同:
状态图:描述对象状态及状态之间的转移,它主要表现该对象的状态。
活动图:描述从活动到活动的控制流,它主要表现的是系统的动作。
(2)使用场合不同:
状态图:描述对象在其生命期中的行为状态变化。
活动图:描述过程的流程变化。
3、对象图 and 类图
相同点:对象图是类图的实例,几乎使用与类图完全相同的标识。
不同点:对象图显示类的多个对象实例,而不是实例的类。由于对象存在生命周期,因此对象图只能在系统某一个时间段存在。
4、活动图 and 用例图
活动图是对用例图的一种细化。
5、状态图 and 类图
状态图是对类图的一种补充,帮助开发者完善某一类。
四、小结
UML的九种图重在实践,只有通过反复的学习来加深对它的理解,现在只是初步的学习UML,对它的理解没有那么深,有什么不对的,欢迎指出!
转自:http://blog.csdn.net/chenxiaochan/article/details/39612297?utm_source=tuicool&utm_medium=referral
****************************************************************************************************************************
1.用例图(user-case diagram):用来定义系统的功能需求。
图例:
2.类图(class diagram):对静态结构的描述,用来定义系统中类和类之间的关系。
图例:
3.对象图:表示类的对象实例。通常用来示例一个复杂的类图,通过对象图反映真正的实例是什么,
它们之间可能具有什么样的关系,帮助对类的理解。
图例:
4.状态图:类所描述事物的补充说明,类所有对象可能具有的状态,以及引起状态变化的事物。
图例:
5.序列图:反映若干对象之间的动态协作关系,在时间轴上,对象之间是如何交互的。
图例:
6.协作图:和序列图作用相同,比序列图多显示了对象和它们之间的关系(上下文关系)。
强调时间和序列则选择序列图;强调上下文相关则选择协作图。
图例:
7.活动图(activity diagram):反映一个连续的活动流,用于描述某个操作执行时的活动状况。
图例:
8.组件图(component diagram):反映代码的物理结构。
图例:
9.展开图(deployment diagram):用来显示系统中软件和硬件的物理构架。
图例:
转自:http://blog.sina.com.cn/s/blog_5486f48b0100cvli.html