UML由视图(Views)、图(Diagrams)、模型元素(Model Elements)和公共机制(General Mechanisms)等部分组成。

视图(Views)
  完整地描述系统需要一组视图反映系统的各个方面,每个视图代表系统的一个抽象,反映了系统中的一个特定方面,从而使不同的人员关注系统的不同方面。
  UML采用五个互连的视图来描述软件系统的体系结构,即用例视图(Use-case View)、设计视图(Design View)、进程视图(Process View)、实现视图(Implementation View)和展开视图(Deployment View),如图4.5所示。

图4.5 软件系统结构的"4+1"视图

(1) 用例视图(Use Case View)
  用例视图描述系统应该具有的功能集,它从系统外部用户的角度出发,实现对系统的抽象表示。在用例视图中,角色(Actor)代表外部用户或其他系统,用例(Use-case)表示系统能够提供的功能,通过列举角色和用例,显示角色在每个用例中的参与情况。
  用例视图是其他视图的核心和基础,其他视图的构造和发展依赖于用例视图所描述的内容。用例试图静态地描述系统功能,主要为用户、设计人员、开发人员和测试人员而设置。
(2) 设计视图(Design View)
  设计视图用来揭示系统功能的内部设计和协作情况。它利用静态结构和动态行为描述系统的功能,其中,静态结构描述类、对象及其关系等,动态行为主要描述对象之间发送消息时产生的动态协作、一致性和并发性等,接口和类的内部结构需要在设计视图中定义。
(3) 进程视图(Process View)
  进程视图描述系统的并发工作状况,它包含形成系统并发与同步机制的线程和进程,主要提供给系统开发商和集成商。
(4) 实现视图(Implementation View)
  实现视图由一些独立的构件和文件组成,显示实现模块及其之间的依赖关系。这些构件和文件可以用各种方法装配,以产生运行系统。
(5) 分布视图(Deployment View)
  分布视图主要描述系统的物理架构,显示系统硬件拓扑结构的节点,提供给开发人员、集成人员和测试人员。

图(Diagrams)
  系统模型中每一个视图的内容是由一些图来描述的,UML中包含用例图、类图、对象图、状态图、时序图、协作图、活动图、组件图、分布图等九种图,如图4.6所示。对整个系统而言,其功能由用例图描述,静态结构由类图和对象图描述,动态行为由状态图、时序图、协作图和活动图描述,而物理架构则是由组件图和分布图描述。

图4.6 UML的图

(1) 用例图
  用例图定义了系统的功能需求,它完全是从系统的外部观看系统功能,并不描述系统内部对功能的具体实现。在用例图中,角色代表触发系统功能的用户或其他系统,用例代表具体的功能描述。
(2) 类图
  类图描述系统的静态结构,表示系统中的类以及类与类之间的关系。
(3) 对象图
  对象图描述了一组对象以及它们之间的关系,表示类的对象实例。
(4) 状态图
  状态图表示一个状态机,强调对象行为的事件顺序。
(5) 时序图和协作图
  时序图和协作图均表示一组对象之间的动态协作关系,其中时序图反映对象之间发送消息的时间顺序,协作图反映收发消息的对象的结构组织。时序图和协作图是同构的,即两者之间可以相互转换。
(6) 活动图
  活动图反映系统中从一个活动到另一个活动的流程,强调对象间的控制流程。
(7) 组件图
  组件图描述组件以及它们之间的关系,表示系统的静态实现视图。
(8) 分布图
  分布图反映了系统中软件和硬件的物理架构,表示系统运行时的处理节点以及节点中组件的配置。