uml建模-状态图和活动图
UML--实验4-图书管理系统活动图和状态图
U M L--实验4-图书管理系统活动图和状态图(总4页)
本页仅作为文档封面,使用时可以删除
This document is for reference only-rar21year.March
实验4 状态图和活动图
实验目的
1.熟悉状态图和活动图的基本功能和使用方法。
2.掌握如何使用建模工具绘制状态图和活动图方法。
实验学时
4学时,必做。
实验内容
(1)分析图书管理系统中的书和借书证的状态,画出它们的状态图;
(2)分析管理员的活动状态,画出管理员的活动图。
实验步骤
1.分析
在图书管理系统中,分析书的状态如下:
1.可借
2.被借
3.被预约
4.删除
借书证的状态如下:
1.可用
2.不可用
3.删除
管理员的活动如下:
1.处理还书
2.处理借书
3.处理罚款
2.绘图步骤:
下面介绍在Rose中创建类和它们之间关系的过程:
书和借书证的状态图:
(1)、新建状态图
(2)、画出书的状态图
(3)、画出借书证的状态图
管理员活动图
(1)新建活动图
(2)
进入图书管理系统输入图书条
形码
找到此书籍输入借阅者
信息验证
进行验证借阅
者信息
不正确
添加借书信
息
正确。
uml报告三 状态图与活动图
天津理工大学
计算机与通信工程学院
实验报告
2013 至2014 学年第二学期
事件流的描述,可在活动图中绘制如下图。
其中,当点击点击
点击图标然后在
Step 8:保存结果
【扩展练习】
练习一:对选课系统中的课程类(对象)(Course)的状态变化过程如下:课程对象被
创建,添加到数据库中。
管理员可以删除、修改课程信息,在某个学期,开设该课程,如果选修人数超过指定人数,就不再允许学生选这门课。
学期结束,课程的状态终止。
根据以上描述,绘制课程类(Course)的状态图。
附录(可包括源程序清单或其它说明)
心得体会
通过这次实验,我明白了不是所用的类都需要画状态图,有明确意义的状态,在不同状态下有不同的类才需要画状态图。
而活动图可以用来描述事物或对象的活动变化流程。
UML基础与Rose建模案例(第3版)第7章 状态图和活动图
UML的活动图中包含的图形元素有动作状态、活动状态、 动作流、分支与合并、分叉与汇合、泳道和对象流等。
UML的活动图中包含的图形元素有动作状态、活动状态、动作流、分支与 合并、分叉与汇合、泳道和对象流等。
动作状态表示状态的入口动作。入口动作是在状态被激活的时候执行的动作, 在活动状态机中,动作状态所对应的动作就是此状态的入口动作。动作状态 有如下特点:
在使用状态图对系统反映型对象建模时,可以参 照以下步骤进行:
1. 识别一个要对其生命周期进行描述的参与行为 的类;
2. 对状态建模,即确定对象可能存在的状态; 3. 对事件建模,即确定对象可能存在的事件; 4. 对动作建模,即确定当转变被激活时,相应被
执行的动作; 5. 对建模结果进行精化和细化。
泳道将活动图的活动状态分组, 每一组表示负责那些活动的业务 组织。在活动图里泳道区分了活 动的不同职责,在泳道活动图中, 每一个活动都只能明确的属于一 个泳道。从语义上,泳道可以被 理解为一个模型包。 在UML中,泳道是活动图中的一 些垂直展现,把它的邻居隔开, 泳道之间可以有转换。
活动图一般是对系统进行需求分 析,描述系统的动态行为,这些 工作处于软件开发的早期阶段。 当软件开发进入建造期后,就需 要考虑动态的行为实现。这时, 就可以在活动图中使用对象流。 在UML中,使用矩形表示对象, 矩形内是该对象的名称,名称下 面的方括号中命名此对象的状态, 还可以在对象名的下面加一个分 隔栏表示对象的属性值。对象和 动作之间使用带箭头的虚线连接 带箭头的虚线表示对象流。
状态图通过对对象的状态以及状态间的转换建模来展现系 统动态行为。
转换是状态间的关联。它们用于对一个实体的不同状态间 的关系建模。当某实体在第一个状态中执行一定的动作, 并在某个特定事情发生并且某个特定的条件满足时进入下 一个状态。在UML里,转换由5个部分组成,它们分别是: ➢ 源状态、 ➢ 目标状态、 ➢ 触发事件、 ➢ 监护条件 ➢ 动作
UML中的活动图和状态图的区别与实际应用案例解析
UML中的活动图和状态图的区别与实际应用案例解析UML(Unified Modeling Language)是一种用于软件系统建模的标准化语言,它提供了一套丰富的图形符号和规范,帮助开发人员更好地理解和设计软件系统。
在UML中,活动图和状态图是两种常用的图形表示方式,用于描述系统中的活动流程和对象状态。
本文将探讨这两种图形的区别,并通过实际应用案例来解析它们的具体应用。
活动图是一种用于描述系统中活动流程的图形表示方式。
它主要由活动(Action)、控制流(Control Flow)和决策节点(Decision Node)等元素组成。
活动图可以清晰地展示系统中的各种活动以及它们之间的关系和顺序。
活动图通常用于描述业务流程、系统交互和软件系统中的算法等。
例如,在一个在线购物系统中,我们可以使用活动图来描述用户选择商品、添加到购物车、填写订单信息、确认支付等流程。
通过活动图,我们可以更好地理解和设计系统中的各个步骤,从而提高系统的可靠性和可维护性。
与活动图相比,状态图主要用于描述系统中对象的状态和状态之间的转换。
状态图由状态(State)、转移(Transition)和事件(Event)等元素组成。
状态图可以清晰地展示对象在不同状态之间的转换和触发条件。
状态图通常用于描述系统中的状态机、对象的生命周期和系统中的并发操作等。
例如,在一个自动售货机系统中,我们可以使用状态图来描述售货机的工作状态,如待机状态、售货状态和故障状态等。
通过状态图,我们可以更好地理解和设计系统中对象的状态变化,从而提高系统的可靠性和性能。
活动图和状态图在应用上有一些区别。
活动图主要用于描述系统中的活动流程,强调活动之间的顺序和关系。
它更适合于描述系统中的业务流程和交互流程等。
而状态图主要用于描述系统中对象的状态和状态之间的转换,强调对象状态的变化和触发条件。
它更适合于描述系统中的状态机和对象的行为。
下面通过一个实际应用案例来进一步解析活动图和状态图的具体应用。
面向对象分析与设计课件第7章 状态图与活动图建模
7.1 状态图的构成元素
统一建模语言中,状态图主要由状态和迁移两大类模型元素组成。对于图中 的每个状态,还定义了状态图主体对象在该状态下需要完成的各个动作及其触发 原因或机制。对于每个迁移,状态图还定义了迁移的触发事件、迁移条件以及迁 移时所要完成的动作。
状态图还对状态进行了多种分类,同时也为这些分类提供了必要的支持。如 把状态按照时间顺序分为初态、终态和中间态。按照状态的层次结构划分为简单 状态、复合状态和子状态。对于子状态,还可以根据它们是否参与了并发活动而 划分为串行子状态和并发子状态。另外,为简单地表达某种复杂语义,状态图中 还定义了历史子状态等这样的特殊模型元素。为了表示不同状态与其行为之间的 关系,UML还为每个状态和迁移定义了若干种相关的动作。
状态名可以是任何一个满足UML命名规则的字符串,其内容 可以由用户指定。
每个动作中,则包含了触发动作的事件、事件参数、守卫 条件以及伴发的动作序列。
7.1.1 状态
所有这些动作可分成入口动作(on Entry)、出口动作(On Exit)、 事件动作(On Event)和动作(Do)等四种类型。
其中,入口动作(on Entry)和出口动作(On Exit)分别指对象在 进入和离开当前状态时需要完成的动作。
7.1.2 转换与事件
例如,在Java语言中,事件处理机制的主要内容如下: 1)事件:一种用于封装事件属性(事件相关信息)的对象,其内容还应 包括为事件响应者提供的服务。 2)事件源:即产生事件的对象。当事件发生时,它负责创建事件信号并 调用事件激活程序,向事件订阅者们发出事件信号(事件对象)。 3)事件响应者:需要对事件做出相应的对象。一个事件可以有多个事件 响应者。
对于任何对象来说,对象的状态取决于它的各种行为不断积累所 产生的结果。在任何给定的时间点,对象的当前状态就包括它所具有 的所有特性、所处的具体情形、满足的条件以及其属性的当前值。
图书管理系统状态图与活动图(UML)
学号 **********
统一建模语言UML B
实验报告
实验4 状态图和活动图
学生姓名黄源
专业、班级14软件(2)班
指导教师高天迎
成绩
计算机与信息工程学院
年月日
一、实验目的
在熟悉状态、活动概念与应用的基础上,掌握状态图和活动图的建立。
1.理解什么状态和状态图。
2.掌握状态图的建立。
3.掌握活动图的建立。
二、实验内容
1.建立图书管理系统的状态图。
2.建立图书管理系统的活动图。
三、实验思想
1.分析:根据图书管理系统的需求分析和用例模型,对系统中的用例进行动态建模。
2.在Rational Rose工具中绘制状态图和活动图。
四、实验结果
1.状态图:
(1)登陆
(2)增添新书
(3)借阅者
2.活动图
(1)借阅者(2)图书管理员
(3)系统管理员管理借阅者信息(4)系统管理员维护图书信息
五、实验心得
这次实验学习的是状态图和活动图,感觉这次实验和前面实验相比较要容易一些,这些图按顺序来的,感觉会和我们传统的思维模式比较吻合,用心去绘制就很容易画出来。
UML建模之活动图介绍(Activity Diagram)
一、活动图的组成元素Activity Diagram Element......................................1、活动状态图(Activity)2、动作状态(Actions)3、动作状态约束(Action Constraints)4、动作流(Control Flow)5、开始节点(Initial Node)6、终止节点(Final Node)7、对象(Objects)8、数据存储对象(DataStore)9、对象流(Object Flows)10、分支与合并(Decision and Merge Nodes)11、分叉与汇合(Fork and Join Nodes)12、异常处理(Exception Handler)13、活动中断区域(Interruptible Activity Region)14、泳道(Partition)二、活动图案例分析.............................................................................三、总结活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流。
活动图在本质上是一种流程图。
活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程。
一、活动图的组成元素Activity Diagram Element1、活动状态图(Activity)活动状态用于表达状态机中的非原子的运行,其特点如下:(1)、活动状态可以分解成其他子活动或者动作状态。
(2)、活动状态的内部活动可以用另一个活动图来表示。
(3)、和动作状态不同,活动状态可以有入口动作和出口动作,也可以有内部转移。
(4)、动作状态是活动状态的一个特例,如果某个活动状态只包括一个动作,那么它就是一个动作状态。
UML中活动状态和动作状态的图标相同,但是活动状态可以在图标中给出入口动作和出口动作等信息。
UML状态图和活动图
状态图的建模方法(续)
因此,Grade对象的状态图具有如下描述保存功 能的开始状态和结束状态:
Information Entered 开始状态。 Destroy 结束状态。
状态图的建模方法(续)
3.确定与每一个实体相关的事件
事件用来最终完成实体的功能。要想确定实体的事件,需要 知道事件的任务。对于Grade对象,它的任务是保存分数。进一 步了解事件的任务之后,就可以确定Grade对象的事件包括接受 数据、成功地保存数据和不成功地保存数据。
活动图的符号
如果一个处理在其他处理之前到达了联结,它将会等待, 直到所有的处理都准备好之后才会向联结传递控制权。
活动图的符号
左例演示了分叉中的一 个处理时间长于另一个的 情况。当然,这完全是由 每一个处理中的活动数假 定的。由于我们不知道每 一个活动有多长,因此不 能保证哪一个首先完成。 为此,我们在让用户访问 应用程序之前插入了一个 联结,以便确保两个独立 的处理彼此连接在一起。
在确定活动名称时应该恰当地命名,选择准确描述所发生 动作的几个词。例如,Save File或者 Create New Document 就是比较恰当的活动名称,而Run或者Update 对读者而言是不 完整的名称。
活动图的符号
2. 操作
可以用操作在活动中增加更多详细的步骤。操作是活动中执 行的小步骤。在下列情况下发生: • 进入活动时发生的操作,标有entry字样。 • 活动进行时发生的操作,直到离开活动,标有do字样。 • 离开活动时发生的操作,标有exit字样。 • 特定事件发生时的操作,标有event字样和事件名。
状态图的动作和事件
条件用来描述状态转移的前提。事件用来指示什么触发了转 移,动作用来说明当转移发生时会产生什么情况。事件、条件 和动作是转移的三个选项,其定义格式见下图所示。
解析uml活动图和状态图的作用和区别
本文和大家重点讨论一下UML活动图和状态图的概念,这两种图都有各自的特点和作用,那么他们之间有什么区别和联系呢,请看本文详细介绍。
UML活动图和状态图一、UML活动图:◆流程图常被用来建立算法模型◆UML活动图与流程图类似,不同在于它支持并行活动.◆缺点:不能清楚的表示二、作用:1、描述一个操作的执行过程中所完成的工作或者动作2、描述对象内部的工作3、描述用例的执行4、处理多线程5、显示如何执行一组相关的动作,以及这些动作如何影响周围对象三、以下情况不用UML活动图1、显示对象之间的合作2、显示对象在其生命周期内的运转情况。
这两点是通过序列图和协作图完成的。
四、UML活动图的基本要素:◆活动状态◆活动状态之间的转移(箭头)◆判断(决策点)◆保证条件◆同步条:活动之间的同步◆起点和终点--起点有且只有一个,终点可以有n个。
五、泳道:用于对UML活动图中的活动进行分组,用于描述对象之间的合作关系。
----所谓泳道技术,就是将活动用线分成一些纵向区域,这些纵向区域称为泳道。
UML状态图一、状态图:◆描述一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转换。
例如呼叫中心系统。
◆状态图符--状态:矩形(四角圆弧)--转移--起点--终点1、状态机:◆一种行为:描述了一个对象或一个交互在生命周期内响应事件所经历的状态序列。
◆单个类或者一组类之间协作的行为可以用状态机来描述◆一个状态机涉及到一些其他元素,包括状态、转换、事件2、状态:在对象的生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件活状况。
1)名称2)进入协作和退出动作3)内部转换4)子状态5)延迟事件3、转换:两个状态之间的一种关系,表示对象将在第一个状态中执行一定的动作并在某个特定事件发生而某个特定条件满足时进入第二个状态。
1)源状态2)事件触发3)监护条件4)动作5)目标状态例子:电话机状态图二、UML活动图与状态图的区别:状态:行为的结果活动:行为的动作在uml中图符不一样。
uml报告三-状态图与活动图
天津理工大学
计算机与通信工程学院
实验报告
2013 至2014 学年第二学期
事件流的描述,可在活动图中绘制如下图。
其中,当点击点击
点击图标然后在
Step 8:保存结果
【扩展练习】
练习一:对选课系统中的课程类(对象)(Course)的状态变化过程如下:课程对象被
创建,添加到数据库中。
管理员可以删除、修改课程信息,在某个学期,开设该课程,如果选修人数超过指定人数,就不再允许学生选这门课。
学期结束,课程的状态终止。
根据以上描述,绘制课程类(Course)的状态图。
附录(可包括源程序清单或其它说明)心得体会。
UML各种图例—用例图、类图、状态图、包图、协作图、顺序图
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 U ML 系统建模基础教程 建模实例教程
第10章 状态图与活动图
UML U ML 系统建模基础教程 建模实例教程
第10章 状态图与活动图
10.2.2 状态图组成
2. 状态 状态是指在对象的生命期中的一个条件或状况, 在此期间对象将满足某些条件、执行某些活动或等待 某些事件。
UML U ML 系统建模基础教程 建模实例教程
第10章 状态图与活动图
10.2.2 状态图组成
UML U ML 系统建模基础教程 建模实例教程
第10章 状态图与活动图
10.1 动态建模概述
5.状态图做什么?
状态图(State Diagram)主要用来描述对象、子系统、系 统的生命周期。通过状态图可以表现系统中一个对象所具有的 各种状态和这个对象从一种状态到另一种状态的转换(迁移), 以及影响对象这些状态的事件(如收到消息、时间已到、报错、 条件为真)等。它主要描述某个对象从一个状态到另一个状态 变化迁移的控制流。
第10章 状态图与活动图
10.2.2 状态图组成
理解状态的特征: (1)进入/退出动作:对象本身的一个操作。如果在电梯里是一个 状态的话,那员工进电梯和出电梯就是状态“在电梯里”的进 入/退出动作。 (2)内部转换:例如员工在去等电梯的时候发现钥匙没带,此时 我们不用在“等电梯”以后,而是在“准备回家”的状态中就 去拿钥匙了。虽然整体的状态没有发生变化,但对于对象本身 来说,前后是不一样的,一个是有钥匙,一个是没有钥匙。 (3)子状态:如果需要进一步描述员工对象在电梯里聊天、打电 话等状态时,这些状态就是该对象的“在电梯里”状态的子状 态。 (4)延迟事件:现在不立即产生的事件,该事件是在一段时间以 后才产生的事件。员工必须等待到达17:50的时候,才能下班。
第7章 状态图和活动图
图7.1 图书馆书籍的状态图
一个图书对象从它的起始点 开始,首先是“新书”状态 (new book),然后是“可 以借阅”(available)的状 态,如果有读者将书借走, 则该书的状态为“已借出” 状态(borrowed),如果图 书被归还图书馆,图书的状 态又变为“可以借阅”状态 。图书馆如果放弃该图书对 象的收藏,则图书对象处于 “删除”状态(delete),最 后到达“终止”状态。
7.2.1 活动图概述
在用例模型中,可以利用文本来描述用例的业务流程, 但如果业务流程较为复杂的话,则可能会难以阅读和 理解,这时需要用更加容易理解的方式(图形)来描 述业务过程的工作流,在UML中将这类描述活动流程 的图形称为活动图(Activity Diagram)。 活动图被设计用于简化描述一个过程或者操作的工作步 骤。活动用圆角矩形表示,接近椭圆。一个活动中的 处理一旦完成,则自动引起下一个活动的发生。箭头 表示从一个活动转移到下一个活动。和状态图类似, 活动图中的起点用一个实心圆表示,终点用一个实心 圆外加一个圆圈表示。在一个活动图中,只有一个起 始状态,可以有零个或多个终止状态。
第7章 状态图和活动图
7.1状态图
状态图,用于UML中建立动态模型,主要描述系
统随时间变化的行为,这些行为是用从静态视图中抽 取的系统的瞬间值的变化来描述的。在对象的生命期 建模中,状态图显示了一个状态机,展示的是单个对 象内从状态到状态的控制流。状态图通过对类的对象
的生存周期建立模型来描述对象随时间变化的动态行
7.2.7分叉和汇合
对象在运行时可能会存在两个或多个并发运行的控制流, 为了对并发的控制流建模,UML中引入了分叉与汇合的概 念。分叉用于将动作流分为两个或多个并发运行的分支, 而汇合则用于同步这些并发分支,以达到共同完成一项事 务的目的。 在UML中使用分叉和汇合表示并行发生的事件流。分叉表 示把一个单独的控制流分成两个或多个并发的控制流。一 个分叉可以有一个进入转移和两个或多个输出转移,每一 个转移表示一个独立的控制流。 汇合表示两个或多个并发 控制流的同步发生,一个汇合可以有两个或多个进入转移 和一个输出转移。分叉和汇合应该是平衡的。分叉和汇合 在图形上都使用同步条来表示,同步条通常用一条粗的水 平线表示。
UML的九种模型图
UML的九种模型图本⽂转⾃,仅供学习交流!⼀、作为⼀种建模语⾔,UML的定义包括UML语义和UML表⽰法两个部分。
UML语义:描述基于UML的精确元模型定义。
UML表⽰法:定义UML符号的表⽰法,为开发者或开发⼯具使⽤这些图形符号和⽂本语法为系统建模提供了标准。
这些图形符号和⽂字所表达的是应⽤级的模型,在语义上它是UML元模型的实例。
⼆、标准建模语⾔UML可以由下列5类图来定义。
⽤例图:从⽤户⾓度描述系统功能,并指出各功能的操作者。
静态图:包括类图和对象图。
类图描述系统中类的静态结构,不仅定义系统中的类,表⽰类之间的联系,如关联、依赖、聚合等,也包括类的属性和操作,类图描述的是⼀种静态关系,在系统的整个⽣命周期都是有效的。
对象图是类图的实例,⼏乎使⽤与类图完全相同的标识。
⼀个对象图是类图的⼀个实例。
由于对象存在⽣命周期,因此对象图只能在系统某⼀时间段存在。
⾏为图:描述系统的动态模型和组成对象间的交互关系,包括状态图和活动图。
状态图描述类的对象所有可能的状态以及事件发⽣时状态的转移条件,状态图是对类图的补充,活动图描述满⾜⽤例要求所要进⾏的活动以及活动间的约束关系,有利于识别并进⾏活动。
交互图:描述对象间的交互关系,包括时序图和协作图。
时序图显⽰对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显⽰对象之间的交互;协作图描述对象间的协作关系,协作图跟时序图相似,显⽰对象间的动态合作关系。
除显⽰信息交换外,协作图还显⽰对象以及它们之间的关系。
如果强调时间和顺序,则使⽤时序图;如果强调上下级关系,则选择协作图。
实现图:包括组件图和部署图。
组件图描述代码部件的物理结构及各部件之间的依赖关系,组件图有助于分析和理解部件之间的相互影响程度;部署图定义系统中软硬件的物理体系结构。
采⽤UML来设计系统时,第⼀步是描述需求;第⼆步根据需求建⽴系统的静态模型,以构造系统的结构;第三步是描述系统的⾏为。
其中在第⼀步与第⼆步中所建⽴的模型都是静态的,包括⽤例图、类图、对象图、组件图和部署图等5种图形,是标准建模语⾔UML的静态建模机制。
状态图、活动图实验报告
UML建模课程实验三、UML状态图、活动图模型的设计班级:信息0702 组别:指导老师:徐凯波姓名:王姗学号:2007030331205一、实验要求:掌握利用UML建模工具建立状态图和活动图的方法。
二、实验内容:利用UML建模工具设计状态图和活动图三、实验环境:Windows 2000 Professional以上环境、Rational Rose2003、Sybase Power Designer 10四、操作步骤:(一)状态图(二)活动图五、遇到的问题和解决方法:状态图:学生登陆选课系统进行选课,每个学生每个学期最多只能选3门课,如果学生选课没有达到3门课,就可以进行选课,但学生选课如果达到了3门,则选课失败,不能进行选课。
活动图:管理员再添加课程时,根据本学期实际情况设定课程人数的下限于上限,统计每门课程的选课人数,如果本门课程低于设定的下限,则删除此课程,如果选课人数高于设定的上限,则此门课可则不能再选。
在画活动图的时候,我犯了一个致命的错误,就是没有画泳道,泳道是老师在课堂上反复强调的内容,但在实际操作中,依然这方面出错,这说明老师课上反复强调的东西是多么的重要,还有就是一定要将课堂与实际相联系,才能将知识真正的掌握。
六、实验心得和体会:通过这学期的UML课程,我最大的感触解释做任何事情都要端正态度,在刚上徐老师课的时候,总觉得许老师要求的过严,后来才知道,老师的要求是有根据的,许老师是希望我们通过这一学期的课程真正的掌握UML的知识,学有所用,在画活动图的时候,我已经习惯了先自己动脑去想,真是做不下去的时候,才向老师、同学询问,通过仔细全过程的认真思考,我掌握了关于UML一些制图的方法,可是只掌握这些还是远远不够的,徐老师说够,RationalRose软件还能做许多与编程有关的东西,我们所学习的只是一些皮毛而已,我会继续学习这个软件的,不会的难点,还会想徐老师请教!。
UML各种图总结-精华
UML各种图总结-精华UML(UnifiedModelingLanguage)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。
下面将对UML的九种图+包图的基本概念进行介绍以及各个图的使用场景。
一、基本概念如下图所示,UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图,又可以静动分为静态视图和动态视图。
静态图分为:用例图,类图,对象图,包图,构件图,部署图。
动态图分为:状态图,活动图,协作图,序列图。
1、用例图(UseCaseDiagrams):用例图主要回答了两个问题:1、是谁用软件。
2、软件的功能。
从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。
2、类图(ClassDiagrams):用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。
在UML类图中,常见的有以下几种关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。
各种关系的强弱顺序:泛化=实现>组合>聚合>关联>依赖2.1.泛化【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何继承父类的所有特征和行为。
例如:老虎是动物的一种,即有老虎的特性也有动物的共性。
2.2.实现【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现。
2.3.关联【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。
双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
【代码体现】:成员变量2.4.聚合【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。
UML 10 种图的总结
UML 2.0共有10种图,分别为表示系统静态结构的静态模型(包括类图、组合结构图、部署图),以及表示系统动态结构的动态模型(包括用例图、序列图、对象图、协作图、状态图、活动图、组件图),它们各用以表现不同的视图,如表1-1所示。
用例之间也可以存在包含、扩展和泛化等关系:
(1)包含关系:用例可以简单地包含其他用例具有的行为,并把它所包含的用例行为做为自身行为的一部分,这被称作包含关系。
(2)扩展关系:扩展关系是从扩展用例到基本用例的关系,它说明为扩展用例定义的行为如何插入到为基本用例定义的行为中。
它是以隐含形式插入的,也就是说,扩展用例并不在基本用例中显示。
在以下几种情况下,可使用扩展用例:
a.表明用例的某一部分是可选的系统行为(这样,您就可以将模型中的可选行为和必选行为分开);
b.表明只在特定条件(如例外条件)下才执行的分支流;
c.表明可能有一组行为段,其中的一个或多个段可以在基本用例中的扩展点处插入。
所插入的行为段和插入的顺序取决于在执行基本用例时与主角进行的交互。
(3)泛化关系:用例可以被特别列举为一个或多个子用例,这被称做用例泛化。
当父用例能够被使用时,任何子用例也可以被使用。
如在图2.4中,订票是电话订票和网上订票的抽象。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
l 使用状态图的最常见的是对反应型对象、尤其是对类、 用例或整个系统的实例的行为建模。反应型对象是指 这个对象可能处于的稳定状态、从一个状态到另一个 状态之间的转换所需的触发事件,以及每个状态改变 时发生的动作。反应型对象具有如下的特点:
活动图的符号集与状态图中使用的符号集类似。像状态图 一样,活动图也从一个连接到初始活动的实心圆开始。 活动是通过一个圆角矩形(活动的名称包含在其内)来 表示的。活动可以通过转换线段连接到其他活动,或者 连接到判断点,这些判断点连接到由判断点的条件所保 护的不同活动。结束过程的活动连接到一个终止点(就 像在状态图中一样)。活动图中的基本要素包括状态、 转移、分支、分叉和汇合、泳道、对象流等。
l ⑹把动作附加到这些转换上,并且附加到这些状态上; l ⑺考虑通过使用子状态、分支、汇合和历史状态,来简化状态图; l ⑻核实所有的状态都是在事件的某种组合下可达的; l ⑼核实不存在死角状态,即不存在那种不能转换出来的状态; l ⑽通过手工或通过使用工具跟踪状态机,核对所期望的事件序列以及它
们的响应。
::new book 借书
::availห้องสมุดไป่ตู้ble 还书
::delete
一个图书对象从它的起始点 开始,首先是“新书”状态
(new book),然后是“可 以借阅”(available)的状 ::borrowed 态,如果有读者将书借走, 则该书的状态为“已借出”
状态(borrowed),如果图 书被归还图书馆,图书的状 态又变为“可以借阅”状态 。图书馆如果放弃该图书对 象的收藏,则图书对象处于
“删除”状态(delete),最 后到达“终止”状态。
l 状态之间的过渡事件(event),对应对象的操作。事 件有可能在特定的条件下发生,在UML中这样的条件 称为警戒条件(guard condition)。发生事件时的处理 称为动作(action)。从一个状态到另一个状态之间的 连线称为转移(transitions)。状态图通常包含如下内 容。
l ⑴响应外部事件,即来自对象语境外的事件; l ⑵具有清晰的生命期,可以被建模为状态、迁徙和事
件的演化; l ⑶当前行为和过去行为存在着依赖关系; l ⑷在对事件做出反应后,它又变回空闲状态,等待下
一个事件。
l 使用状态图对系统反应型对象建模时,应遵循如下策略: l ⑴选择状态机的语境(即建模对象),不管它是类、用例或是整个系统; l ⑵选择这个对象的初态和终态。为了指导模型的剩余部分,可能要分别
活动
l 动作状态表示的是不可分割的原子动作,而活动状态则不 同,它表示的是可以分割的动作。特点是:它可以被分解 成其他子活动或动作状态,它能够被中断,占有有限的时 间。活动状态可以理解为一个组合,它的控制流由其他活 动状态或动作状态组成。
l 在UML中,动作状态和活动状态的图标没有什么区别,都 是圆端的方框。只是活动状态可以有附加的部分,如可以 指定入口动作、出口动作、动作状态以及内嵌状态机。
源开关“turnOn”是其触 发事件,进行“烧水”是 状态转换的动作。
l 状态图用于对系统的动态方面建模。动态方面是指出系统 体系结构中任一对象按事件排序的行为,这些对象可以是 类、接口、组件和节点。当使用状态图对系统建模时,可 以在类、用例、子系统或整个系统的语境中使用状态图, 对类、用例和系统实例的行为建模。
l ⑴ 状态 l 状态定义对象在其生命周期中的条件或状况。 l ⑵ 转换 l 对象的状态之间的转移叫转换,它包括事件和动作。
一个对象的状态可能包含子状态或其它一些更加详细的内容。 具体的有以下五个部分组成:名称、 进入/退出动作、 内 部转换、子状态和延迟事件。
⑴名称(name) ⑵进入/退出动作(entry/exit action) ⑶内部转换(Internal Transition) ⑷子状态(sub state) ⑸延迟事件(Deferred Event)
首先,确定主要的状态,在这里电 话开机时,处于空闲状态,当用户 拨号呼叫某人时,话机进入拨号状 态。如果呼叫成功则电话接通,电 话处于通话状态,如果呼叫不成功 ,拨号失败,这时话机重新回到空 闲状态。话机在空闲状态被呼叫, 进入响铃状态。如果用户摘机接听 电话,话机处于通话状态。完成通 话挂机后话机回到空闲状态。如果 用户没有摘机则话机处于继续响铃 状态。如果用户拒绝来电,话机回 到空闲状态。因此,拨打电话的过
l 活动图表示在处理某个活动时,两个或者更多类对象之间的过程 控制流。它用来描述采取何种动作、做什么(对象状态改变)、 何时发生(动作序列)以及何处发生(泳道)。活动图可用于在 业务单元的级别上对更高级别的业务过程进行建模,或者对低级 别的内部类操作进行建模。活动图可以用作以下目的:
l ⑴描述一个操作执行过程中所完成的工作(动作),这是活动图 最常见的用途。
UML状态图中转换是两个状态之间的一种关系,表示对象将 在源状态(Source State)或当前状态中执行一定的动作, 并在某个特定事件发生而且某个特定的警界条件满足时进 入目标状态。
转换是由如下5部分组成: ⑴源状态
⑵触发事件
⑷动作
⑸目标状态
在用电磁炉烧开水的 过程中,水的状态由源状
态“Off”(不沸腾)转换 为目标状态的“On”(沸 腾)时,水壶中“有水” 就是其监护条件,开启电
图7.16显示了分叉和汇合的图示。
l 泳道将活动图中的活动划分为若干组,并把每一组指定给 负责这组活动的业务组织,即对象。每一组表示一个特定 的类、人或部门,他们负责完成组内的活动。在活动图中, 泳道区分了负责活动的对象,它明确地表示了哪些活动是 由哪些对象进行的。在包含泳道的活动图中,每个活动只 能明确地属于一个泳道。泳道用于表示实际执行活动的对 象。
l 对象的动作状态是活动图中最小单位的构造块,表示原子 动作。动作状态有三个特性:
l ⑴原子性:即不能被分解成更小的部分; l ⑵不可中断性:即一旦开始就必须运行到结束; l ⑶瞬时性:即动作状态所占用的处理时间通常是极短的,
甚至是可以被忽略的动作状态使用带圆端的方框表示。如 图7.13符号所示。 l 动作状态如图示
l 对象在运行时可能会存在两个或多个并发运行的控制流, 为了对并发的控制流建模,UML中引入了分叉与汇合的概 念。分叉用于将动作流分为两个或多个并发运行的分支, 而汇合则用于同步这些并发分支,以达到共同完成一项事 务的目的。
l 在UML中使用分叉和汇合表示并行发生的事件流。分叉表 示把一个单独的控制流分成两个或多个并发的控制流。一 个分叉可以有一个进入转移和两个或多个输出转移,每一 个转移表示一个独立的控制流。 汇合表示两个或多个并发 控制流的同步发生,一个汇合可以有两个或多个进入转移 和一个输出转移。分叉和汇合应该是平衡的。分叉和汇合 在图形上都使用同步条来表示,同步条通常用一条粗的水 平线表示。
l 对象流中的对象有以下特点: l ⑴一个对象可以由多个动作操作。 l ⑵一个动作输出的对象可以作为另一个动作输入的对象。 l ⑶在活动图中,同一个对象可以多次出现,它的每一次出
现表明该对象正处于对象生存期的不同时间点。
l 对象流用带有箭头的虚线表示。如果箭头是从动作状 态出发指向对象,则表示动作对对象施加了一定的影 响。施加的影响包括创建、修改和撤销等。如果箭头 从对象指向动作状态,则表示该动作使用对象流所指 向的对象。状态图中的对象用矩形表示,矩形内是该 对象的名称,名称下的方括号表明对象此时的状态。
在用例模型中,可以利用文本来描述用例的业务流程, 但如果业务流程较为复杂的话,则可能会难以阅读和 理解,这时需要用更加容易理解的方式(图形)来描 述业务过程的工作流,在UML中将这类描述活动流程 的图形称为活动图(Activity Diagram)。
活动图被设计用于简化描述一个过程或者操作的工作步 骤。活动用圆角矩形表示,接近椭圆。一个活动中的 处理一旦完成,则自动引起下一个活动的发生。箭头 表示从一个活动转移到下一个活动。和状态图类似, 活动图中的起点用一个实心圆表示,终点用一个实心 圆外加一个圆圈表示。在一个活动图中,只有一个起 始状态,可以有零个或多个终止状态。
l 泳道是用垂直实线绘出,垂直线分隔的区域就是泳道。在 泳道的上方可以给出泳道的名字或对象的名字,该对象负 责泳道内的全部活动。泳道没有顺序,不同泳道中的活动 既可以顺序进行也可以并发进行,动作流和对象流允许穿 越分隔线。
l 用活动图描述某个对象时,可以把所涉及的对象放置在活 动图上,并用一个依赖将这些对象连接到对它们进行创建、 撤销和修改的活动转移上。这种包括依赖关系和对象的应 用被称为对象流。对象流是动作和对象间的关联。对象流 可用于对下列关系建模:动作状态对对象的使用以及动作 状态对对象的影响。
转移也称转换是两个状态间的一种关系,表示对象将在当前 状态中执行动作,并在某个特定事件发生或某个特定的条 件满足时进入后继状态。在UML中用一条简单的带箭头的 直线表示一个转移。箭头上可以带有监护条件表达式。
分支用于描述基于某个条件的可选择路径。一个分支可以有 一个进入转移和两个或多个输出转移。在每条输出转移上 都有监护条件表达式保护,当且仅当监护条件表达式为真 时,该输出路径才有效。在所有输出转移中,其监护条件 不能重叠,而且它们应该覆盖所有的可能性。UML活动图 中的分支用菱形表示。
程可以总结出4个状态,即空闲、 拨号、通话和响铃。
活动图,用于UML中建立动态模型,主要描述 系统随时间变化的行为,这些行为是用从静态视图 中抽取的系统的瞬间值的变化来描述的。在对象的 生命期建模中,活动图是一种特殊形式的状态机, 用于对计算机流程和工作流程建模。活动图从本质 上说是一个流程图,展现跨过不同的对象从活动到 活动的控制流。与传统的流程图不同的是,活动图 能够展示并发和控制分支。