交互作用图(顺序、协作)
浅谈UML中常用的几种图
![浅谈UML中常用的几种图](https://img.taocdn.com/s3/m/eaab060f7f1922791788e882.png)
浅谈UML中常用的几种图1 UML简介2 UML常见图分类3 用况图(用例)4 类图简单类图使用举例5 其他辅助用图●时序图(顺序图)●协作图(Collaboration Diagram/communication Diagram)/通信图●状态图●活动图(Activity Diagram)6 组件图(ComponentDiagram)、配置图(Deployment Diagram)1 UML简介统一建模语言(Unified Modeling Language,UML)又称标准建模语言,是始于1997年的一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。
‘UML感兴趣的可以阅读UML 1规范,包含了UML 的所有知识内容。
注:OMG, Object Management Group 对象管理组织2 UML常见图分类UML从考虑系统的不同角度出发,定义了用况图、类图、对象图、包图、状态图、活动图、序列图、通信图、构件图、部署图等10种图。
分类:面向对象动态建模,用于建立行为的实体间行为交互的四种图:状态图(Stage Diagram),序列图(Sequence Diagram),协作图(Communication Diagram),活动图(Activity Diagram) 。
“序列图”与“协作图”表述的是相似的消息,“活动图”是“状态图”的一种。
•静态结构图Static Structure Diagram•类图Class Diagram•对象图Object Diagram•用况图Use Case Diagram•交互图Interaction Diagram•顺序图Sequence Diagram•协作图Collaboration Diagram•状态图State chart Diagrams•活动图Activity Diagrams•实现图Implementation Diagrams•构件图Component Diagram•部署图Deployment Diagram3 用况图(用例)用例图,展现了一组用例、参与者(actor)以及它们之间的关系。
UML各种图例齐全—用例图、类图、状态图、包图、协作图、顺序图详细说明书画法和功能
![UML各种图例齐全—用例图、类图、状态图、包图、协作图、顺序图详细说明书画法和功能](https://img.taocdn.com/s3/m/aa7e3e142f60ddccda38a063.png)
UML各种图例面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling Language ™),这篇课程的目的是展示出UML的精彩之处.UML中有九种建模的图标,即:∙用例图∙类图∙对象图∙顺序图∙协作图∙状态图∙活动图∙组件图∙配置图本课程中的某些部分包含了这些图的细节信息的页面链接.而且每个部分都有一个小问题,测试一下你对这个部分的理解.为什么UML很重要?为了回答这个问题,我们看看建筑行业.设计师设计出房子.施工人员使用这个设计来建造房子.建筑越复杂,设计师和施工人员之间的交流就越重要.蓝图就成标准文档为了这个行业中的设计师和施工人员的必修课.写软件就好像建造建筑物一样.系统越复杂,参与编写与配置软件的人员之间的交流也就越重要.在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”.现在它已经成为了软件行业的一部分了.UML提供了分析师,设计师和程序员之间在软件设计时的通用语言.UML被应用到面向对象的问题的解决上.想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的.一个模型model就是根本问题的抽象.域domain就是问题所处的真实世界.模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的.记住把一个对象想象成“活着的”.对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations).对象的属性的值决定了它的状态state.类Classes是对象的“蓝图”.一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数).对象是类的实例instances.用例图用例图Use case diagrams描述了作为一个外部的观察者的视角对系统的印象.强调这个系统是什么而不是这个系统怎么工作.用例图与情节紧紧相关的.情节scenario是指当某个人与系统进行互动时发生的情况.下面是一个医院门诊部的情节.“一个病人打电话给门诊部预约一年一次的身体检查.接待员找出在预约记录本上找出最近的没有预约过的时间,并记上那个时间的预约记录.”用例Use case是为了完成一个工作或者达到一个目的的一系列情节的总和.角色actor是发动与这个工作有关的事件的人或者事情.角色简单的扮演着人或者对象的作用.下面的图是一个门诊部Make Appointment用例.角色是病人.角色与用例的联系是通讯联系communication association(或简称通讯communication)标准文档角色是人状的图标,用例是一个椭圆,通讯是连接角色和用例的线.一个用例图是角色,用例,和它们之间的联系的集合.我们已经把Make Appointment作为一个含有四个角色和四个用例的图的一部分.注意一个单独的用例可以有多个角色.用例图在三个领域很有作用.决定特征(需求).当系统已经分析好并且设计成型时,新的用例产生新的需求标准文档∙客户通讯.使用用例图很容易表示开发者与客户之间的联系.∙产生测试用例.一个用例的情节可能产生这些情节的一批测试用例.类图类图Class diagram通过显示出系统的类以及这些类之间的关系来表示系统.类图是静态的-它们显示出什么可以产生影响但不会告诉你什么时候产生影响.下面是一个顾客从零售商处预定商品的模型的类图.中心的类是Order.连接它的是购买货物的Customer和Payment.Payment有三种形式:Cash,Check,或者Credit.订单包括OrderDetails(line item),每个这种类都连着Item.标准文档UML类的符号是一个被划分成三块的方框:类名,属性,和操作.抽象类的名字,像Payment是斜体的.类之间的关系是连接线.类图有三种关系.关联association-表示两种类的实例间的关系.如果一个类的实例必须要用另一个类的实例才能完成工作时就要用关联.在图中,关联用两个类之间的连线表示.标准文档标准文档为了简单地表示出复杂的类图,可以把类组合成包packages.一个包是UML上有逻辑关系的元件的集合.下面这个图是是一个把类组合成包的一个商业模型.dependencies关系.如果另一个的包B改变可能会导致一个包A改变,则包A依赖包B.包是用一个在上方带有小标签的矩形表示的.包名写在标签上或者在矩形里面.点化线箭头表示依赖对象图Object diagrams用来表示类的实例.他们在解释复杂关系的细小问题时(特别是递归关系时)很有用.这个类图示一个大学的Department可以包括其他很多的Departments.标准文档这个对象图示上面类图的实例.用了很多具体的例子.UML中实例名带有下划线.只要意思清楚,类或实例名可以在对象图中被省略.标准文档每个类图的矩形对应了一个单独的实例.实例名称中所强调的UML图表.类或实例的名称可能是省略对象图表只要图的意义仍然是明确的.顺序图类图和对象图是静态模型的视图.交互图是动态的.他们描述了对象间的交互作用.顺序图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向轴代表了在协作中各独立对象的类元角色.类元角色用生命线表示.当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线.消息用从一个对象的生命线到另一个对象生命线的箭头表示.箭头以时间顺序在图中从上到下排列.标准文档协作图协作图也是互动的图表.他们像序列图一样也传递相同的信息,但他们不关心什么时候消息被传递,只关心对象的角色.在序列图中,对象的角色放在上面而消息则是连接线.标准文档对象角色矩形上标有类或对象名(或者都有).类名前面有个冒号(:).协作图的每个消息都有一个序列号.顶层消息的数字是1.同一个等级的消息(也就是同一个调用中的消息)有同样的数字前缀,再根据他们出现的顺序增加一个后缀1,2等等.状态图对象拥有行为和状态.对象的状态是由对象当前的行动和条件决定的.状态图statechart diagram显示出了对象可能的状态以及由状态改变而导致的转移.标准文档我们的模型例图建立了一个银行的在线登录系统.登录过程包括输入合法的密码和个人账号,再提交给系统验证信息.登录系统可以被划分为四种不重叠的状态:Getting SSN, Getting PIN, Validating, 以及 Rejecting.每个状态都有一套完整的转移transitions来决定状态的顺序.标准文档状态是用圆角矩形来表示的.转移则是使用带箭头的连线表示.触发转移的事件或者条件写在箭头的旁边.我们的图上有两个自转移.一个是在Getting SSN,另一个则在上Getting PIN.初始状态(黑色圆圈)是开始动作的虚拟开始.结束状态也是动作的虚拟结束.事件或条件触发动作时用(/动作)表示.当进入Validating状态时,对象并不等外部事件触发转移.取而代之,它产生一个动作.动作的结果决定了下一步的状态.活动图活动图activity diagram是一个很特别的流程图.活动图和状态图之间是有关系的.状态图把焦点集中在过程中的对象身上,而活动图则集中在一个单独过程动作流程.活动图告诉了我们活动之间的依赖关系.对我们的例子来说,我们使用如下的过程.“通过ATM来取钱.”这个活动有三个类Customer, ATM和 Bank.整个过程从黑色圆圈开始到黑白的同心圆结束.活动用圆角矩形表示.标准文档标准文档标准文档。
交互作用图(顺序、协作)
![交互作用图(顺序、协作)](https://img.taocdn.com/s3/m/e8f8ee0890c69ec3d5bb7557.png)
消息规范
设置消息同步类型, 常用有简单,同步, 异步;
静态结构模型:实体类的类图
Book 1..n Title
0..1 Loan 0..n Persistent (from DB)
0..n Reservation 0..n
Borrower
• 类Title • Isbn:String • book:OID[ ]
• findBorrower(id:String):OID • 返回指定ID号的Borrower对 象的OID • getBorrower(oid:OID):Borro wer • 返回指定OID的Borrower对 象 • addLoan(loan:OID) • 添加借阅记录 • delLoan(loan:OID) • 删除借阅记录
顺序图的结构控制
可选执行(Optional Execution)
标记为“opt”。
条件执行(Conditional Execution)
标记为“alt”。
并行执行(Parallel Execution)
标记为“par”。
循环执行(Loop/Iterative Execution)
(3). 简单消 息
它只表示控制如何从一个对象传递给另一个对象,而没有描述通信的任何细节。 这种类型的消息主要用于通信细节未知或者无需考虑通信细节的场合。也就是说,主 要用于不知道消息是同步还是异步的场合,但通常情况下表示异步消息此外在高层分 析中,有时候没有必要指定一个消息是同步的还是异步的。如下面的示例所示。
• • • • • • • • • •
类Book id:Integer title:OID loan:OID findBook(id:Integer):OID 返回指定id的Book对象 getLoan():Loan setLoan(loan:OID) getTitle():Title getObject(book:OID):Bo ok
时序图和协作图
![时序图和协作图](https://img.taocdn.com/s3/m/f9abed57c850ad02de80412d.png)
时序图的最大特点是:它以二维的平面上 的一维来表示时间进度,在时间维上定义 各个对象所执行的操作以及它们之间所传 送的消息。从而能够在逻辑上清晰的刻画 这些操作和消息的时序关系乃至因果关系。
简单时序图
7.2 时序图元素及表示法
在UML中,时序图用一个二维图描述系统 中各个对象之间的交互关系。其中,纵轴 是时间轴,时间沿竖线向下延伸,由上至 下表示时间的先后顺序。横轴代表了参与 相互作用的对象。 当对象存在时,生命线由一条虚线表示; 当对象的过程处于激活状态时,生命线上 用一个激活条表示。消息用从一个对象到 另一个对象生命线的箭头表示,箭头以时 间顺序从上到下排列。
时序图(Sequence Diagram)也被称为 顺序图,是一种详细地表示对象之间行为 交互关系的图,主要用来描述对象之间信 息交换时的时间顺序。因此可以清晰而直 观的表示对象之间的行为交互关系以及操 作和消息的时序关系。
时序图的主要用途把用例表达的要求转化 为更进一步的精细表达。它还能用来记录 一个存在系统的对象现在如何交互。 用例常常可被细化为一个或多个时序图。
7.2 时序图元素及表示法
时序图有4种基本图形元素,包括:
对象(object) 生命线(lifeline) 激活(activation) 消息(message)
1. 对象
时序图中的对象在概念上和它在对象图中 的定义是一致的,其图形表示也相同。 每个对象显示在单独的列里,用一个矩形 框代表一个对象,框内填写对象名和它所 属的类名,中间用一个冒号隔开。
2.链接
链接是两个对象间的连接。 它的图形符号也是用一条连接在两个对象间 的实线表示。在连接线上可以标明对象名。
3.消息
电子商务系统分析与设计第二章课后习题
![电子商务系统分析与设计第二章课后习题](https://img.taocdn.com/s3/m/ef1e30ec524de518964b7dd7.png)
第二章姓名:顾馨学号:09110104 专业:计算机科学与技术(师范)一、单选1.UML是一种对软件密集型系统的制品进行可视化、详述、构造及(D.文档化)的语言。
2.协作包括结构部分和(C.行为)部分。
3.接口的符号有(B.3)种表示方式。
4.事件的种类中有消息、调用、时间推移和(D.状态改变)。
5.下列(D.包)不属于结构元素。
6.(C.用例图)是软件需求分析到最终实现的第一步。
7.下列属于交互作用图的组成元素是(A.对象)。
8.下列关系是UML的关系为(A.关联关系)。
9.顺序图的垂直轴表示(B.时间)。
10.(C.活动图)是一个流图,描述了从活动到活动的流。
二、多选1.下列属于UML中的视图有(A.用例视图 B.设计视图 C.过程视图)。
2.下列不属于UML的结构元素的有(B.包 C.注释)。
3.接口可以参与(A.类属 B.关联 C.依赖 D.实现)关系。
4.UML的词汇表由(A.元素 B.关系 C.图)构成。
5.UML的行为元素包括(C.状态机 D.交互)。
6.用例图由(A.参与者C.用例 D.用例间的关系)组成。
7.下列哪些属于类元(A.数据类型 B.接口 C.信号 D.节点)。
8.类的类型有很多种,具体包括(B.实体类 C.边界类 D.控制类)。
9.交互图可以分为(B.顺序图D.协作图)几种。
10.活动图的应用表现在以下哪些方面(C.对工作流建模 D.对操作过程建模)。
三、判断1.UML是可视化的编程语言。
(F )2.如果一个元素在包中是可见的,则对于该包中所嵌套的所有子包都是可见的。
(T)3.UML为软件系统的产出建立非可视化模型。
(F )4.包可以含有类、接口、组件、节点、协作、用例、图,但是不可以含有其他的包。
(F )5.对状态的操作通常会改变对象的状态,对对象的查询不会改变对象的状态。
(T)6.对象只可以用对象名进行命名。
(F )7.时间事件是状态中的一个变化或满足某些条件的事件。
UML 序列图(顺序图)和协作图
![UML 序列图(顺序图)和协作图](https://img.taocdn.com/s3/m/f296a2b2f121dd36a32d82ba.png)
UML图学习序列图(顺序图)和协作图分类:UML 2012-11-30 16:42 2528人阅读评论(19) 收藏举报在面向对象动态建模,用于建立行为的实体间行为交互的四种图:状态图(Stage Diagram),序列图(Sequence Diagram),协作图(Communication Diagram),活动图(Activity Diagram) ,其中,“顺序图”与“协作图”表述的是相似的消息。
序列图(Sequence Diagram)强调的消息时间顺序的交互图,描述类系统中类与类之间的交互,它将这些交互建模成消息互换,换句话说,顺序图描述了类与类之间之间相互交换以完成期望行为的消息。
顺序图的特点是清晰,一个设计很好地顺序图从左到右、从上到下可以很好地表示出系统数据的流向,为接下来的系统设计做好铺垫。
协作图(Collaboration Diagram /Communication Diagram,也叫合作图)是一种交互图(interaction diagram),强调的是发送和接收消息的对象之间的组织结构。
一个协作图显示了一系列的对象和在这些对象之间的联系以及对象间发送和接收的消息。
对象通常是命名或匿名的类的实例,也可以代表其他事物的实例,例如协作、组件和节点。
使用协作图来说明系统的动态情况。
1、序列图(顺序图)的知识点概要:点此看大图2、协作图知识点概要:点此看大图3:顺序图(1)先从图书馆借/还书角度了解顺序图从顺序图的流程中,清晰到了解程序的过程,十分清晰明了(2)从地铁购票的活动中来看顺序图根据机房收费系统来画的部分顺序图(3):一般用户角度查询信息。
(4):操作员注册新的学生账号(5)管理员的基本系统数据的的设定4、协作图(1)结合刚才的图书馆借/还书的过程。
根据序号可以发生的先后顺序(2)从地铁购票的角度来学习协作图(3)结合机房收费系统角度画的协作图一般用户查询信息:(4)操作员注册卡(5)管理员修改基本数据5、协作图与顺序图的区别和联系协作图和顺序图都表示出了对象间的交互作用,但是它们侧重点不同顺序图清楚地表示了交互作用中的时间顺序(强调时间),但没有明确表示对象间的关系。
时序图和协作图
![时序图和协作图](https://img.taocdn.com/s3/m/7d87e00871fe910ef02df87f.png)
1. 对象
❖ 时序图中的对象在概念上和它在对象图中 的定义是一致的,其图形表示也相同。
❖ 每个对象显示在单独的列里,用一个矩形 框代表一个对象,框内填写对象名和它所 属的类名,中间用一个冒号隔开。
Object1 : ClassA
2.生命线
❖ 生命线是对象标识符在垂直方向上拖出的一 条长虚线,表示时序图中的对象在一段时间 内的存在。
激活示例
激活的应用
❖ 当进行时序图建模时,所用到的消息主要 包括以下几种类型:
简单消息(Simple Message) 同步消息(Synchronous Message) 异步消息(Asynchronous Message) 反身消息(Message to Self) 返回消息(Return Message)
(1)简单消息(Simple Message)
❖ 简单消息是在同步和异步之间没有区别的 消息。
❖ 在不知道消息的类型的情况下就可以使用 简单消息。
❖ 在对系统进行时序图建模时,可以对所有 的消息都使用简单消息进行表示,然后再 根据情况确定消息的类型。
(2)同步消息(Synchronous Message)
如果对象在这个位置上,那么说明在发送 消息时,该对象就已经存在了; ❖ 如果对象是在执行的过程中创建的,那么 它的位置应该处在图的中间部分。
❖ 对象的创建有两种方法:
ObjectA 1: Create() ObjectB 2: ReturnMessage
ObjectA
ObjectB
1: Create()
: Administrator
:ManageWindow
1: UpdateBorrower()
:UpdateBorrowerDialog
UML各种图例—用例图、类图、状态图、包图、协作图、顺序图
![UML各种图例—用例图、类图、状态图、包图、协作图、顺序图](https://img.taocdn.com/s3/m/77b017c46137ee06eff918c4.png)
UML各种图例——用例图、类图、状态图、包图、协作图、顺序图面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling Language™),这篇课程的目的是展示出UML的精彩之处.UML中有九种建模的图标,即:∙用例图∙类图∙对象图∙顺序图∙协作图∙状态图∙活动图∙组件图∙配置图本课程中的某些部分包含了这些图的细节信息的页面链接.而且每个部分都有一个小问题,测试一下你对这个部分的理解.为什么UML很重要?为了回答这个问题,我们看看建筑行业.设计师设计出房子.施工人员使用这个设计来建造房子.建筑越复杂,设计师和施工人员之间的交流就越重要.蓝图就成为了这个行业中的设计师和施工人员的必修课.写软件就好像建造建筑物一样.系统越复杂,参与编写与配置软件的人员之间的交流也就越重要.在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”.现在它已经成为了软件行业的一部分了.UML提供了分析师,设计师和程序员之间在软件设计时的通用语言.UML被应用到面向对象的问题的解决上.想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的.一个模型model就是根本问题的抽象.域domain就是问题所处的真实世界.模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的.记住把一个对象想象成“活着的”.对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations).对象的属性的值决定了它的状态state.类Classes是对象的“蓝图”.一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数).对象是类的实例instances.用例图用例图Use case diagrams描述了作为一个外部的观察者的视角对系统的印象.强调这个系统是什么而不是这个系统怎么工作.用例图与情节紧紧相关的.情节scenario是指当某个人与系统进行互动时发生的情况.下面是一个医院门诊部的情节.“一个病人打电话给门诊部预约一年一次的身体检查.接待员找出在预约记录本上找出最近的没有预约过的时间,并记上那个时间的预约记录.”用例Use case是为了完成一个工作或者达到一个目的的一系列情节的总和.角色actor是发动与这个工作有关的事件的人或者事情.角色简单的扮演着人或者对象的作用.下面的图是一个门诊部Make Appointment用例.角色是病人.角色与用例的联系是通讯联系communication association(或简称通讯communication)角色是人状的图标,用例是一个椭圆,通讯是连接角色和用例的线.一个用例图是角色,用例,和它们之间的联系的集合.我们已经把Make Appointment作为一个含有四个角色和四个用例的图的一部分.注意一个单独的用例可以有多个角色.用例图在三个领域很有作用.∙决定特征(需求).当系统已经分析好并且设计成型时,新的用例产生新的需求∙客户通讯.使用用例图很容易表示开发者与客户之间的联系.∙产生测试用例.一个用例的情节可能产生这些情节的一批测试用例.类图类图Class diagram通过显示出系统的类以及这些类之间的关系来表示系统.类图是静态的-它们显示出什么可以产生影响但不会告诉你什么时候产生影响.下面是一个顾客从零售商处预定商品的模型的类图.中心的类是Order.连接它的是购买货物的Customer和Payment.Payment有三种形式:Cash,Check,或者Credit.订单包括OrderDetails(line item),每个这种类都连着Item.每个类图包括类,关联和多样性表示.方向性和角色是为了使图示得更清楚时可选的项目.包和对象图为了简单地表示出复杂的类图,可以把类组合成包packages.一个包是UML上有逻辑关系的元件的集合.下面这个图是是一个把类组合成包的一个商业模型. dependencies关系.如果另一个的包B改变可能会导致一个包A改变,则包A依赖包B.包是用一个在上方带有小标签的矩形表示的.包名写在标签上或者在矩形里面.点化线箭头表示依赖对象图Object diagrams用来表示类的实例.他们在解释复杂关系的细小问题时(特别是递归关系时)很有用.这个类图示一个大学的Department可以包括其他很多的Departments.这个对象图示上面类图的实例.用了很多具体的例子.UML中实例名带有下划线.只要意思清楚,类或实例名可以在对象图中被省略.每个类图的矩形对应了一个单独的实例.实例名称中所强调的UML图表.类或实例的名称可能是省略对象图表只要图的意义仍然是明确的.顺序图类图和对象图是静态模型的视图.交互图是动态的.他们描述了对象间的交互作用.顺序图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向轴代表了在协作中各独立对象的类元角色.类元角色用生命线表示.当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线.消息用从一个对象的生命线到另一个对象生命线的箭头表示.箭头以时间顺序在图中从上到下排列.协作图协作图也是互动的图表.他们像序列图一样也传递相同的信息,但他们不关心什么时候消息被传递,只关心对象的角色.在序列图中,对象的角色放在上面而消息则是连接线.对象角色矩形上标有类或对象名(或者都有).类名前面有个冒号(:).协作图的每个消息都有一个序列号.顶层消息的数字是1.同一个等级的消息(也就是同一个调用中的消息)有同样的数字前缀,再根据他们出现的顺序增加一个后缀1,2等等.状态图对象拥有行为和状态.对象的状态是由对象当前的行动和条件决定的.状态图statechart diagram显示出了对象可能的状态以及由状态改变而导致的转移.我们的模型例图建立了一个银行的在线登录系统.登录过程包括输入合法的密码和个人账号,再提交给系统验证信息.登录系统可以被划分为四种不重叠的状态:Getting SSN, Getting PIN, Validating, 以及Rejecting.每个状态都有一套完整的转移transitions来决定状态的顺序.状态是用圆角矩形来表示的.转移则是使用带箭头的连线表示.触发转移的事件或者条件写在箭头的旁边.我们的图上有两个自转移.一个是在Getting SSN,另一个则在上Getting PIN.初始状态(黑色圆圈)是开始动作的虚拟开始.结束状态也是动作的虚拟结束.事件或条件触发动作时用(/动作)表示.当进入Validating状态时,对象并不等外部事件触发转移.取而代之,它产生一个动作.动作的结果决定了下一步的状态.活动图活动图activity diagram是一个很特别的流程图.活动图和状态图之间是有关系的.状态图把焦点集中在过程中的对象身上,而活动图则集中在一个单独过程动作流程.活动图告诉了我们活动之间的依赖关系.对我们的例子来说,我们使用如下的过程.“通过ATM来取钱.”这个活动有三个类Customer, ATM和Bank.整个过程从黑色圆圈开始到黑白的同心圆结束.活动用圆角矩形表示.。
UML协作图
![UML协作图](https://img.taocdn.com/s3/m/c4ac8693ba4cf7ec4afe04a1b0717fd5360cb2a7.png)
两种图的语义是等价的,可以从一种形式的图转换 成另一种形式的图,而不丢失任何信息。
9
比较顺序图与协作图 例:客户Joe从ATM机提取20美金的场景。
10
11
实例——储户在ATM机上存钱操作的协作图 ( visio 2007演示 )
1、确定系统中的类
7: 验 证 PIN 15:打印收条
12:接收钱
2:读卡
13:验钱数 14:帐户加钱
: 读卡机
4: 打 开 帐 户 16:退卡
: 帐户
14
2
协作图示例:
3
协作图包含了3个元素:
① 对象(Object) ② 链(Link) ③ 消息(Message)
4
1. 对象
在协作图中可以使用3种标记类型的对象。
5
2. 链
协作图中链的符号和对象图中链所用的符号是 一样的,即一条连接两个类角色的实线表示。
链接用来在协作图中关联对象,链接的目的是 让消息在不同系统对象之间传递。没有链接, 两个系统对象之间无法彼此交互。
储户
读卡机
ATM屏幕
帐户
存钱机
12
2、确定类之间关系
储户
ATM屏幕
存钱机
读卡机
帐户
13
3、对象实例之间协作关系
: 储户
6:输入PIN 9: 选 择 存 钱 事 务
11: 输 入 金 额
: ATM屏幕
5: 提 示 输 入 PIN 8:提示选择事务
10:提示金额
: 存钱机
1:插 入 卡
3: 屏 幕 初 始 化
6
7
3.消息
消息是协作图中对象与对象之间通信的方式。消息在协 作图中显示为一个伴随链接或者关联角色的文本字符串,并 带有一个箭头来指示消息沿着关系传递的方向。
软件工程八-动态设计——2.交互图
![软件工程八-动态设计——2.交互图](https://img.taocdn.com/s3/m/e5b17881b0717fd5360cdc75.png)
实例:同步与异步
你叫我去吃饭,我听到了就和你去吃饭;如果没有听到, 你就不停的叫,直到我告诉你听到了,才一起去吃饭。 你叫我去吃饭,然后自己去吃饭,我得到消息后可能立即 走,也可能等到下班才去吃饭。
所以,要我请你吃饭就用同步的方法,要请我吃饭就 用异步的方法,这样你可以省钱。^_^!
(1)简单消息 简单消息是没有区分同步和异步的消息。 简单消息用从一对象的生命线指向另一个对象的生命线的直 线箭头来表示,箭头上面标出消息名。
(1)以嵌套的形式显示消息的序号 选择菜单【 Tools->Options 】,弹出以下对话框,选择 Diagram选项卡,选中Hierarchical Message
(2)取消或隐藏消息的编号 选择菜单【 Tools->Options 】,弹出以下对话框,选择 Diagram选项卡,选中或取消Sequence numbering
(3)显示或隐藏激活条 选择菜单【 Tools->Options 】,弹出以下对话框,选择 Diagram选项卡,选中或取消Focus of control
我们的进度,在这里
消息根据对象生命线从上往下从1开始进行编号。删除 消息时,Rose自动将其余消息重新编号。 打开或关闭消息编号:
◦ 选择Tools > Options; ◦ 选择Diagram标签; ◦ 复选或取消Sequence Numbering。
用例描述:注册用户在官方网站帐户登陆页面上输入ID和密码登陆管理个 人帐户。 主事件流: 1.用户点击主页上的登陆按钮,开始用例。 2.系统显示登陆页面。 3.用户输入ID和密码,然后点击登陆。 4.系统验证登陆信息和数据库一致,然后回到主页。 5.用例结束。 其他事件流A1: 如果用户点击登陆页面上的提示词按钮,系统在一个单独的对话框里显示 为用户储存的提示词,用户点击确定按钮,系统页面回到登陆页。 其他事件流A2: 如果用户输入了一个系统无法识别的ID,系统显示错误信息并提示用户输 入一个不同的ID。 其他事件流A3: 如果用户输入了一个不正确的密码,系统显示错误信息并提示用户输入正 确的密码。 其他事件流A4: 如果用户连续3次输入错误的密码,系统显示消息告诉用户无法再连接服 务器,并且冻结登陆页。
Rational Rose的四种视图模型
![Rational Rose的四种视图模型](https://img.taocdn.com/s3/m/d84ad3df3186bceb19e8bb9c.png)
/art/201007/215560.htm.1 Rational Rose的四种视图模型在Rational Rose建立的模型中包括四种视图,分别是用例视图(Use Case View)、逻辑视图(Logical View)、构件视图(Component View)和部署视图(Deployment View)。
创建一个Rational Rose工程的时候,会自动包含这四种视图,如图5-1所示。
每一种视图针对不同的模型元素,具有不同的用途。
在下面的几个小节中将分别对这四种视图进行说明。
.1.1 用例视图(2)用例图(Use Case Diagram)。
在用例视图中,用例图显示了各个参与者、用例以及它们之间的交互。
在用例图下可以连接与用例图相关的文件和URL地址。
在浏览器中选择某个用例图,右键单击,可以看到在该用例图中允许创建的元素,如图5-7所示。
类图(Class Diagram)。
在用例视图下,允许创建类图。
类图提供了结构图类型的一个主要实例,并提供了一组记号元素的初始集,供所有其他结构图使用。
在用例视图中,类图主要提供了各种参与者和用例中对象的细节信息。
与在用例图下相同,在类图下可以创建连接类图的相关文件和URL地址。
在浏览器中选择某个类图,右键单击,可以看到在该类图中允许创建的元素,如图5-8所示。
协作图(Collaboration Diagram)。
在用例视图下,也允许创建协作图,来表达各种参与者和用例之间的交互协作关系。
与在用例图下相同,在协作图下可以创建连接与协作图相关的文件和URL地址。
在浏览器中选择某个协作图,右键单击,可以看到在该协作图中允许创建的元素,如图5-9所示。
序列图(Sequence Diagram)。
在用例视图下,也允许创建序列图,和协作图一样表达各种参与者和用例之间的交互序列关系。
与在用例图下相同,在序列图下也可以创建连接与序列图相关的文件和URL地址。
在浏览器中选择某个序列图,右键单击,可以看到在该序列图中允许创建的元素,如图5-10所示。
类图交互作用图-PPT
![类图交互作用图-PPT](https://img.taocdn.com/s3/m/aa69007d366baf1ffc4ffe4733687e21af45ffba.png)
1..n
1..n
1..n
双向关联
0..n
Course -name : String -courseID : String -textBook : Book
0..n
1、 类图
1、2 类图得划分
类图得划分
在软件开发得不同阶段,类图描述了不同层次得抽 象。以需求阶段、设计阶段、实现阶段将类图划分为 三个层次:
0..1
direct deposits checks via
单向关联
0..1
<<接口>>
IBankSystem(From External System Interface)
+deposit(in aPayCheck : PayCheck(from Payroll Artifacts), in intoBank : BankInformation(from Payroll Artifacts))
+addTeacher(in teacher : Teacher) : int +removeTeacher(in teacher : Teacher) : int +getNumofTeachers() : int
1 +dean 1
1 1..n
Teacher
-name : String -teacherID : String -salary : float -address : String -title : String
聚合 1..n 1..n
Student -name : String -studentID : String -homeAddress : String -enrollDate : Date
UML-8交互作用图解读
![UML-8交互作用图解读](https://img.taocdn.com/s3/m/e058211583c4bb4cf6ecd118.png)
顺序图是一个二维图形。在顺序图中水平向为对象 维,沿水平方向排列参与交互的对象类角色;竖向为 时间维,沿垂直向下方向按时间递增顺序列出各对象 类角色所发出和接收的消息。 一个顺序图由下列图形元素构成:对象类角色、生 命线、激活期和消息。 1.对象类角色 对象类角色(Class Role)表示在交互中对象可起的 作用。 对象类角色用矩形框图标表示。 在顺序图中对象类角色一般只给出名称,其命名规 则与在对象类图中相同。
图8.4 对数据库的JDBC接口的访问
8.1.3 同步消息与异步消息
火龙果 整理
同步消息(Synchronous massage)代表一个通过操 作调用的嵌套的控制流,该操作调用要求操作同步。 同步消息的发送者把控制传递给消息的接收者,然 后暂停活动,等待消息接收者放弃或返回控制。 同步消息的接收者执行所请求的操作,如果需要的 话,可以把控制传递给另一个对象角色,请求做某个 操作,并且当该操作完成后把控制返回给原来的同步 消息的发送者。 同步消息的接收者也可以直接返回或发送信息给原 来的消息的发送者。
8.1.1 顺序图的组成
火龙果 整理
4.消息 消息(Message)表示对象之间的通信,对象之间的交互通过互 发消息来实现,消息将触发接受对象中的特定操作。 。 在顺序图中消息用对象角色之间的一条水平箭线表示。消息箭线 从源对象指向目标对象,其上标有消息内容标签。 消息内容标签的格式为: 序号 [保安条件] *[循环] 返回表:= 操作名(参数表) 序号为消息在整个交互中的顺序号。 保安条件(Guard Condition)是一个布尔条件表达式。只有当其 保安条件被满足时才能发送该消息。保安条件可以缺省,表示该消 息是无条件发送的。 循环说明规定该消息发送的重复次数。 操作的参数表是一个以逗号分隔的实在参数表,它被传递给接收 该消息的对象类角色中的一个操作(方法)。
第八章 顺序图和协作图
![第八章 顺序图和协作图](https://img.taocdn.com/s3/m/2ff534330912a2161479299b.png)
第八章序列图和协作图本章要点⏹基础内容:序列图和协作图的激活和链⏹重点掌握:序列图和协作图中的对象、消息⏹一般了解:序列图中的分支和从属流导读⏹在标识出系统的类图之后,除了显示了实现用例的组成结构外,还需要描述这些类的对象是如何交互来实现用例功能的,即不但需要类图模型,还需要将它转化为交互图模型。
⏹交互图为基于交互的对象行为建模,是UML用于描述对象之间信息的交互过程的方法,是描述对象间协作关系的模型。
交互图指出对象如何通过协作来完成用例中捕获的业务流程。
⏹UML中的交互图以图形的形式表示方法调用的具体过程,主要有顺序图和协作图两种形式。
UML提供了一系列的图支持面向对象的分析和设计,顺序图和协作图都输描述系统动态视图的交互图。
其中顺序图描述了以时间顺序组织的对象之间的交互活动,协作图强调收发消息的对象的组织结构。
8.1 顺序图概述⏹顺序图由类角色、生命线、激活期和消息组成。
⏹顺序图用于表示一个交互,该交互是协作中各种类元角色间的一组消息交换,侧重于强调时间顺序。
顺序图捕获系统运行中对象之间有顺序的交互,强调的是消息交互的时间顺序。
⏹顺序图用于表示用例中的行为顺序。
顺序图将交互关系表示为一个二维图。
横向轴代表了在协作中各独立对象的类元角色。
纵向轴是时间轴,时间沿竖线向下延伸。
所谓交互是指在具体语境中由为实现某个目标的一组对象之间进行交互的一组消息所构成的行为。
交互——语境对象相互链接的地方就有交互(1)具有对象协作的系统、子系统语境中如:Web商务系统,客户对象、服务器对象间交互(2)操作实现语境中如:操作的参数、局部变量、全局对象相互交互完成操作的实现算法(3)类语境中如:通过交互显示类的属性是如何相互协作的交互——对象和角色⏹交互中的对象可以是具体事物⏹也可以是原型化事物⏹可以是类、构件、节点、用例的实例,也可以是抽象类、接口的间接实例UML提供的交互机制通常用于为以下两种情况进行建模:(1)控制流方面进行建模可针对一个用例、一个业务操作过程或系统过程,也可针对整个系统。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
消息规范
设置消息同步类型, 常用有简单,同步, 异步;
静态结构模型:实体类的类图
Book 1..n Title
0..1 Loan 0..n Persistent (from DB)
0..n Reservation 0..n
Borrower
• 类Title • Isbn:String • book:OID[ ]
创建时序图
时序图工具条
选择工具 文本 注释 注释指示 对象 消息 反身消息 过程调用返回的消息
对象删除
时序图中增加对象和消息
对象规范
映射类,每个对象 都应该映射到一个 类。如果要为对象 创建新的类,选择 New选项。
消息规范
可以将接受对象的 某个操作指定给消 息。指定操作后, 消息名变为所指定 的操作名
• findTitle(isbn:String):OID • 返回指定ISBN的Title对象的 OID • getTitle(oid:OID):Title • 返回Title对象 • getAvaliableBook():OID • 返回第一个可借阅的Book对 象的OID
• 类Borrower • borrowerID:String • loans:OID[ ]
创建消息:创建一个对象,箭头需要指到所建立的 对象上面。 销毁消息:销毁一个对象,对象生命线用差号来表 示销毁,表示被销毁对象的生命周期将到此终结。
obj1:Class <<c re at e>> obj2:Class
<<d e s t ro y >>
<<boundary>> : 职员管理界面
顺序图是显示对象之间交互的图, 这些对象是按时 间顺序排列的. 它显示参与交互的对象及对象之间消息交互的顺序.
对象/参与者 对象维
生命线 消息 时间维 控制焦点
对象的三种命名方式:
生命线是对象图标向下延伸的虚线, 表示对象生存时间.
消亡点
控制焦点(Focus of Control)又称为激活期(Activation), 用 生命线上的小矩形表示, 在这个时间段内, 对象执行相 应的操作.
(3). 简单消 息
它只表示控制如何从一个对象传递给另一个对象,而没有描述通信的任何细节。 这种类型的消息主要用于通信细节未知或者无需考虑通信细节的场合。也就是说,主 要用于不知道消息是同步还是异步的场合,但通常情况下表示异步消息此外在高层分 析中,有时候没有必要指定一个消息是同步的还是异步的。如下面的示例所示。
顺序图的结构控制
可选执行(Optional Execution)
标记为“opt”。
条件执行(Conditional Execution)
标记为“alt”。
并行执行(Parallel Execution)
标记为“par”。
循环执行(Loop/Iterative Execution)
可选执行 标签是opt。如果控制进入该操作符标识的交互区域时监护条件成 立,那么执行该交互区域。监护条件是一个用方括号括起来的布尔表达式, 它要出现在交互区域内部第一条生命线的顶端,在其中可以引用该对象的属 性。 条件执行 标签为 alt。用水平虚线把交互区域分割成几个分区,每个分区表 示一个条件分支并有一个监护条件。如果一个分区的监护条件为真,就执行 这个分区,但最多只能执行一个分区。如果有多于一个监护条件为真,那么 选择哪个分区是不确定的。若没有应对措施,在模型中要避免这种情况。如 果所有的监护条件都不为真,那么控制流将跨过这个交互区域而继续执行。 其中的一个分区可以用特殊的监护条件[else],这意味着如果其他所有区域 的监护条件都为假,就执行该分区。 并行执行 标签是 par。用水平虚线把交互区域分割为几个分区。每个分区表 示一个并发计算。当控制进入交互区域时并发地执行所有的分区;在并行分 区都执行完后,那么该并行操作符标识的交互区域也就执行完毕。每个分区 内的消息是顺序执行的。需要指出的是,并发并不总是意味着物理上的同时 执行。并发其实是说两个动作没有协作关系,而且可按任意次序发生。如果 它们确实是独立的动作,那么它们还可以交叠。 循环(迭代)执行 标签是 loop。在交互区域内的顶端给出一个监护条件。 只要在每次迭代之前监护条件成立,那么循环主体就会重复执行。一旦在交 互区域顶部的监护条件为假,控制就会跳出该交互区域。
4 : setgrade(studentID,C)
[59<grade<70]
5 : setgrade(studentID,D)
建立顺序图
步骤: ■ 按照当前交互的意图,如系统的一次执行,或者一组对象(包括参与者 实例,以下不再明确地提及参与者实例)之间的协作,详细地审阅有关材 料(如有关的用况),设置交互的语境,其中包括可能需要的那些对象。 ■ 通过识别对象在交互中扮演的角色,在顺序图的上部列出所选定的一组 对象(应该给出其类名),并为每个对象设置生命线。通常把发起交互的 对象放在左边。 ■ 对于那些在交互期间要被创建和撤销的对象,在适当的时刻,用消息箭 线显式地予以指明。 ■ 决定消息将怎样或以什么样的序列在对象之间传递。 通过首先发出消息的对象,看它需要哪些对象为它提供操作,它向那 些对象提供操作。追踪相关的对象,进一步做这种模拟,直到分析完与当 前语境有关的全部对象。 如果一个对象的操作在某个执行点上应该向另一个对象发消息,则从 这一点向后者画一条带箭头的直线,并在其上注明消息名。用适当的箭头 线区别各种消息。
下一个操作符是可选操作符。如果密码是正确的,那么就执行这个操作符 的主体;否则就跳过该顺序图后面的部分。这个可选操作符的主体内还包 括了一个并行操作符。正如图中所表明的,操作符可以嵌套。
并行操作符有两个分区:一个让用户输入帐号,另一个让用户输入数额。 因为这两个分区是并行的,所以没有规定应该按照什么次序输入这两者, 按照什么次序输入都可以。需要强调的是,并发并不总是意味着物理上的 同时执行。并发其实是说两个动作没有协作关系,而且可按任意次序发生。 如果它们确实是独立的动作,那么它们就可以交叠;而如果它们是顺序的 动作,那么它们可以按任意的次序发生。 一旦并行操作符的两个动作都被执行过,那么该并行操作符也就执行 完毕。在可选操作符中的下一个动作是银行向给用户交付现金。至此,顺 序图执行完毕。
: MainWindow
: ReturnDialog
: Borrower
: Book
: Loan
1: return( ) 2: createDialog( )
3: return( ) 4: findBook(Integer) 5: getObject(OID) 6: getLoan( ) 7: getBorrower( ) 8: setLoan(null) 9: update( ) 10: delLoan(OID) 11: update( ) 12: delete( )
• • • • • • • • • •
类Book id:Integer title:OID loan:OID findBook(id:Integer):OID 返回指定id的Book对象 getLoan():Loan setLoan(loan:OID) getTitle():Title getObject(book:OID):Bo ok
• 添加借阅者
<<boundary>> : 增加职员窗口
<<control>> : 职员控制器
<<entity>> : 职员
: 管理员 1 : 增加职员() <<create>> 2 : 弹出增加职员窗口()
3 : 职员信息()
4 : 提交() 5 : 增加职员() 6 : 创建职员对象() 7 : 保存职员信息()
标记为“loop”。
上图展示了一个简化了的例子,其中有一些控制操作符。用户启动这个序 列。第一个操作符是循环操作符,圆括号内的数字(1,3)表示循环执行 的最少次数和最多次数。因为最少是一次,所以在检测条件之前主体至少 执行一次。在循环内,用户输入密码,系统验证它。只要密码不正确,那 么该循环就会继续。但是,如果超过了三次,那么无论如何循环都会结束。
sd 成绩转换 : Contrl : Transcript : Grade
1 : getgrade(studentID)
alt [grade>=90] 2 : setgrade(studentID,A)
[79<grade<90] 3 : setgrade(studentID,B)
[69<grade<80]
旅店预订系统
16
旅店预订系统中识别分析类
-17-
-18-
绘制VOPC类图
-19-
实例-旅游申请系统中的分析类
-20-
进行职责分配
-21-
绘制VOPC类图
-22-
利用分析操作表示职责
-23-
为分-25-
旅游申请系统实体类类图
-26-
3. 顺序图中的结构化控制
序列性的消息能很好地说明单一的线性的序列,但是我们 通常需要展示条件和循环。有时候我们想要展示多个序列的 并行执行。在顺序图中用结构化控制操作符能展示这种高层 控制。
为了表示顺序图的边界,可以把顺序图用一个封闭的矩形 包围起来,并在矩形的左上角放一个小五边形。在这个小五 边形内先写上sd,再后面写出图的名字。对每个子顺序图加上 一个矩形区域作为外框,再在其左上角放一个小五边形,在 这个小五边形内写上用来表明控制操作符的类型的文字。
交互作用图
(顺序图和协作图)
1 交互图概述
交互图(interaction diagram)是用来描述对象之间以及对 象与参与者之间的动态协作关系以及协作过程中行为 次序的图形文档. 交互图通常用于描述一个用例的行为, 显示该用例中所 涉及的对象及对象之间消息传递情况. 交互图包括: (1)顺序图(sequence diagram), 描述对象按照时间顺序的 消息交换; (2)协作图(collaboration diagram), 描述系统成分如何协同 工作.