面向对象软件工程实践指南 Applicant Admin FillinApplicationlnformation IsValid ProcessApplication GetApprovallnformation 图3-8教室预订系统的活动图 吴 ApplicationFom ApplicationController <<Applicant>> :ClassRoom a1 1:submitApplication 2:submitApplication 3:create Application 4:checkAvailability. classroomAvailabilitylnfo alt valid 7:save 8:applicationSubmitted invalid 9:classRo Unavailable 图3-9教室预订系统的序列图 我们需要注意状态图与顺序图的差别。状态图针对的是单个类,刻画了类的对象在整 白
面向对象软件工程实践指南 32 Applicant Admin FillinApplicationInformation VerifyingInformation IsValid GetApprovalInformation ProcessApplication 图 3-8 教室预订系统的活动图 9: classRoomUnavailable 8: applicationSubmitted 7: save 6: validInformation 5: classroomAvailabilityInfo 4: checkAvailability 3: create 2: submitApplication 1: submitApplication <<Applicant>> a1 :ApplicationForm :ApplicationController :Application :ClassRoom valid invalid alt 9: classRoomUnavailable 8: applicationSubmitted 7: save 6: validInformation 5: classroomAvailabilityInfo 4: checkAvailability 3: create 2: submitApplication 1: submitApplication 图 3-9 教室预订系统的序列图 我们需要注意状态图与顺序图的差别。状态图针对的是单个类,刻画了类的对象在整
面向对象软件工程实践指南 个生命期内可能历经的状态变化。顺序图针对的是多个类的对象,它们协作完成整个用例流 程。 3.6.4通信图(Communication Diagram) 在UML2.0之前的版本,通信图被称作协作图(collaboration diagram)。通信图也是交互 图的一种,与序列图类似,也是描述对象或者类之间的关联以及消息通信。但是序列图强调 的是交互的时间次序,而通信图强调的是交互的空间结构,侧重于对象在参与具体的交互时, 对象之间的数据链接。两者在语义上是等价的,可以相互转换。 通信图的构成主要涉及对象、链接和消息三部分。与顺序图不同的是,通信图把每个 参与者画成生命线并按垂直方式展示消息序列,通信图是允许自由放置参与者,通过画链接 来展示参与者如何链接,并使用编号来展示消息序列。 图3-10展示了与图3-9同一用例的通信图。 9:classRoomUnavailable 1:submitApplication 2:submitApplication <<Applicant>> a1 8:applicationSubmitted 7:save 6:validInformation 3:create 4:checkAvailability ClassRoom 图3-10教室预订系统的通信图 3.6.5其他图 在UML2.0中还提供了另外的模型图,即交互概览图Interaction Overview Diagram)和 时间线图(Time Diagram) 交互概览图是活动图和交互图的结合,目标是概述交互元素之间的控制流。交互概览 图的主要元素是框、控制流元素和交互图元素。交互概览图以活动图作为主线,即图的主体 是活动图,活动图中的部分节点可以是一个交互片段,该片段可以展开为交互图。 时间图也是一种交互图,其焦点是针对单个对象或一组对象的时间约束。在UML2.0 中时间图的许多元素也出现在其他UML模型图中,如生命线,对象,状态,消息等等。时 间图利用了UML的元素,以一种不同的组织方式呈现给用户。对于图中的每个对象,时间 33
面向对象软件工程实践指南 33 个生命期内可能历经的状态变化。顺序图针对的是多个类的对象,它们协作完成整个用例流 程。 3.6.4 通信图 (Communication Diagram) 在 UML2.0 之前的版本,通信图被称作协作图(collaboration diagram)。通信图也是交互 图的一种,与序列图类似,也是描述对象或者类之间的关联以及消息通信。但是序列图强调 的是交互的时间次序,而通信图强调的是交互的空间结构,侧重于对象在参与具体的交互时, 对象之间的数据链接。两者在语义上是等价的,可以相互转换。 通信图的构成主要涉及对象、链接和消息三部分。与顺序图不同的是,通信图把每个 参与者画成生命线并按垂直方式展示消息序列,通信图是允许自由放置参与者,通过画链接 来展示参与者如何链接,并使用编号来展示消息序列。 图 3-10 展示了与图 3-9 同一用例的通信图。 1: submitApplication 9: classRoomUnavailable 2: submitApplication 7: save 6: validInformation 3: create 5: classroomAvailabilityInfo 4: checkAvailability 8: applicationSubmitted <<Applicant>> a1 :ApplicationForm :ApplicationController :Application :ClassRoom 图 3-10 教室预订系统的通信图 3.6.5 其他图 在 UML2.0 中还提供了另外的模型图,即交互概览图(Interaction Overview Diagram)和 时间线图(Time Diagram) 交互概览图是活动图和交互图的结合,目标是概述交互元素之间的控制流。交互概览 图的主要元素是框、控制流元素和交互图元素。交互概览图以活动图作为主线,即图的主体 是活动图,活动图中的部分节点可以是一个交互片段,该片段可以展开为交互图。 时间图也是一种交互图,其焦点是针对单个对象或一组对象的时间约束。在 UML 2.0 中时间图的许多元素也出现在其他 UML 模型图中,如生命线,对象,状态,消息等等。时 间图利用了 UML 的元素,以一种不同的组织方式呈现给用户。对于图中的每个对象,时间
面向对象软件工程实践指南 图有一条或多条生命线。 3.7典型的UML建模工具 目前比较具有影响力的UML建模工具有Sybase PowerDesigner、Microsoft Visio、IBM Rational Rose和StarUML等。本节我们将简单介绍这几种UML建模工具。 3.7.1 Sybase PowerDesigner PowerDesigner是一款功能强大的集成化建模工具。在最新版本的PowerDesigner16.5 中完善了企业架构建模功能。在PowerDesigner16.5中支持了12种UML模型图:用例图、 类图、组合结构图、对象图、包图、组件图、部署图、通信图、序列图、状态图、活动图和 交互概览图。 PoweDetigner Free Model Logco Dets Model yc De加4bd Model 司Lno1 Reporit nh Model name: Obiect larguge 一可 x□cscd国web Ready 图3-l1 PowerDesigner界面 3.7.2 Microsoft Visio Visio是Microsoft公司的产品,是一种绘图软件。在Visio2002之后的版本,开始支持 UML语言,可以作为面向对象的可视化建模工具,图3-12是Visio2013版本所支持的UML 建模的界面。用Visio进行建模的缺点是其所支持的UML模型图比较少。 34
面向对象软件工程实践指南 34 图有一条或多条生命线。 3.7 典型的 UML 建模工具 目前比较具有影响力的 UML 建模工具有 Sybase PowerDesigner 、Microsoft Visio、IBM Rational Rose 和 StarUML 等。本节我们将简单介绍这几种 UML 建模工具。 3.7.1 Sybase PowerDesigner PowerDesigner 是一款功能强大的集成化建模工具。在最新版本的 PowerDesigner16.5 中完善了企业架构建模功能。在 PowerDesigner16.5 中支持了 12 种 UML 模型图:用例图、 类图、组合结构图、对象图、包图、组件图、部署图、通信图、序列图、状态图、活动图和 交互概览图。 图 3-11 PowerDesigner 界面 3.7.2 Microsoft Visio Visio 是 Microsoft 公司的产品,是一种绘图软件。在 Visio 2002 之后的版本,开始支持 UML 语言,可以作为面向对象的可视化建模工具,图 3-12 是 Visio 2013 版本所支持的 UML 建模的界面。用 Visio 进行建模的缺点是其所支持的 UML 模型图比较少
面向对象软件工程实践指南 图日与·0 UseCase.vsdx-Visio Professional - 文件开始插入。设计数据 进程亩阅规图 Yan Yao 12pt AA 充· 的 粘贴 快速式 A出 口效果 排列 位 更成形状 艺贴版 工A 形状样 掩列 编 形状 出m0®1的1地1的1∞1的海0 肉具接素 更多开状 快速形从 Login UML时 Applicant UML装 UML状态机 UML活动 UML序两 ApplyClassroom 巾泰与有 一用例 Admin ☐子晚 —关联 —依裁关系 一日销 一小包含 一一一扩震 西1全部· 贝面1/1中文(中国白C正在等特上装正在保存V1SO文档USECAS. -+95% 图3-12 Visio2013界面 3.7.3 Rational Rose Rational Rose是美国Rational公司的面向对象建模工具,利用这个工具,我们可以建 立用UML描述的软件系统的模型,而且可以自动生成和维护C+、Java、VB、Oracle等 语言和系统的代码。Ros是个菜单驱动应用程序,用工具栏帮助我们使用常用特性。如图 3-13所示,它的界面分为三个部分-Browser窗口、Diagram窗口和Document窗口。 Browser窗口用来浏览、创建、删除和修改模型中的模型元素:Diagram窗口用来显示和创 作模型的各种图:而Document窗口则是用来显示和编写各个模型元素的文档注释。 the Caie ¥ 查我转热已 图3-l3 Rational Rose界面 35
面向对象软件工程实践指南 35 图 3-12 Visio 2013 界面 3.7.3 Rational Rose Rational Rose 是美国 Rational 公司的面向对象建模工具,利用这个工具,我们可以建 立用 UML 描述的软件系统的模型,而且可以自动生成和维护 C++、Java、VB、Oracle 等 语言和系统的代码。 Rose 是个菜单驱动应用程序,用工具栏帮助我们使用常用特性。如图 3-13 所示,它的界面分为三个部分--Browser 窗口、 Diagram 窗口和 Document 窗口。 Browser 窗口用来浏览、创建、删除和修改模型中的模型元素;Diagram 窗口用来显示和创 作模型的各种图;而 Document 窗口则是用来显示和编写各个模型元素的文档注释。 图 3-13 Rational Rose 界面
面向对象软件工程实践指南 3.7.4 StarUML StarUML(简称SU)是一款由韩国公司主导开发的开源的UML开发工具,官方网站 为:http:/∥staruml.sourceforge.net/en。StarUML不仅包含Rationl Rose所具有的功能全面、满 足所有建模环境需求能力和灵活性等特点,其还具有发展快、轻便、客户安装性强等特性。 此外,StarUML可以读取Rationl Rose生成的文件,让Rose用户转而免费使用StarUML。 在StarUML中,项目是基本的管理单位,一个项目可以管理一个或者多个软件模型。 项目可以保存在一个以xml或者.uml为扩展名的文件中,该文件包含了项目中所有模型 (Model)、视图(View)和图(Diagram)的信息。StarUML提供了类图、用例图、顺序图、通信 图、状态图、活动图、组件图、部署图和组合结构图等11种模型图的绘制方法。图3-14给 出了StarUML5.0版本的功能界面。 StarUML ClassBooking-uml Ele Edit Fgrmat Model yew Tools Heip D3日色购电×口4口马马G射,1100%·QQ回回. A3口■合科泛三三|可■9川运豆,品与%臣自÷师” Toolbox x Main (Scenarios) Model Explorer 口0X Annotation ☐Men自Manl 即暗,等& UseCase 日Classe3 ooking Select an 。UseCase 白Package1 吴Actor 」Ass0 ciation Login Applicant 头Applcant 吴Admin Dependency ApplyforClassroom 田☒Development Vew Indude 用四Process Vew Admin 田☒hysical View Extend ☐5 stem Boundary Model Explorer Dgram Explorer 《 口× UMLUseCaseDiagram)Main 8 日Genera ◆Name Man essfuly. a DiagramType 1530:07 AddIn'menu is regist 15635 曰0uput☑essage Properbes白Documentation图Attadments Modified (UMLUseCaseDiagram)::Scenanos::Man 图3-14 StarUML界面 36
面向对象软件工程实践指南 36 3.7.4 StarUML StarUML(简称 SU)是一款由韩国公司主导开发的开源的 UML 开发工具,官方网站 为:http://staruml.sourceforge.net/en。StarUML 不仅包含 Rationl Rose 所具有的功能全面、满 足所有建模环境需求能力和灵活性等特点,其还具有发展快、轻便、客户安装性强等特性。 此外,StarUML 可以读取 Rationl Rose 生成的文件,让 Rose 用户转而免费使用 StarUML。 在 StarUML 中,项目是基本的管理单位,一个项目可以管理一个或者多个软件模型。 项目可以保存在一个以.xml 或者.uml 为扩展名的文件中,该文件包含了项目中所有模型 (Model)、视图(View)和图(Diagram)的信息。StarUML 提供了类图、用例图、顺序图、通信 图、状态图、活动图、组件图、部署图和组合结构图等 11 种模型图的绘制方法。图 3-14 给 出了 StarUML 5.0 版本的功能界面。 图 3-14 StarUML 界面