UML---统一建模语言

一、UML基本概念

  UML(Unified Modeling Language,统一建模语言)是一种支持面向对象技术的可视化建模语言,是在计算机系统中表示真实世界的语言,描述真实世界中的对象和它们之间的关系。简单地说,我们在软件工程中使用UML把一个项目分析为不同的图。其中包括以下几个大类:用例视图、逻辑视图、组件视图、布局视图。接下来,我们整体梳理了一下这几种图的知识点和画法。

二、用例视图

2.1用例图

  在UML中,用例图用椭圆表示,它用来记录用户或外界环境从头到尾使用某系统的一系列事件;可理解为执行某个动作。用户被称为"角色"或"活动者",活动者可以是人,也可以是另外一个系统。它与当前的系统进行交互,向系统提供输入或从系统中得到输出,用一个人形标记表示。用例图显示了用例和活动者之间的关系。
  下图以选课系统为例,画出了用例图。

2.2活动图

  活动图一种描述工作流的方式,用来描述采取何种动作、做什么(对象状态改变)、何时发生(动作序列)以及在何处发生(泳道)。活动图可以用作下述目的:
  (1)描述一个操作执行过程中所完成的工作,这是活动图最常见的用途。
  (2)描述对象内部的工作。
  (3)显示如何执行一组相关的动作,以及这些动作如何影响它们周围的对象。
  (4)显示用例的实例如何执行动作以及如何改变对象状态。
  (5)说明一次商务活动中的人(角色)、工作流组织和对象是如何工作的。
  活动图由起始状态(StartState)、终止状态(EndState)、状态转移(State Transition)、决策(Decision)、守护条件同步棒( Synchronization Bar)和泳道(Swimlane)组成。

  起始状态显式地表示活动图上一个工作流程的开始,用实心圆点来表示。在一个活动图中,只有一个起始状态。终止状态表示了-一个活动图的最后和终结状态,一个活动图中可以有0个或多个终止状态,终止状态用实心圆点外加一个小圆圈来表示。活动图中的动作用一个圆角四边形表示,其内部的文本串用来说明采取的动作。动作之间的转移用带有箭头的实线表示。箭头上可能还带有守护条件、发送短句和动作表达式。守护条件用来约束转移,守护条件为真时转移才可以开始。用菱形符号来 表示决策点,决策符号可以有一一个或多 个进人转移,两个或更多的带有守护条件的发出转移。可以将一个转移分解,成两个或更多的转移,从而导致并发的动作。所有的 并行转移在合并之前必须被执行。一条粗黑线表示将转移分解成多 个分支,同样用粗黑线来表示分支的合并,粗黑线称为同步棒。泳道分割活动图,有助于更好地理解执行活动的场所。

  下图以选课系统为例,画出了选课的活动图。

2.3序列图

  序列图一种强调消息的时序交互图。由活动者对象消息生命线控制焦点组成。在UML中,对象表示为一个矩形,其中对象名称标有下划线;消息在序列图中用有标记的箭头表示;生命线由虚线表示;控制焦点由薄薄的矩形表示。
  序列图将交互关系表示为一个二维图,纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色的活动用生命线表示。当对象存在时,生命线用一条纵向虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。消息用从一个对象的生命线到另一个对象的生命线的箭头表示。箭头以时间顺序在图中从上到下排列。
  下图以选课为例,画出了选课的序列图。

2.4协作图

  协作图强调参与一个交互对象的组织。 它由以下基本元素组成:活动者对象连接消息。在UML中,使用实线标记两个对象之间的连接,协作图中的消息由标记在连接上方的带有标记的箭头表示。协作图包含类元角色和关联角色,而不仅仅是类元和关联。消息可以用依附于连接的带标记的箭头表示。每个消息包括一个顺序号,一张可选的前任消息表,一个可选的监护条件,一个名字和参量表,可选的返回值表。当对象及其连接有利于理解交互时,选择协作图;当只需要了解序列时,选择序列图。序列图清晰地显示了时间次序,但没有显式地指明对象间关系。协作图清晰地:显示了对象间关系,但时间次序必须从顺序号来获得。

  下图以选课为例,画出了选课的协作图。

三、逻辑视图

3.1类图

  是包装信息和行为的项目,是面向对象的重要特点
  从用例视图中寻找类,是从用例的事件流开始,查看事件流中的名词以获得类。在事件流中,名词可以分为4种类型:角色、类、类属性和表达式。也可以检查序列图和协作图中的对象,通过对象的共性来寻找类。另外,序列图和协作图的每一-个对象都要映射到相应的类,必须指出的是:有些类是无法通过以上的方法找到的。
  类可以分为3种类型:实体类( Entity)、边界类(Boundary)和控制类(Con-trol)。
  (1)实体类保存要放进永久存储体的信息。在选课系统中,可以抽出学生类(Student),它是实体类的范例。在事件流和交互图中,实体类通常是对用户最有意义的类通常采用业务领域术语命名。
  (2)边界类位于系统与外界的交接处,包括所有窗体、报服表、打印机和扫描仪等硬件的接口以及其他系统的接口。要寻找和定义边界类,可以检查用例图。 每个角色和用例交互至少要有一一个边界类。 边界类使角色能与系统交互。
  (3)控制类负责协调其他类的工作,每个用例通常都有一个控制类.控制用例中的事件顺序。在交互图中控制类具有协调责任。可能有许多控制类在多个用例间共用的情况。例如,安全管理(ScurityManager)类负责控制与安全有关的事件事务管理(TaecioManager)类负责协调与数据库事务有关的消息。还有其他处理共用功能的管理类,如资源竞争、分布式处理和错误处理。
  可以通过以下的方法寻找类:
  (1)从事件流中寻找名词或名词词组(或交互图中的对象),将性质相同的归为一类,或性质内容值正负相反的归为一类。
  (2)去除不恰当的与含糊的类别,去除应归类为属性的项目。
  (3)给这些类取个合适的名字,在显示系统实现时,可以参照真实系统相关的命名规约。
  下图是分析选课系统中的类,画出类图。

3.2状态图

  状态图状态节点提供转移连接的图,描述了一个特定对象的所有的可能状态,以及由于各种事件的发生而引起的状态之间的转移.大多数面向对象技术 都使用状态图来描述一个对象在其生命周期中的行为。
  状态图用初始状态(Initial Stat)表示对象创建时的状态,每一个状态图只有一个初始状态用实心的圆点表示。每一个状态图可能有多个终止状态(Final State),用一个实心圆外加一个圆圈表示。状态图中可有多个状态框,每个状态框中有两格:上格放置名称下格说明处于该状态时,系统或对象要进行的活动(Activity)。状态之间的过渡事件(Event),对应对象的操作。事件有可能在特定的条 件下发生,在UMI中这样的条件称为守护条件(Guard Condition)。发生事件时的处理称为动作(Action)。从一个状态到另一个状态之间的连线称为转移(Transitions)。系统设计中可能有多个对象,但并不需要给出每个对象的状态图。实际的做法是把注意力集中在整体系统或少数关键的对象上。在这里有必要说明Action和Activity的区别。Activity 与一个状态关联,当一个状态进入时开始,需要一段时间执行,可以被中断。Action与一个转移相关联,在较少的时间内完成其他操作,通常发生与状态的初始化、进入和退出时。

  下图是以课程类的状态变化过程,画出该状态图。

四、组件视图

4.1组件图

  组件图(Component View)包含模型代码库、可执行文件、运行库和其他组件的信息。组件是代码的实际物理模块,系统是组件图用来显示代码模块间的关系的。
  组件图显示组件以及它们之间的依赖关系。一般来说,组件就是一个实际文件,可以有以下几种类型:
  (1)源代码组件。一个源代码文件或者与一个包对应的若干个源代码文件。
  (2)二进制组件。一个目标码文件,一个静态的或者动态的库文件。
  (3)可执行组件。在一台处理器上可运行的一个可执行的程序单位,即所谓可执行程序。
  组件图可以用来显示编译、链接或执行时组件之间的依赖关系,以及组件 的接口和调用关系。
  下图是以选课系统的组件图。

五、布局视图

5.1布局图

  布局图表示系统的实际部署,与系统的逻辑结构不同,它描述系统在网络上的物理部署
  布局图用来描述系统硬件的物理拓扑结构以及在此结构上执行的软件。布局图可以显示计算节点的拓扑结构和通信路径、节点上运行的软件、软件包含的逻辑单元(对象、类等)。特别是对于分布式系统,布局图可以清楚地描绘硬件设备的配置、通信以及在各设备上软件和对象的配置。布局图中的节点代表某种计算构件,通常是硬件,譬如一个简单的设备或者传感器,也可以是一台主机。在布局图中,组件代表可执行的物理代码模块,例如一个可执行程序。逻辑上它可以与类图中的包或类对应起来。因此,布局图中显示运行时各个包或类在节点中的分布情况。由此可见,布局图是描述任何基于计算机的应用系 统(尤其是基于Internet 和Web的分布式计算系统)的物理配置(或者逻辑配置)的有力工具。
  在布局图中,节点表示一个物理设备以及在其上运行的软件系统,例如一 台Unix主机、一个PC终端、台打印机、一 个传感器等。 节点之间的连线表示系统之间的通信路径,在UML中称为连接。通信类型则放在连接旁边的“《》”号之间,表示所用的通信协议或网络类型。需要注意的是,布局图中的各个节点的安置不受地理位置的限制,小则可以放在一间房间内,大则可以安置在地球上的不同国家或地区。两个节点之间的通信路径仅仅表明节点之间存在着联系,该连接可以采用不同的通信协议。
  布局图包括以下要素:
  (1)进程:在自己的内存空间执行的线程;
  (2)处理器:任何有处理功能的机器;
  (3)设备:任何没有处理功能的机器,如打印机
  下图是以选课系统的布局图。

posted @ 2024-03-29 15:42  excellent_1  阅读(25)  评论(0编辑  收藏  举报