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

软件工程复习笔记活动图

活动图前言综述1.活动图的概念一.活动图的概念二.活动图的作用例存款例修改密码活动图三.活动图与交互图的区别四.活动图的组成


活动图

  • 前言
  • 综述
  • 1.活动图的概念
    • 一.活动图的概念
    • 二.活动图的作用
      • 例 存款
      • 例 修改密码活动图
    • 三.活动图与交互图的区别
    • 四.活动图的组成元素
  • 2.活动图的表示
    • 1、初始节点和终点
    • 2、活动节点
    • 3、转换
    • 4、分支与监护条件
    • 5、合并(merge)
    • 6、分岔(fork)和汇合(Join)
  • 3.活动图分类
    • 1 简单活动图
    • 2 标识泳道的活动图
    • 3 标识对象流的活动图
    • 4 标识信号的活动图
    • 5 标识扩展区的活动图
    • 6 嵌套活动图
  • 4.活动图的用途
    • 可对系统的工作流程建模,即对系统的业务过程建模。
    • 也可对具体的操作建模,用于描述计算过程的细节。
    • 活动图对表示并发行为很有用。
    • 例1:存款
    • 例2:修改密码的活动图
    • 例3:网购流程
  • 5. 构建活动图
  • 小结


前言

       copy自老师的PPT,不只有知识点,还有一些相关内容的介绍顺便复制进来了。 如有问题请多指教


综述


  • 活动图是对系统的动态行为建模的图之一。
  • 活动图是用于描述系统的工作流程和并发行为的技术。
  • 活动图”可通过一系列操作将业务流程或软件进程以工作流的形式显示出来。 这些操作可以由人、软件组件或计算机来执行。
  • 使用活动图可以描述多种类型的流程,具体示例如下:
    • 用户和您的系统之间的业务流程或工作流。
    • 某一用例中执行的步骤。
    • 软件协议,即允许在组件间进行的交互序列。
    • 软件算法。

1.活动图的概念


一.活动图的概念

       活动图是描述系统或业务的一序列活动构成的控制流,它描述了系统从一种活动转换到另一种活动的整个过程。


二.活动图的作用


  • 活动图常用来描述业务或软件系统的活动轨迹,描述了系统的活动控制流程。
  • 用活动图可以对业务过程、工作流进行建模;也可对具体的操作(用例实现)建模,用于描述计算过程的细节或进行建模。
  • 活动图对表示并发行为很有用。

例 存款

在这里插入图片描述


例 修改密码活动图

在这里插入图片描述


三.活动图与交互图的区别

系统动态建模的两种主要形式;
交互图强调对象与对象之间的交互信息;
活动图强调从活动到活动的控制流程。


四.活动图的组成元素


  1. 初始节点和终点
  2. 活动结点
  3. 转换
  4. 分支与监护条件
  5. 分岔与汇合

2.活动图的表示


1、初始节点和终点


  • 初始节点表示活动的起点,活动开始时,令牌从初始节点流出。用一个实心圆表示,
  • 终点表示活动的终结点,令牌到达时,活动将终止。用一个圆圈内加一个实心圆来表示活动终点,
  • 在活动图中,可能包含多个活动终点
    在这里插入图片描述

2、活动节点

用来表示一个活动,一个活动表示多个动作的集合。


  • 活动:表示某流程中的任务的执行,它可以表示某算法过程中语句的执行。活动可分解,不是原子的,工作的完成需要一定的时间。
  • 动作是原子的,不能被分解。没有内部转移,没有内部活动,动作的工作所占用的时间可忽略。动作可看作是活动的特例。

活动节点用一个圆角矩形表示。活动的名称写在圆角矩形内部。
在这里插入图片描述
活动节点的3种表示实例
在这里插入图片描述


3、转换

当一个活动结束时,活动控制流就会传递给下一个活动节点,在活动图中称之为“转换”,用一条带箭头的直线来表示转换。
在解释关系图时,假设有一个令牌从一个操作流向下一个操作。
在这里插入图片描述


4、分支与监护条件

当从一个活动节点到另一个活动节点的转换需要条件时,常用分支与监护条件来表示活动的分支结构.
分支是用菱形表示的,它有一个进入转换(箭头从外指向分支符号),一个或多个离开转换(箭头从分支符号指向外)。而每个离开转换上都会有一个监护条件,用来表示满足某种条件时才执行该转换。分支的表示法,如下图所示。
在这里插入图片描述

在这里插入图片描述


5、合并(merge)

指两条或多条控制路径汇合的情况
在合并由决策节点拆分的流时需要用到。 具有两个或多个输入以及一个输出。 任何输入上的令牌都会在输出上显示。
用菱形符号表示。
在这里插入图片描述
在这里插入图片描述


6、分岔(fork)和汇合(Join)

分岔表示一个控制流被两个或多个控制流代替,经过分岔后,这些控制流是并发进行的。
将单个流划分为并发流。 每个传入令牌会在每个传出连接线上生成一个令牌。
汇合与分岔相反,表示两个或多个控制流被一个控制流代替。
将并发流合并为单个流。 当每个传入流有等待的令牌时,输出上就会生成一个令牌。

与分支的区别
分支表示的是从多个可能的活动转移中选择一个。
分岔与汇合表示系统或对象中的并发行为。
在这里插入图片描述
在这里插入图片描述


3.活动图分类

按照活动图表示的信息不同,将活动图分为:


  • 简单活动图
  • 标识泳道的活动图
  • 标识对象流的活动图
  • 标识信号的活动图
  • 标识参数的活动图
  • 标识扩展区的活动图
  • 嵌套活动图

1 简单活动图

在这里插入图片描述


2 标识泳道的活动图

泳道(swimlane)是活动图中的区域划分。
每个泳道(活动分区—)代表整个活动一部分的高级职责,最终由一个或多个类(对象)实现。
每个泳道都有一个区别于其他泳道的名字。
划分通常是用垂直的实线,但也可以是水平或弯曲的,或者可以形成网络。

泳道和类的关系:
       两者不是一一对应的关系,泳道关心的是其所代表的职责,一个泳道可能有一个类实现,也可能有多个类实现。
在这里插入图片描述


3 标识对象流的活动图

对象可作为活动的输入或输出。
活动图中的对象流表示活动和对象之间的关系。
对象流属于控制流
在UML中,可以在活动图中标识一个对象的角色,状态和属性值的变化。
在这里插入图片描述
在这里插入图片描述


4 标识信号的活动图

信号是表示两个对象之间进行异步通讯的方式,当一个对象接收到一个信号时,将触发信号事件。
在活动图中,有三种信号元素:


  • 发送信号
  • 接收信号
  • 时间信号
    在这里插入图片描述

例:小张去必胜客吃饭,发现要排队等待,他决定如果15分钟还轮不到,就到隔壁的肯德基吃饭,这时就可以通过上述的符号来表示小张吃饭的活动。
在这里插入图片描述


5 标识扩展区的活动图

在活动图中,有时需要表示一个活动需要多次执行的情况。
在这里插入图片描述
在这里插入图片描述


6 嵌套活动图

一个活动图又包含了子活动图,则称这种图为嵌套活动图。
在这里插入图片描述


4.活动图的用途


可对系统的工作流程建模,即对系统的业务过程建模。

在这里插入图片描述
在这里插入图片描述


也可对具体的操作建模,用于描述计算过程的细节。

在这里插入图片描述


活动图对表示并发行为很有用。



例1:存款

在这里插入图片描述


例2:修改密码的活动图

在这里插入图片描述


例3:网购流程

在这里插入图片描述


5. 构建活动图

绘制活动图几个关键步骤:
(1)若希望在活动图中标识出活动的实施者,就应该采用标识泳道的活动图。
(2)在描述活动节点关系时,最大限度的采用分支,分岔和汇合等基本的建模元素来描述活动控制流程。
(3)若希望标识出活动节点执行前后对象的创建、销毁情况,以及对象的状态变化情况,则在绘制活动图采用标识对象流的活动图。


小结

活动图的作用?
活动图的组成元素有哪些?
活动图分类中,给出5种不同的活动图。
绘制修改密码的活动图。
绘制网购流程的活动图。


推荐阅读
  • 本文介绍了如何在 C# 和 XNA 框架中实现一个自定义的 3x3 矩阵类(MMatrix33),旨在深入理解矩阵运算及其应用场景。该类参考了 AS3 Starling 和其他相关资源,以确保算法的准确性和高效性。 ... [详细]
  • 深入理解Java多线程并发处理:基础与实践
    本文探讨了Java中的多线程并发处理机制,从基本概念到实际应用,帮助读者全面理解并掌握多线程编程技巧。通过实例解析和理论阐述,确保初学者也能轻松入门。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • java程序员_Java程序员最新职业规划,逆袭面经分享
    java程序员_Java程序员最新职业规划,逆袭面经分享 ... [详细]
  • 历经三十年的开发,Mathematica 已成为技术计算领域的标杆,为全球的技术创新者、教育工作者、学生及其他用户提供了一个领先的计算平台。最新版本 Mathematica 12.3.1 增加了多项核心语言、数学计算、可视化和图形处理的新功能。 ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 本文将详细介绍多个流行的 Android 视频处理开源框架,包括 ijkplayer、FFmpeg、Vitamio、ExoPlayer 等。每个框架都有其独特的优势和应用场景,帮助开发者更高效地进行视频处理和播放。 ... [详细]
  • Python中HOG图像特征提取与应用
    本文介绍如何在Python中使用HOG(Histogram of Oriented Gradients)算法进行图像特征提取,探讨其在目标检测中的应用,并详细解释实现步骤。 ... [详细]
  • 版本控制工具——Git常用操作(下)
    本文由云+社区发表作者:工程师小熊摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码、使用分支、出现代码冲突的解决办法、紧急保存现场和恢复 ... [详细]
  • MySQL性能测试标准倡议:老叶提出的压测基准
    进行MySQL的压力测试通常是为了评估新旧版本之间的性能差异、验证硬件升级的效果、测试参数调整的影响以及评估新业务的负载承受能力。老叶提出了一个MySQL压力测试基准值倡议,旨在促进行业内的标准化和成果共享。 ... [详细]
  • Spring Security核心概念与应用实践
    本文详细介绍了Spring Security的核心机制,包括其作为一系列过滤器的工作原理,如何实现用户认证与授权,以及常见的配置方法和高级特性如CSRF防护。 ... [详细]
  • Spring Cloud因其强大的功能和灵活性,被誉为开发分布式系统的‘一站式’解决方案。它不仅简化了分布式系统中的常见模式实现,还被广泛应用于企业级生产环境中。本书内容详实,覆盖了从微服务基础到Spring Cloud的高级应用,适合各层次的开发者。 ... [详细]
  • addcslashes—以C语言风格使用反斜线转义字符串中的字符addslashes—使用反斜线引用字符串bin2hex—函数把包含数据的二进制字符串转换为十六进制值chop—rt ... [详细]
  • 本文详细介绍了MySQL中的各种联结类型,包括自联结、自然联结、内部联结(等值联结)、外部联结(左联结、右联结、全外联结)以及交叉联结。每种联结方式都有其特定的应用场景和语法特点,了解这些可以帮助开发者更高效地编写SQL查询。 ... [详细]
author-avatar
纠结的狂欢_583
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有