UML之活动图(Activity diagram)、状态图(Statechart diagram)

7 篇文章 0 订阅
系统建模,需要从系统的结构和行为两个方面来描述,其中系统的行为是通过状态图,活动图,序列图和协作图来描述的。
行为图包括活动图和状态图,是从动态角度描述
活动图是事件流程中涉及到的一系列活动
状态图指的是状态的变迁
一、活动图
1、什么是活动图
流程图常被用来建立算法模型,使用流程图可以表示一个算法的执行序列、过程、判定点、分支和循环。
活动图与流程图十分类似,不同之处在于它支持并行活动。
活动图的缺点:很难清楚地描述动作与对象之间的关系,没有交互图直接。

2、主要作用
描述一个操作的执行过程中所完成的工作或者动作。
描述对象内部的工作。
显示如何执行一组相关的动作,以及这些动作如何影响周围对象。
描述用例的执行。
处理多线程应用。
以下场合不使用活动图
显示对象之间的合作
显示对象在其生命周期内的运转情况。

3、基本要素
活动状态Action states
活动状态之间的转移transitions
判断decisions——一种表示判断决策的特殊活动
保证条件guard conditions——只有保证条件为真时转移才发生。
同步条synchronization bar——一种表示活动之间的同步的特殊活动
起点和终点——起点有且只有一个,终点可有一个或多个。

4、活动图的图符
起始状态Start State
终止状态End State
状态迁移State Transition
决策点Decision
同步条Synchronization Bar
泳道Swimlane:用于对活动图中的活动进行分组,用于描述对象之间的合作关系。
所谓泳道技术,是将活动用线分成一些纵向区域,这些纵向区域称为泳道。每个区域代表一个特定类,或者人,或者部门的责任区。泳道技术是活动图中引入的一种面向对象机制。可以提取类及分析各个对象之间的交互提供方便。


活动图举例

我画的机房收费的活动图(不对的请指正啊)

二、状态图
1、状态图:用来描述一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转移。

2、状态图的图符
状态
转移
起点
终点

3、状态机State machine
状态机是这样一种行为,它描述了一个对象或一个交互在生命期内响应事件所经历的状态序列。
单个类或一组类之间协作的行为可以用状态机来描述。
一个状态机涉及到一些其他元素,包括状态、转换(从一个状态到另一个状态的流)、事件(触发转换的)

4、状态State
状态是指在对象的生命期中满足某些条件、执行某些活动或等待某些事件时的一个条件或状态。
一个状态有以下几个部分:
1)名称name
2)进入协作和退出动作entry action/exit action
3)内部转换internal transition
4)子状态substate
5)延迟事件deferred event


5、转换Transition
一个转换是两个状态之间的一种关系,表示对象将在第一个状态中执行一定的动作,并在某个特定事件发生而某个特定的条件满足时进入第二个状态。
一个转换由5部分组成:
源状态source state
事件触发event trigger
监护条件guard condition
动作action
目标状态target state


6、状态图举例
电话机状态图


三、活动图和状态图的区别
状态图侧重从行为的结果来描述(状态), 状态图指的是状态的变迁
活动图侧重从行为的动作来描述(活动),活动图是事件流程中涉及到的一系列活动

在实际项目中,活动图并不是必须的。
一般在一下情况需要使用活动图:
描述一个并行的过程或者行为。
描述一个算法
描述一个跨越多个用例的活动。
状态图描述了一个具体对象的可能状态以及它们之间的转换。
                            
描述同一个行为的不同角度
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
UML(Unified Modeling Language)是一种用于面向对象软件系统建模的标准语言。在UML中,有五个主要的视和九种形,它们分别是: 五个主要视: 1. 用例视(Use Case View):用于描述系统的功能需求及其与用户之间的关系。 2. 设计视(Design View):用于描述系统的静态结构,包括类、对象、接口等。 3. 实现视(Implementation View):用于描述系统的实现细节和代码结构,包括包、组件、部署等。 4. 运行时视(Process View):用于描述系统的动态行为,包括活动状态机、时序等。 5. 部署视(Deployment View):用于描述系统的物理部署结构,包括节点、连接等。 九种形: 1. 用例(Use Case Diagram):用于描述系统的功能需求和用户之间的关系。 2. 类(Class Diagram):用于描述系统的静态结构,包括类、对象、接口等。 3. 对象(Object Diagram):用于描述类中某个具体对象的状态。 4. 顺序(Sequence Diagram):用于描述系统的动态行为,显示对象之间的消息交互顺序。 5. 协作(Collaboration Diagram):用于描述系统的动态行为,显示对象之间的消息交互关系。 6. 状态Statechart Diagram):用于描述系统的状态转换和状态行为。 7. 活动Activity Diagram):用于描述系统的业务流程和活动流程。 8. 组件(Component Diagram):用于描述系统的组件及其依赖关系。 9. 部署(Deployment Diagram):用于描述系统的物理部署结构,包括节点、连接等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值