(1)用例图(Use Case Diagrams)
用例图描述了系统提供的一个功能单元。用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于基本流程的"角色"(actors,也就是与系统交互的其他实体)关系,以及系统内用例之间的关系。
(2)类图(Class Diagrams)
类图表示不同的实体(人、事物和数据)如何彼此相关;换句话说,它显示了系统的静态结构。
(3)时序图(Sequence Diagrams)
时序图显示具体用例(或者是用例的一部分)的详细流程。它几乎是自描述的,并且显示了流程中不同对象之间的调用关系,同时还可以很详细地显示对不同对象的不同调用。 时序图有两个维度:垂直维度以发生的时间顺序显示消息/调用的序列;水平维度显示消息被发送到的对象实例。
(4)状态图(Statechart Diagrams)
状态图表示某个类所处的不同状态和该类的状态转换信息。有人可能会争论说每个类都有状态,但不是每个类都应该有一个状态图。只对”感兴趣的”状态的类(也就是说,在系统活动期间具有三个或更多潜在状态的类)才进行状态图描述。
(5)活动图(Activity Diagrams)
活动图表示在处理某个活动时,两个或者更多类对象之间的过程控制流。活动图可用于在业务单元的级别上对更高级别的业务过程进行建模,或者对低级别的内部类操作进行建模。根据经验,活动图最适合用于对较高级别的过程建模,比如公司当前在如何运作业务,或者业务如何运作等。因为与序列图相比,活动图在表示上"不够技术性的",但有业务头脑的人们往往能够更快速地理解它们。
活动图的符号集与状态图中使用的符号集类似。像状态图一样,活动图也从一个连接到初始活动的实心圆开始。活动是通过一个圆角矩形(活动的名称包含在其内)来表示的。活动可以通过转换线段连接到其他活动,或者连接到判断点,这些判断点连接到由判断点的条件所保护的不同活动。结束过程的活动连接到一个终止点(就像在状态图中一样)。作为一种选择,活动可以分组为泳道(swimlane),泳道用于表示实际执行活动的对象。
(6)组件图(Component Diagrams)
组件图提供系统的物理视图。它的用途是显示系统中的软件对其他软件组件(如:库函数)的依赖关系。组件图可以在一个非常高的层次上显示,从而仅显示粗粒度的组件,也可以在组件包层次2上显示。
(7)部署图(Deployment Diagrams)
部署图表示该软件系统如何部署到硬件环境中。它的用途是显示该系统不同的组件将在何处物理地运行,以及它们将如何彼此通信。因为部署图是对物理运行情况进行建模,系统的生产人员可以很好地利用该图。
(8)对象图(Object Diagrams)
对象图描述了对象以及对象间的关系。如同类图,对象图也描述了系统静态设计视或静态过程视,但是从实例的角度。
(9)协作图(Collaboration Diagrams)
描述了对象间的交互作用,由对象及对象间的关系组成,并包括在对象间传递消息,协作图强调发送和接受消息的对象的结构组织的交互作用图。与时序图是同构的,可以彼此转换。