UML建模——使用EA工具开发时序图实践及经验

Enterprise Architect(以下简称EA)是一款基于OMG
UML的可视化模型与设计工具,提供了对软件系统的设计和构建、业务流程建模和基于领域建模的支持,被企业和组织不仅应用于对系统的建模,还用于推进模型在整个应用程序开发周期中实现。

在EA工具建模平台上,提供如下常用设计模型:

  • Business Process   业务流程模型
  • Requirements   需求分析模型
  • Use Case       用例模型
  • Domain Model    领域模型
  • Class            类设计模型
  • Database        数据库设计模型
  • Component      组件模型
  • Deployment      部署模型
  • Testing          测试模型
  • Maintenance     维护模型
  • Project Management 项目管理模型
  • User Interface     用户接口模型

对于现阶段我们能用到的最多的就是类设计模型、数据库设计模型、用例设计模型、组件模型和部署模型。我们可以根据自己的需要选择所要创建的模型,当然如果不选或选错了在后期还可以进行更改所以这一步是无关紧要的,本文重点介绍基于类设计模型的时序图设计实践。

序列图主要用于按照交互发生的一系列顺序,显示对象之间的这些交互。很象类图,开发者一般认为序列图只对他们有意义。然而,一个组织的业务人员会发现,序列图显示不同的业务对象如何交互,对于交流当前业务如何进行很有用。除记录组织的当前事件外,一个业务级的序列图能被当作一个需求文件使用,为实现一个未来系统传递需求。在项目的需求阶段,分析师能通过提供一个更加正式层次的表达,把用例带入下一层次。那种情况下,用例常常被细化为一个或者更多的序列图。

组织的技术人员能发现,序列图在记录一个未来系统的行为应该如何表现中,非常有用。在设计阶段,架构师和开发者能使用图,挖掘出系统对象间的交互,这样充实整个系统设计。

序列图的主要用途之一,是把用例表达的需求,转化为进一步、更加正式层次的精细表达。用例常常被细化为一个或者更多的序列图。序列图除了在设计新系统方面的用途外,它们还能用来记录一个存在系统(称它为“遗产”)的对象现在如何交互。当把这个系统移交给另一个人或组织时,这个文档很有用。

序列图的主要目的是定义事件序列,产生一些希望的输出。重点不是消息本身,而是消息产生的顺序;不过,大多数序列图会表示一个系统的对象之间传递的什么消息,以及它们发生的顺序。图按照水平和垂直的维度传递信息:垂直维度从上而下表示消息/调用发生的时间序列,而且水平维度从左到右表示消息发送到的对象实例。

本实践软件项目中,已经完成用例模型(图中Use Case Model部分)设计,以“流程全生命周期管理”用例为例进行深入设计。

        第一步:在类模型(图中Class Model)中添加包“Add a Package”,命名为“流程管理”,如下图1所示,建立“流程管理”包,并同时生成“流程管理”用例图。

第二步:打开“流程管理”用例图,画“流程全生命周期管理”用例。

放置序列图的位置跟一般的图形不大一样,并不是放置在特定的"包"(Package)中。通常,序列图是表达对象如何合作,进而来完成某一个用例的任务的,因此,序列图似乎要放在用例当中才合理。所以,我们先到上一步生成“流程管理”用例图中画出需要细化的用例。

图1

第三步:在“流程全生命周期管理”用例里,创建类模型图和时序图,如下图2所示过程:

(1)在“流程全生命周期管理”用例图示中,点击鼠标右键,弹出(2)窗口;

(2)选择“Add”,弹出(3)窗口;

(3)选择“Add Diagram...”。

图2

结果如图3所示,形成“流程全生命周期管理”类图和时序图

图3

第四步:在类模型图中创建类及其属性(Attributes...)和方法(Operation...)

如下图4所示,拖拽Class到类图(Class Diagram)设计窗口中,双击或右击选择属性,在弹出的对话框中的常规选项卡中添加信息。其中名称“流程模型管理列表”为类名,构造类型可以选择此类是窗体类还是边界类还是业务类、实体类等等,本例中选择为“form”。可见性为类的可见性分别可设为public、private、protected。阶段和版本号根据自己的需要设置。备注为给该类添加的备注说明。选择编译的语言以方便生成源代码。点击详细信息选项卡,可以向类中添加属性、方法及方法的参数和相关说明。

图4

第五步:为类添加属性和方法

图5

第六步:画时序图

在Project Browser窗口中,双击打开“流程全生命周期管理”时序图窗口,Toolbox窗口中有如下组件:

  • Actor:角色/执行者,通常用于用例场景图中,在描述用户交互时表示当前用户/操作者。
  • Lifeline:生命线,最常用,例如系统、子系统、岗位角色、模块、类。当画一个序列图的时候,放置生命线符号元件,横跨图的顶部。生命线表示序列中,建模的角色或对象实例。
  • Boundary、Control、Entity是三种特殊的生命线对象类型,通常一起使用(MVC模式、控制模式):
  • Boundary:边界对象,初学者用得少,在MVC模式、控制模式、需求分析过渡到系统设计中用得多些,可用于表示交互界面、子系统。
  • Control:控制对象,用于表示业务逻辑、分工协调的职责对象,采用控制模式分析设计时用得多。
  • Entity:实体对象,用于表示需要永久保存或较长生命期的数据对象,例如票据、文件、数据库(通常不直接说数据库等技术实现方式,而说逻辑意义的名称)。
  • Fragment:片段,表示某一局部序列图单元,例如条件分支、循环、子图或子图链接,后者可用于序列图分层建模。
  • EndPoint:结束点,表示流程退出、异常退出、子图结束,一般与“Diagram Gate”搭配使用。
  • Diagram Gate:图入口,表示进入序列图的一个入口。用于在子序列图中表示是在什么情况下由上一级序列图进来的

(Interaction Relationships)消息:为了显示一个对象(例如,生命线)传递一个消息给另外一个对象,你画一条线指向接收对象,包括一个实心箭头(如果是一个同步调用操作)或一个棍形箭头(如果是一个异步讯号)。消息/方法名字放置在带箭头的线上面。正在被传递给接收对象的消息,表示接收对象的类实现的一个操作/方法。

1、拖拽Actor到图板中,命名为“流程管理者”,再从Project Browser树形目录中,拖拽“流程模型管理列表”到图板中,形成如下图6所示效果。

图6

或者直接点击工具箱中的生命线(Lifeline)命令,在图上分别添加多个生命线,输入生命线名称后大致调整各个生命线的位置;

2、通过消息来表示图中对象间的互动关系,在图7中,点击工具箱中的消息箭头命令,在一个生命线虚线上按下鼠标左键,拖动到另一个生命线虚线上再松开鼠标左键,然后双击消息线就可以输入消息名称了。

图7

按本案例,先定义出类的顺序,则是选择消息名称,如下图8所示。图中:初始化默认列表()、流程模型新增()、选中流程()等方法,都是在类“流程模型管理列表”定义好的,在这里直接选用。也可以点击按钮“Operations”,现增加。

图8

第七步:序列图分层

使用序列图分层技术可以让一个图不至于太复杂,在不同层次的序列图中表达不同级别的细节。在上图中,双击交互引用框“具体做什么”就能进入子序列图,在子序列图中表达更详细的内容。

操作方法:创建单独的序列图(子序列图,例如下图“流程模型管理列表”时序图),在模型树上将“流程模型管理列表”子序列图节点拖到当前序列图上,在弹出的对话框中选择第一个类型“交互引用框”:

图9

完成链接子时序图操作时,在当前时序图上产生图示。

最终效果如下图10所示,点击其所链接的时序图“ref/流程模型管理列表”的图标。则展示出图11,流程模型管理列表内部的时序图,展现其分层逐级深入的效果。

图10

图11

使用UML经验与愿景。

序列图把人当作系统。软件开发的目的就是要改进当前的现实,可能是引进一个新系统,也可能是升级现有的系统。序列图强迫思考动作背后的目的。其中,消息代表责任分配而不是数据流动。

使用EA进行UML建模,是个很好的选择。在实际工作中,首先保证开发完整的用例模型,用以确定需求范围和规划目标;其余的模型,根据工作需求,设计到可以接受的粒度,如果资源允许,则按规范进行设计更好。

在开发时序图时,尽量要逐级精细、深入。反过来,如果编码进行不顺畅,则应再回到时序图开发过程中,逐步求解,再深入剖析,使开发代码尽量简洁、逻辑清晰。如果其他目的,故弄玄虚,不在此讨论。

初次使用EA工具,不足之处在所难免,欢迎反馈讨论。

参考:

维基百科.Enterprise Architect

UML建模--序列图建模技巧

百度文库.EA教程

《软件方法》UMLChina 潘加宇 2012.11

UML建模—EA的使用(一) EA基本设置及类的设计 周响 2013.4

《UML与Enterprise Architect 7.5团队开发实务手册》3.2.5 在EA中绘制序列图  赖信仁 电子工业出版社 2010.3

软件项目需求开发过程实践之业务建模用例图 肖永威 2015.3

时间: 2024-08-02 11:00:46

UML建模——使用EA工具开发时序图实践及经验的相关文章

<十七>UML核心视图动态视图之时序图

一:时序图 --->时序图是用于描述按时间顺序排列的对象之间的交互模式. --->它按照参与交互的对象所具有的“生命线”和他们相互发送的消息来显示这些对象. --->时序图包含对象和主角实例,以及说明他们如何交互的消息. --->时序图描述了在参与交互的对象中所发生的事件(从激活的角度来说明),以及这些对象如何通过相互发送消息进行通信. --->时序图与协作图是可以相互转换的,与协作图不同的是,时序图强调消息事件发生的顺序,更方便于阐述时间流的过程.但是时序图很难表达对象之间

《UML精粹》 第四章 时序图

第四章 时序图 一般来说,我们会在一张时序图中画出某个情节的相关行为,图种会秀出这个使用案例(use case)里面可能出现的一些对象,以及在对象间传送的信息. 本章将通过一个简单情节,做时序图各方面的相关讨论.假设我们现在有一份订单,并且准备调用它的一个命令,算出这份订单的价格.为了达到这个目的,订单需要产看它里面所拥有的一些订单明细.决定它们的价格,价格决定方式是以订单明细中所包含产品之定价规则为基础决定的.对所有订单明细做完上述动作之后,接下来订单要算出整个折扣,这时候它是以跟客户绑在一起

eclipse下生成Java类图和时序图,生成UML图

最近老板让我做类图和时序图,提苦恼的,完全不会,就从网上整理了些 1.安装和使用AmaterasUML 安装AmaterasUML前,需要先安装GEF 采用eclipse在线安装方式安装就好. eclipse在线安装GEF的地址:http://download.eclipse.org/tools/gef/updates/releases/ 安装好GEF后,安装AmaterasUML 先到如下地址下载:http://sourceforge.jp/projects/amateras/download

UML建模工具

UML:Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置. UML规范用来描述建模的概念有,类.对象.关联.职责.行为.接口.用例.包.顺序.协作,以及状态UML可以辅助我们分析和设计复杂的系统,它用于帮助软件开发人员进行思考和记录思路的结果: uml本身是一套符号的规定,就像数学符号和化学符号一

采用[ICONIX] 方法实践分析和设计之六 [时序图](转)

采用[ICONIX] 方法实践BLOG设计之六 [时序图] 在前几篇文章中,我们分别进行了域模型和用例建模,并使用 Robustness工具进一步分析验证了相应用例的处理流程,并在相应模型(域模型)的基础上,通过Robustness方法引入相关的边界对象,控制对象(控制器),并更新了相应域模型中类的属性(字段).下面就可以进入到交互建模阶段了.如下图:    作为交互建模本身,就是要通过寻找对象之间的交互关系,进而进行方法(操作或行为)分配.    正所谓"只有在所有的用例为所有事件进程建立了交

【转】时序图

http://www.lupaworld.com/article-233409-1.html 系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类图class的关联关系(聚合.组合) [UML]UML系列——类图class的依赖关系 [UML]UML系列——类图class的泛化关系 [UML]UML系列——类图class的实现关系Realizatio

UML建模之 - 类图&时序图

简介 简介 UML是面向对象开发中一种通用的图形化建模语言 UML建模技术就是用模型元素来组建整个系统的模型,模型元素包括系统中的类.类和类之间的关联.类的实例相互配合实现系统的动态行为等 UML建模工具 Rational Rose : 是直接从UML发展而诞生的设计工具,常用建模工具 Power Designer : 是对数据库建模而发展起来的一种数据库建模工具 Microsoft Visio :是一种画图工具,Visio 2010才开始引入UML建模,不是很专业 Star UML : 开源轻

UML建模之时序图

现在是二月,而且到如今你或许已经读到.或听到人们谈论UML 2.0 —— 包括若干进步的 UML 的新规范,所做的变化.考虑到新规范的重要性,我们也正在修改这个文章系列的基础,把我们的注意力从 OMG 的 UML 1.4 规范,转移到 OMG 的已采纳 UML 2.0草案规范(又名 UML 2).我不喜欢在一系列文章的中间,把重点从 1.4 变为 2.0 ,但是 UML 2.0 草案规范是前进的重要一步,我感觉需要扩充文字. 由于一些理由,OMG 改良了 UML .主要的理由是,他们希望 UML

EA UML 建模——类图

Enterprise Architect(EA) 是一个功能比较强悍的建模工具,本篇文章仅使用其 UML 建模功能,其他更多功能,可以Google. 一.简单梳理C#中类与类.类与接口.接口与接口的关系 一.继承 (子类 : 父类.子接口 : 父接口) Is 子类 : 父类 abstract class Fruit{} class Apple : Fruit{} 子接口 : 父接口 interface IBase{} interface ISon : IBase{} 二.实现 (类 : 接口)