热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【UML总结】——活动图&状态图

活动图活动图是阐明了业务用例实现的工作流程。就是某一个业务是通过哪些流程完成的,就是用活动图来表现出来。1.活动图的几个基本元素1)活动状态actionstates活动状态表示在

活动图


    活动图是阐明了业务用例实现的工作流程。就是某一个业务是通过哪些流程完成的,就是用活动图来表现出来。


1.活动图的几个基本元素


1) 活动状态 action states

    活动状态表示在工作流程中执行某个活动或步骤


2)活动状态之间的转移 transitions

    表示各种活动状态的先后顺序。



3)判断 decisions

    一种表示判断决策的特殊活动。



4)保证条件 guard conditions

    只有保证条件为真时转移才能发生


5)同步条 synchronization bar

    用于显示业务用例的工作流程中的并行线程



6)起点和终点

   起点有且只有一个,终点可以有一个或多个




2.泳道

    泳道用于对活动图中的活动进行分组,用于描述对象之间的合作关系

    所谓泳道技术,是将活动用线分成一些纵向区域,这些区域成为泳道。

    每个区域代表一个特定类,或者,或者部分的负责区

    泳道技术是活动图中引入的一种面向对象机制。为提取类及分析各个对象之间的交互提供方便。


3.活动图的作用

    1)描述一个操作的执行过程中所完成的工作或动作

    2)描述对象内部工作

    3)显示如何执行一组相关的动作,以及这些动作如何影响周围对象

    4)描述用例的执行

    5)处理多线程应用

4.以下场合不适用活动图

    1)显示对象之间的合作

    2)显示对象在其生命期内的运转情况

5.活动图的局限

    很难清楚的描述动作与对象之间的关系,没有交互图直接。



状态图

    状态图是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出的反应。

    通常我们创建一个状态图是为了研究类、角色、子系统或组件的复杂行为。


1.状态机 State machine

    描述了一个对象或一个交互在生命期内相应事件所经历的状态序列。

    单个类或一组类之间协作的行为可以用状态机来描述

    一个状态机涉及到一些其他元素,包括状态转换(从一个状态到另一个状态的流)、事件

2.状态

    状态是指在对象的生命期中满足某些条件、执行某些活动或等待某些事件时的一个条件或状况。

    一个状态通常由名称进入协作和退出动作内部转换子状态延迟事件五部分组成。

3.转换

    一个转换是两个状态之间的一种关系,表示对象将第一个状态中执行一定的动作,并在某个特定时间发生而某个特定的条件满足时进入第二状态。

    一个转换通常由源状态事件触发监护条件动作目标状态五部分组成

    源状态:即受转换影响的状态

    目标状态:当转换完成后对象的状态

    触发事件:用来为转换定义一个事件,包括调用、改变、信号、时间四类事件

    监护条件:布尔表达式,决定是否激活转换

    动作:转换激活时的操作


4.活动与延迟事件

    活动:当对象处于一个状态时,它一般是空闲的,在等待一个事件的发生。

但在某些时间,你可能希望描述个正在进行的活动。在处于一个状态的同时,对象做着某些工作,并一直继续到被某个事件中断

    延迟事件:延迟事件是一种特殊的事件,它是指该事件不会触发状态的转换,当对象处于该状态时事件不会丢失,但会被延迟执行。


活动图和状态图的区别

    活动图侧重从行为的动作来描述(活动)

    状态图侧重从行为的结果来描述(状态)


    在实际项目中,活动图并不是必须的。一般在以下情况下需要使用活动图

    1)描述一个并行过程或者行为

    2)描述一个算法

    3)描述一个跨越多个用例的活动

    装填图描述了一个具有对象的可能状态以及他们之间的转换。


推荐阅读
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • 预备知识可参考我整理的博客Windows编程之线程:https:www.cnblogs.comZhuSenlinp16662075.htmlWindows编程之线程同步:https ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • HashMap的相关问题及其底层数据结构和操作流程
    本文介绍了关于HashMap的相关问题,包括其底层数据结构、JDK1.7和JDK1.8的差异、红黑树的使用、扩容和树化的条件、退化为链表的情况、索引的计算方法、hashcode和hash()方法的作用、数组容量的选择、Put方法的流程以及并发问题下的操作。文章还提到了扩容死链和数据错乱的问题,并探讨了key的设计要求。对于对Java面试中的HashMap问题感兴趣的读者,本文将为您提供一些有用的技术和经验。 ... [详细]
  • 怀疑是每次都在新建文件,具体代码如下 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
author-avatar
X53TEDDYWON_314
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有