的对象在系统中的快照。由于对象图展示的是实例而不是类,也称作实例图。对象图的表示 与类图相似,不同的是对象名称下面带有下划线,每个名称的形式一般为“实例名:类名”,两 个部分都可选,若只包含类名,则必须包含冒号。图3-5展示了对象图的例子。 Jimi:Applicant 401:ClassRoom 图3-5对象图 3.5.5组件图(component diagram) 组件图描述了组件以及组件之间的协作。组件是代表代码、二进制的物理模块。在 UML2.0中组件的名称和分类器是矩形框右上角显示的组件图标。 在软件开发过程中,我们可以用组件图来表达架构的逻辑分层和划分方式。图3一6展示 了教室预订系统的组件图。 :brower show formexe update data.exe Port 1 database Port 1 server fetch info.exe receive info.exe Port 2 图3-6组件图 3.5.6部署图(deployment diagram) 部署图用于描述系统硬件的物理拓扑结构以及在此结构上运行的软件。部署图包含三个 基本元素:制品(artifact)、节点(node)和它们之间的连接(association)。 1)制品 制品是软件中的具体文件,这些文件可以是可执行的(比如.exe文件、DLL或JAR文 件),或数据文件、配置文件、HTML文档等。制品用类方框来表示。 2)节点 节点是一种计算资源,通常包含存储和处理能力。制品部署在节点上执行。节点可以包 含其他节点,以表示它复杂的执行能力。节点分为两种类型:设备和执行环境。设备是提供 计算能力的硬件,例如计算机或者路由器等。执行环境是软件,用于部署特定的执行工件,如 Database,执行环境通常以设备作为宿主。 026
026 的对象在系统中的快照。由于对象图展示的是实例而不是类,也称作实例图。对象图的表示 与类图相似,不同的是对象名称下面带有下划线,每个名称的形式一般为“实例名:类名”,两 个部分都可选,若只包含类名,则必须包含冒号。图3 5展示了对象图的例子。 图3 5 对象图 3.5.5 组件图(犮狅犿狆狅狀犲狀狋犱犻犪犵狉犪犿) 组件图描述了组件以及组件之间的协作。组件是代表代码、二进制的物理模块。在 UML2.0中组件的名称和分类器是矩形框右上角显示的组件图标。 在软件开发过程中,我们可以用组件图来表达架构的逻辑分层和划分方式。图3 6展示 了教室预订系统的组件图。 图3 6 组件图 3.5.6 部署图(犱犲狆犾狅狔犿犲狀狋犱犻犪犵狉犪犿) 部署图用于描述系统硬件的物理拓扑结构以及在此结构上运行的软件。部署图包含三个 基本元素:制品(artifact)、节点(node)和它们之间的连接(association)。 1)制品 制品是软件中的具体文件,这些文件可以是可执行的(比如.exe文件、DLL或JAR文 件),或数据文件、配置文件、HTML文档等。制品用类方框来表示。 2)节点 节点是一种计算资源,通常包含存储和处理能力。制品部署在节点上执行。节点可以包 含其他节点,以表示它复杂的执行能力。节点分为两种类型:设备和执行环境。设备是提供 计算能力的硬件,例如计算机或者路由器等。执行环境是软件,用于部署特定的执行工件,如 Database,执行环境通常以设备作为宿主。
3)连接 节点之间的连接表示系统之间进行交互的通信路径,连接上可以指明网络协议。图3一7 是教室预订系统的部署图,包含了节点、节点实例以及它们之间的连接。 《server Dell PowerEdge R710 《client workstation》 [OS=Red Hat Enterprise Linux 6 GenericPC/PAD JSP/Servlet container? ;Apache lomcat HTTPS 《browser》 《artifact》 :WebBrowser webelassroom.war SQL 《server》 Dell PowerEdge R410 OS-Red Hat Enterprise Linux 6 《database》 MySQL 5.5 图3-7教室预订系统部署图 3.6动态建模机制模型图 3.6.1状态图(statechart diagram) 状态是对对象属性值的一种抽象,各个对象之间的相互作用引起了一系列的状态变化。 状态图是通过对象的生命周期建立来刻画对象随着时间变化的状态行为。状态图由表示状态 的节点和表示状态之间转换的带箭头的直线组成,表现从一个状态到另一个状态的控制流。 状态图的组成包含状态、转换、初始状态、终止状态以及判定。 状态由一个圆角矩形表示。初始状态是一个实心的圆,一个状态图只能包含一个初始状 态,终止状态是用套有实心圆的空心圆表示,一个状态图可以包含多个终止状态。状态图中的 判定用空心菱形表示。图3一8是教室的状态图的例子。 /acceptApplication,arrangeClassroom /acceptApplication,arrangeClassroom unoccupied /finishOccupation,arrangeClassroom /finishOccupation,arrangeClassroom finishOccupation,arrangeClassroom fullyOccupied acceptApplication,acceptClassroom partiallyOccupied /rejectApplication,arrangeClassroom /acceptApplication,rejectApplication,arrage( om,finishOccupation 图3-8教室的状态图 |027
027 3)连接 节点之间的连接表示系统之间进行交互的通信路径,连接上可以指明网络协议。图3 7 是教室预订系统的部署图,包含了节点、节点实例以及它们之间的连接。 图3 7 教室预订系统部署图 3.6 动态建模机制模型图 3.6.1 状态图(狊狋犪狋犲犮犺犪狉狋犱犻犪犵狉犪犿) 状态是对对象属性值的一种抽象,各个对象之间的相互作用引起了一系列的状态变化。 状态图是通过对象的生命周期建立来刻画对象随着时间变化的状态行为。状态图由表示状态 的节点和表示状态之间转换的带箭头的直线组成,表现从一个状态到另一个状态的控制流。 状态图的组成包含状态、转换、初始状态、终止状态以及判定。 状态由一个圆角矩形表示。初始状态是一个实心的圆,一个状态图只能包含一个初始状 态,终止状态是用套有实心圆的空心圆表示,一个状态图可以包含多个终止状态。状态图中的 判定用空心菱形表示。图3 8是教室的状态图的例子。 图3 8 教室的状态图
3.6.2话动图(activity diagram) Applicant Admin 活动是某事件正在进行的状态。将各种活 动以及它们之间的转换用图形表示,就构成了活 动图。活动图是描述过程逻辑、业务流程和工作 FlllinApplicationlntomation 流的技术,能够对系统的行为建模。活动图是状 态图的一种特殊形式,描述了从活动到活动的控 Verifyinglnformation 制流。与状态图类似,活动图也包含起点、终点 和判定。 IsValid 活动图的图形表示中,条件行为用分支与合 并表达(空心菱形),并发控制流用分叉与汇合表 达(加粗的水平线)。图3-9表示了教室预订系 GetApprovallntormation 统中的一个活动图。 3.6.3顺序图(sequence diagram) 顺序图是一种强调时间顺序的交互图 (interaction diagram),其展示用例内部的许多对 图3-9教室预订系统的活动图 象以及这些对象之间传递的消息。其中对象沿 横轴方向排列,消息沿纵轴方向排列。如图3-10所示的教室预订系统的顺序图。顺序图中 的对象生命线是一条垂直的虚线,表示对象在一段时间内存在。由于顺序图中大多数对象都 ApplicationFom ApplicationController <<Applicant>> :ClassRoom :1:submitApplication 2:submitApplication 3:create Application 4:checkAvailability clasoomAvailabilityinto 6:validinfomation alt valid 7:save Submitted invalid 9:clasRoorUnavailable 图3-10教室预订系统的顺序图 028
028 图3 9 教室预订系统的活动图 3.6.2 活动图(犪犮狋犻狏犻狋狔犱犻犪犵狉犪犿) 活动是某事件正在进行的状态。将各种活 动以及它们之间的转换用图形表示,就构成了活 动图。活动图是描述过程逻辑、业务流程和工作 流的技术,能够对系统的行为建模。活动图是状 态图的一种特殊形式,描述了从活动到活动的控 制流。与状态图类似,活动图也包含起点、终点 和判定。 活动图的图形表示中,条件行为用分支与合 并表达(空心菱形),并发控制流用分叉与汇合表 达(加粗的水平线)。图3 9表示了教室预订系 统中的一个活动图。 3.6.3 顺序图(狊犲狇狌犲狀犮犲犱犻犪犵狉犪犿) 顺序图是一种强调时间顺序的交互图 (interactiondiagram),其展示用例内部的许多对 象以及这些对象之间传递的消息。其中对象沿 横轴方向排列,消息沿纵轴方向排列。如图3 10所示的教室预订系统的顺序图。顺序图中 的对象生命线是一条垂直的虚线,表示对象在一段时间内存在。由于顺序图中大多数对象都 图3 10 教室预订系统的顺序图
存在于整个交互过程中,因此对象全部排在图的顶部,生命线从图的顶部画到图的底部。每个 对象下方有一个矩形条,表示对象的控制焦点。 需要注意状态图与顺序图的差别。状态图针对的是单个类,刻画了类的对象在整个生命 期内可能历经的状态变化。顺序图针对的是多个类的对象,它们协作完成整个用例流程。 3.6.4通信图(communication diagram) 在UML2.0之前的版本,通信图称为协作图(collaboration diagram)。通信图也是交互图 的一种,与序列图类似,也是描述对象或者类之间的关联以及消息通信。但是序列图强调的是 交互的时间次序,而通信图强调的是交互的空间结构,侧重于对象在参与具体的交互时,对象 之间的数据链接。两者在语义上是等价的,可以相互转换。 通信图的构成主要涉及对象、链接和消息三部分。与顺序图不同的是,通信图把每个参与 者画成生命线并按垂直方式展示消息序列,通信图是允许自由放置参与者,通过画链接来展示 参与者如何链接,并使用编号来展示消息序列。 图3-11展示了与图3-10同一用例的通信图。 9:clasRoomUnavailable ApplicationForm <Applicant>> 8:application Subr 7:save 6:validinformatio 3:create Application 图3-11教室预订系统的通信图 3.6.5其他图 在UML2.0中还提供了另外的模型图,即交互概览图(interaction overview diagram)和 时间图(time diagram)。 交互概览图是活动图和交互图的结合,目标是概述交互元素之间的控制流。交互概览图 的主要元素是框、控制流元素和交互图元素。交互概览图以活动图作为主线,即图的主体是活 动图,活动图中的部分节点可以是一个交互片段,该片段可以展开为交互图。 时间图也是一种交互图,其焦点是针对单个对象或一组对象的时间约束。在UML2.0中 时间图的许多元素也出现在其他UML模型图中,如生命线、对象、状态、消息等。时间图利用 了UML的元素,以一种不同的组织方式呈现给用户。对于图中的每个对象,时间图有一条或 多条生命线。 |029
029 存在于整个交互过程中,因此对象全部排在图的顶部,生命线从图的顶部画到图的底部。每个 对象下方有一个矩形条,表示对象的控制焦点。 需要注意状态图与顺序图的差别。状态图针对的是单个类,刻画了类的对象在整个生命 期内可能历经的状态变化。顺序图针对的是多个类的对象,它们协作完成整个用例流程。 3.6.4 通信图(犮狅犿犿狌狀犻犮犪狋犻狅狀犱犻犪犵狉犪犿) 在UML2.0之前的版本,通信图称为协作图(collaborationdiagram)。通信图也是交互图 的一种,与序列图类似,也是描述对象或者类之间的关联以及消息通信。但是序列图强调的是 交互的时间次序,而通信图强调的是交互的空间结构,侧重于对象在参与具体的交互时,对象 之间的数据链接。两者在语义上是等价的,可以相互转换。 通信图的构成主要涉及对象、链接和消息三部分。与顺序图不同的是,通信图把每个参与 者画成生命线并按垂直方式展示消息序列,通信图是允许自由放置参与者,通过画链接来展示 参与者如何链接,并使用编号来展示消息序列。 图3 11展示了与图3 10同一用例的通信图。 图3 11 教室预订系统的通信图 3.6.5 其他图 在UML2.0中还提供了另外的模型图,即交互概览图(interactionoverviewdiagram)和 时间图(timediagram)。 交互概览图是活动图和交互图的结合,目标是概述交互元素之间的控制流。交互概览图 的主要元素是框、控制流元素和交互图元素。交互概览图以活动图作为主线,即图的主体是活 动图,活动图中的部分节点可以是一个交互片段,该片段可以展开为交互图。 时间图也是一种交互图,其焦点是针对单个对象或一组对象的时间约束。在UML2.0中 时间图的许多元素也出现在其他UML模型图中,如生命线、对象、状态、消息等。时间图利用 了UML的元素,以一种不同的组织方式呈现给用户。对于图中的每个对象,时间图有一条或 多条生命线。
3.7典型的UML建模工具 目前比较有影响力的UML建模工具有Sybase PowerDesigner、Microsoft Visio、IBM Rational Rose和StarUML等。本节简单介绍这几种UML建模工具。 3.7.1 Sybase PowerDesigner PowerDesigner是一款功能强大的集成化建模工具。在最新版本的PowerDesigner16.5 中完善了企业架构建模功能,图3-l2为PowerDesigner的界面。在PowerDesigner16.5中 支持了12种UML模型图:用例图、类图、组合结构图、对象图、包图、组件图、部署图、通信 图、序列图、状态图、活动图和交互概览图。 PowerDesigner File Edit View Repository Tools Window Help 白边2aa国New Model × Medel type t厂 Business Process Model Workspace Conceptual Data Model Categoies Dala Moverert Model Package Disgram Use Case Dagram Free Model 。Logical Data Mod以 Model types Object-Onerrted Model Physicel Data Model 盈XMw 司Local Baposito eago8amhao vides a grephical view of the claeses.interfacee,and packages that compose a system,and Dutput Model name Cassroom Obect languege Java 回句 Emensions WSDL for Java: 回 General Check Help Ready 图3-l2 PowerDesigner界面 3.7.2 Microsoft Visio Visio是Microsoft公司的产品,是一种绘图软件。在Visio2002之后的版本,开始支持 UML语言,可以作为面向对象的可视化建模工具,图3-13是Visio2013版本所支持的UML 建模的界面。用Viso进行建模的缺点是其所支持的UML模型图比较少。 0301
030 3.7 典型的 犝犕犔建模工具 目前比较有影响力的 UML建模工具有SybasePowerDesigner、MicrosoftVisio、IBM RationalRose和StarUML等。本节简单介绍这几种UML建模工具。 3.7.1 犛狔犫犪狊犲犘狅狑犲狉犇犲狊犻犵狀犲狉 PowerDesigner是一款功能强大的集成化建模工具。在最新版本的PowerDesigner16.5 中完善了企业架构建模功能,图3 12为PowerDesigner的界面。在PowerDesigner16.5中 支持了12种UML模型图:用例图、类图、组合结构图、对象图、包图、组件图、部署图、通信 图、序列图、状态图、活动图和交互概览图。 图3 12 犘狅狑犲狉犇犲狊犻犵狀犲狉界面 3.7.2 犕犻犮狉狅狊狅犳狋犞犻狊犻狅 Visio是 Microsoft公司的产品,是一种绘图软件。在Visio2002之后的版本,开始支持 UML语言,可以作为面向对象的可视化建模工具,图3 13是Visio2013版本所支持的UML 建模的界面。用Visio进行建模的缺点是其所支持的UML模型图比较少。