UML两个元素:节点和连线。
UML包括以下十种图:
用例图(Use case diagrams)
描述角色以及角色与用例之间的连接关系(也可以说
描述需求场景)。说明的是谁要使用系统,以及他们使用该系统可以做些什么。一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示了这些元素之间的各种关系,如泛化、关联和依赖。用例用
动宾短语(动词+名词)描述,如吃饭、喝水。
类图(Classdiagrams)
类图是描述系统中的类,以及各个类之间的关系的静态视图。能够让我们在正确编写代码以前对系统有一个全面的认识。类图是一种模型类型,确切的说,是一种静态模型类型。类图表示类、接口和它们之间的协作关系。
对象图(Object diagrams)
与类图极为相似,它是类图的实例,对象图显示类的多个对象实例,而不是实际的类。它描述的不是类之间的关系,而是对象之间的关系。
包图(Package diagrams)
包图用于描述系统的分层结构,由包或类组成,表示包与包之间的关系。
活动图 (Activity diagrams)
描述用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。能够演示出系统中哪些地方存在功能,以及这些功能和系统中其他组件的功能如何共同满足前面使用用例图建模的商务需求。
活动图和时序图都可以描述业务流程。能用活动图描述的流程,时序图不一定能描述;能用时序图描述的流程,尽量用时序图描述,因为时序图简单。
状态图 (Statechart diagrams)
描述类的对象所有可能的状态,以及事件发生时状态的转移条件(
跟踪某一对象的状态)。可以捕获对象、子系统和系统的生命周期。他们可以告知一个对象可以拥有的状态,并且事件(如消息的接收、时间的流逝、错误、条件变为真等)会怎么随着时间的推移来影响这些状态。一个状态图应该连接到所有具有清晰的可标识状态和复杂行为的类;该图可以确定类的行为,以及该行为如何根据当前的状态变化,也可以展示哪些事件将会改变类的对象的状态。状态图是对类图的补充。
序列图 (顺序图)(Sequence diagrams)
序列图是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。顺序图可以用来展示对象之间是如何进行交互的。顺序图将显示的重点放在消息序列上,即强调消息是如何在对象之间被发送和接收的。
使用场景:
1.需求分析:分析业务流程
2.系统设计:分析程序的调用
协作图 (Collaboration diagrams)
和序列图相似,显示对象间的动态合作关系。可以看成是类图和顺序图的交集,协作图建模对象或者角色,以及它们彼此之间是如何通信的。如果强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图;这两种图合称为交互图。
构件图 (组件图) (Component diagrams)
描述代码构件的物理结构以及各种构件之间的依赖关系。用来建模软件的组件及其相互之间的关系,这些图由构件标记符和构件之间的关系构成。在组件图中,构件是软件单个组成部分,它可以是一个文件,产品、可执行文件和脚本等。
部署图 (配置图)(Deployment diagrams)
是用来建模系统的物理部署。例如计算机和设备,以及它们之间是如何连接的。部署图的使用者是开发人员、系统集成人员和测试人员。部署图用于表示一组物理结点的集合及结点间的相互关系,从而建立了系统物理层面的模型。
在所有这些图里,
用例图、类图和序列图是最为有用的。
根据这些图的用意,可以大体上分为结构型图和行为型图两种。结构型图描述了系统的静态结构,在显示一个系统已有的类及它们之间的静态关系时最为有用。行为型图描述一个系统的动态性质,在显示系统的元素如何协作产生满足要求的系统行为方面最为有用。
结构型图:包图、类图、对象图、构件图、部署图。
行为型图:用例图、活动图、序列图、状态图、协作图。
应当指出的是,一个使用UML的系统设计,往往是从用例图开始的,并且一个设计应当是以用例来驱动的。