建立动态模型 状态图
只有一个入转换和两个出转换。 ? 根据监护条件的真假可以触发不同的分支转换。
12
状态图
? 使用状态图进行建模的目标是描述跨越多个用例的 对象在其生命周期中的各种状态及其状态之间的转 换。
? 一个完整的系统往往包含很多的类和对象,这就需 要创建几个状态图进行描述。
? 创建状态图的步骤:
? 识别出建模实体
? 不需要给所有的类都创建状态图,只有具有重要动态 行为的类才需要。
? 识别出实体的各种状态 ? 创建相关事件并创建状态图
13
状态图
? 练习1:图书馆中图书的状态描述如下:当图书被 购置进来后,就放在图书馆中;如果读者将图书 借走时,处于已借出状态;如果图书被归还,图 书对象又变为在图书馆状态。图书馆如果将图书 废弃,则图书对象就不再存在。试画出图书对象 的状态图。
? 组合状态:内部嵌套有子状态的状态。
9
状态图
? 转换:用带箭头的直线表示,一端连接源状态即转 出的状态,箭头一端连接目标状态即转入的状态。
? 转换可以标注与此转换相关的选项如事件、动作和 监护条件。
10
状态图
? 初始状态:代表状态图的起始位置,只能作为转 换的源,而不能作为转换的目标。
? 初始状态在一个状态图中只允许有一个,它用一个 实心的圆表示。
? 事件表示时刻,状态代表时间间隔。
6
动态模型
? 通常,使用UML提供的状态图来描绘对象的状态、 触发状态转换的事件以及对象的行为(对事件的响 应)。
状态图通过建立类对 象的生命周期模型来 描述对象随时间变化 的动态行为。
? 每个类的动态行为用一张状态图来描绘,各个类的 状态图通过共享事件合并起来,从而构成系统的动 态模型。
? 状态图主要由元素状态、转换、初始状态、终止状 态和判定等组成。
8
状态图
? 状态是状态图的重要组成部分。包括:
? 状态名:在状态图中状态名必须是唯一的。 ? 入口和出口动作:进入和退出一个状态时所执行的
边界动作。
? 一个状态可以有或者没有入口和出口动作。
? 内部转换:是不导致状态改变的转换。
? 内部转换只有源状态而没有目标状态。
软件工程导论
孙旭光
灾害信息工程系
1
复习
? 对象模型表示静态的、结构化的系统的“数据”性 质。
? 通常,使用UML 提供的类图建立对象模型。
? 类图的绘制:类的表示和类与类之间的关系。
? 创建对象模型的步骤:
? 确定类与对象 ? 确定类间的关系 ? 划分主题 ? 确定属性和方法 ? 优化迭代(识别继承关系),反复修改
? 练习4:请创建一个状态图来描述航班如何从提出 申请、指定航班计划、售票、起飞、飞行到着陆 的状态过程。
17
建立动态模型
? 在开发交互式系统时,动态模型起着重要作用。
? 建立动态模型的步骤:
? 编写典型交互行为脚本。 ? 必须保证脚本中不遗漏常见的交互行为
? 从脚本中提取出事物,确定触发每个事件的动作对 象以及接受事件的目标对象。
? 排列事件发生的次序,确定每个对象可能有的状态 以及状态间的转换关系,并用状态图描绘出来。
14
状态图
? 练习2:在温室管理系统中,有一个环境控制器类, 当没有种植作物时处于空闲状态。一旦种上了作 物,就要进行温度控制,定义气候,即在什么时 期应达到什么温度。当处于夜晚时,由于温度下 降,要调用调节温度过程,以便保持温度;太阳 出来时,进入白天状态,由于温度升高,要调用 调节温度过程,保持要求的温度。当日落时,进 入夜晚状态。当作物收获,终止气候的控制,则 进入空闲状态。建立环境控制器类的状态图。
? 终止状态:是模型元素的最后状态,是一个状态 图的终止点。终止状态只能作为转换的目标,而 不能作为转换的源。
? 终止状态在一个状态图中可以有0个或多个,它用一 个套有一个实心圆的空心圆表示。
11
状态图
? 判定:
? 用来表示一个事件依据不同的监护条件产生不同的影 响,即工作流在此处按监护条件的取值而发生分支。
2
建立对象模型练习
? 根据描述建立软件公司的对象模型,即画出类图。 问题陈述如下:一个软件公司有许多部门,分为 开发部门和管理部门两种。每个部门由部门名字 唯一确定。每个开发部门开发多个软件产品,每 个软件产品都由程序、数据和文档组成。该公司 有许多员工,分为经理、工作人员和开发人员。 开发部门有经理和多个开发人员,管理部门有经 理和多个工作人员。每个开发人员可参加多个开 发项目,每个开发项目需要多个开发人员。每位 经理可主持多个开发项目。
? 对于一个对象来说,在其生命周期的每个特定阶段
中,都有适合该对象的一组运行规律和行为规则,
用以规范该对象的行为。
这就是对象的状态。
? 状态:是对对象属性值的一种抽象。
? 各对象之间相互触发(即作用)就形成了一系列的状 态变化。
? 一个触发行为称作一个事件。
? 一个事件分开两个状态,一个状态隔开两个事件。
? 动态模型是基于事件共享而互相关联的一组状态图 的集合。
7
状态图
? 状态图适用于描述状态和动作的顺序,不仅可以 展现一个对象拥有的状态,还可以说明事件如何 随着时间的推移来影响这些状态。
? 状态图表现从一个状态到另一个状态的控制流。
? 一般情况下,状态图可以由表示状态的节点和表示 状态之间转换的带箭头的直线刻画出来。
3
4
本节课内容
? 第九章 面向对象方法学引论 ? 9.5、动态模型
? 第十章 面向对象分析 ? 10.1 、面向对象分析的基本过程 ? 10.2 、需求陈述 ? 10.3 、建立对象模型 ? 10.4 、建立动态模型 ? 10.5 、建立功能模型 ? 10.6 、定义服务
5
动态模型
? 动态模型表示瞬时的、行为化的系统的“控制”性 质,它规定了对象模型中的对象的合法变化序列。
15
状态图
? 练习3:当有新同学入学时,将会给新同学创建一 个新的账号,新同学可以用这个账号去选课。一 般来说,每个人的选课数目是有限的,如选择 6门 课程后将不能再选课。如果已经选了 6门课程还要 再,将其账号删除。请创建学生账号类的状态 图。
16
状态图
类图、时序图、状态图-ATM系统
10.3 建立对象模型
10.3.4 拟定属性
➢ 分析
(3) 把限定误当成属性 正确使用限定词往往能够降低关联旳重数。假如把某 个属性值固定下来后来能降低关联旳重数,则应该考 虑把这个属性重新表述成一种限定词。 在ATM系统旳例子中,“分行代码”、“账号”、 “雇员号”、“站号”等都是限定词。 (4) 误把内部状态当成了属性 假如某个性质是对象旳非公开旳内部状态,则应该从 对象模型中删掉这个属性。
对象模型最基本、最主要、最关键。
10.1 面对对象分析旳基本过程
▪ 3个子模型
对所处理问题旳描述角度进行划分:
3个子模型
静态构造(对象模型) 交互顺序(动态模型) 数据变换(功能模型)
处理问题不同,三个子模型旳主要程度也不同。
10.1 面对对象分析旳基本过程
▪ 5个层次
主题指读者了解大型、 复杂模型旳一种机制 (记忆旳7+2原则)
10.3 建立对象模型
10.3.1找出候选类与对象
1.找出候选旳类与对象(续)
名词解析法 从陈说中找出全部名词,作为类和对象旳初步候选者 银行,自动取款机(ATM),系统,中央计算机, 分行计算机,柜员终端,网络,总行,分行,软件, 成本,市,街道,营业厅,储蓄所,柜员,储户, 现金,支票,账户,事物,现金兑换卡,余额, 磁卡,分行代码,卡号,顾客,副本,信息,密码, 类型,取款额,账单,访问。 通信链路 事务日志
A T M 系 统 正 常
和 异 常 脚 本
10.4.2 设想顾客界面
UML状态图的画法
转移类型:简单转移、自转移、自动转移、复合转移等。
14
事件
事件(event是指某个时刻发生的事情 事件中最常见的是:
信号事件(signal event):从一个对象到另一个对象 的明确的单向信息流动。
购入项目 在店内
entry/ 令store = theStore本店)
弃置项目
租出项目 归还项目
已租出
租出项目
正常 entry/ 令store = null空值) 已出租do/ 每天检查到期时间
超过到期日子
过期 entry/ 通知会员
25
3.4.2 顺序子状态
顺序子状态:子状态是一个一个顺序转移的不是并发存在 的
源状态
目标状态1
源状态1
目标状态2
源状态2
目标状态
30
3.4.4 并发子状态—同步
在并发状态图中一个子状态图中 的子状态常常需要与另一个子 状态图中的子状态的行为同步 在UML中使示(伪状态,放 在分隔子状态的虚线上。
例:建筑住宅的并发状态图。 其中有二个子状态图,分别 代表主体工程施工和水电工程 施工,它们是并行进行的。
历史状态是一个伪状态的图形标记,只能作为组合状态中 的子状态,不能在顶层状态图中使用。
32
3.4.5 历史状态2
活动 停止
恢复
H
暂停
播发
中断
选择
影碟机对象工作的部分状态图
33
3.5 状态图的应用
状态图为一个对象的生命周期建立模型状态图可以表示一 个对象的历史引起一个状态向另一个状态转移的事件,以 及由于状态的转移而引发的动作。
面向对象方法例(ATM)
卡片信息键入业务种类
取消做:请求总金额
ቤተ መጻሕፍቲ ባይዱ卡片弹出
做:弹出卡片做:非法帐户信息
要求取走卡片键入总数
业务成功
做:分配现金做:处理业务
请求取走现金
业务失败
结束取税金取消
做:打印收据做:失败信息
等待
终止取消5秒
做:请求继续中断
做:取消信息
继续
网络响应等待网络响应
其中:网络响应=合法帐户、非法帐户、非法营业部代码、非法密码、业务成功、业务失败
[有效]
[失败] [成功]
/营业部业务失败/营业部业务成功[无效]/
非法营业部代码
做:与营业部验证卡片
[有效]
/合法营业部帐户
三、系统设计
ATM系统的结构:
电话线电话线
说明:1)ATM系统软件总体结构:交互式界面和事务处理型系统的混合体。
用分析模型表示系统的总体结构包括:
对象模型——表示事务处理的各部分。
例题: ATM网络系统
问题陈述:
设计一个支持银行ATM计算机网络系统的软件。这个网络包括柜员机和自动取款机(ATM),由联营机构共享。每个营业部提供各自的计算机来维护它的帐户和处理面临的事务。柜员机属于各营业部,并且直接与营业部计算机通信,柜员输入帐务和处理数据。ATM与中心处理机通信。中心处理机分理事务到相应的营业部。ATM接收现金卡,与用户交互,与中心计算机通信完成事务处理,分配现金和打印收据。系统需要恰当的记录和安全保证。系统必须正确控制并发访问同一帐号。营业部提供自己的计算机软件。共享系统的费用由各营业部根据现金卡数量来分担。
四、ATM主控程序路径设计:
主屏
插入卡
银行储蓄系统面向对象分析
课题:银行计算机储蓄系统学院:数学科学学院班级:信科1202 信科1201 学号:********* ********* 姓名:****:***银行储蓄系统面向对象分析一、建立对象模型需求陈述:储户填写存款单或取款单由业务员键入系统。
如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期,到期日期,利率以及密码(可选)等信息,并引出存款单给储户,如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息,并印出利息清单给储户。
确定类&对象:1.找出所有可能的类&对象:储户、存款单、取款单、业务人员、计算机储蓄系统、账户、事务2.筛选:储户、业务人员、计算机储蓄系统、账户、事务确定关联:储户拥有账户业务人员与计算机通信业务人员输入事务最终的关联为如下图:确定属性:储户:姓名、地址账户:余额、限额、类型业务人员事务:类型、日期、金额业务人员:姓名建立的对象模型为:二、建立动态模型编写脚本:计算机储蓄系统的正常情况脚本:储户的填写存款单业务人员键入系统,系统引出存款单给储户储户填写取款单,系统核对储户密码,计算利息并打印利息清单给储户计算机储蓄系统的异常情况脚本:储户身份证号码填写错误,找不到该储户信息储户填写取款单的密码错误画事件跟踪图:储蓄系统正常情况事件跟踪图:储蓄系统异常情况事件跟踪图:画状态图:三、建立功能模型画出基本数据流图: 顶层数据流图:画出功能级数据流图:把基本系统模型中单一的处理框分解成若干个处理框,以描述系统加工、变换数据的基本功能,就得到功能级数据流图如下图:储户业务人员储蓄系统款单信息输入信息储户 业务人员填写存取款单记录存款信息核对储户密码核对账户计算利率显示出错信息请求重新填写款单 输入取款单信息无错输入存款单信息无错打印利息清单输入信息存款单输出信息账户。
实验_7状态图
实验_7状态图实验七学习在Rose中创建状态图实验⽬的:学习在Rose中创建状态图的基本过程,掌握在系统模型中状态图的作⽤。
实验要求:掌握根据具体描述分析出初态、终态、中间状态以及它们之间的转换关系,并完成状态图的绘制。
实验条件:windowsXP、Rose2003实验内容及步骤:动态模型表⽰瞬时的、⾏为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列。
通常,⽤状态图来描绘对象的状态、触发状态转换的事件以及对象的⾏为。
每个类的动态⾏为⽤⼀张状态图来描绘,各个类的状态图通过共享事件合并起来,所以动态模型是基于事件共享⽽相互关联的⼀组状态图的集合。
⼀个⽤例是可以被参与者感受到的、系统的⼀个完整的功能。
在UML中把⽤例定义成系统完成的⼀系列动作,动作的结果能被特定的⾏为者观察到。
这些动作除了完成系统内部的计算和⼯作外,还包括与⼀些⾏为者的通信。
⽤例具有的特征是:⽤例代表⽤户可见的功能,实现⼀个具体的⽤户⽬标;⽤例是被参与者启动的,并向⾏为者提供确切的值;⽤例可⼤可⼩,但必须是相对完整的。
⽤例是⼀个类,它代表⼀类功能⽽不是使⽤该类功能的某个具体实例。
UML中状态图是在⽤例基础上创建的。
下⾯的实验,要求在独⽴进⾏⾯向对象需求分析的基础上,使⽤Rose⼯具绘制状态图。
⼀、创建状态图:介绍状态图的基本绘制⽅法。
根据以下步骤完成“选课系统”状态图的设计。
⼀个课程类的状态变化如下:课程对象被创建,添加到数据库中。
管理员可以删除、修改课程信息,在某个学期,开设该课程,如果选修⼈数超过指定⼈数,就不再允许学⽣选这门课。
学期结束,课程的状态终⽌。
1.确定选课系统中的主要状态:我们可抽取出除了初态和终态之外的六个状态:已创建、已修改、已删除、存放在数据库、可选、不可选。
下⾯就来创建状态图。
2.新建状态图(以课程类的状态图为例):(1)右键单击浏览器中的Logical View,在弹出菜单上,选择“Ne w→StateChartDiagram”,创建⼀个新的状态图,并将状态图的名字改成“Course”。
系统动态建模状态模型
主要内容
• 6.1 状态图的基本组成成分 • 6.2 状态的分类与描述 • 6.3 状态迁移的触发与描述 • 6.4 活动图与状态图的比较 • 6.5 动态状态模型建模案例-信贷管理子系统 • 补充: 使用rose画状态图
第6页/共122页
• 6.1 状态图的基本组成成分 • 6.1.1 对象状态的基本描述图符 • 6.1.2 状态的迁移 • 6.1.3 一个无人职守电梯升降的状态图
第17页/共122页
第18页/共122页
6.1.2 状态的迁移
• 一个对象从一个状态改变成另一个状态称为状态迁移 • 状态的迁移用连接这两个状态的实箭线表示。在状态的迁移箭线上写上引起该迁
移的事件、条件和动作。 • 当事件发生时,动作发生,执行从一个状态到另一个状态的迁移,称为迁移点火
或状态触发。
• 6.3 状态迁移的触发与描述 • 6.3.1 状态的迁移触发
第27页/共122页
• 6.1 状态图的基本组成成分 • 6.1.1 对象状态的基本描述图符 • 6.1.2 状态的迁移 • 6.1.3 一个无人职守电梯升降的状态图
• 6.2 状态的分类与描述 • 6.2.1 对象的状态属性 • 6.2.2 简单状态与嵌套状态 • 6.2.3 状态的顺序迁移-顺序状态 • 6.2.4 状态的并发迁移与同步-并发状态与同步 • 6.2.5 嵌套状态中的历史状态指示器
第42页/共122页
子状态的关系
• 与关系说明复合状态中在某一时刻可同时到达多个子状态(称为并发子状态)。 具有并发子状态的状态图称为并发状态图。
前进和低速 前进和高速 后退和低速 后退和高速
第43页/共122页
6-6 描述设备(车床)状况的嵌套状态图
建立动态模型-状态图 PPT
状态图
状态是状态图的重要组成部分。包括:
状态名:在状态图中状态名必须是唯一的。 入口和出口动作:进入和退出一个状态时所执行的
边界动作。
一个状态可以有或者没有入口和出口动作。
内部转换:是不导致状态改变的转换。
内部转换只有源状态而没有目标状态。
组合状态:内部嵌套有子状态的状态。
本节课内容
第九章 面向对象方法学引论 9.5、动态模型
第十章 面向对象分析 10.1、面向对象分析的基本过程 10.2、需求陈述 10.3、建立对象模型 10.4、建立动态模型 10.5、建立功能模型 10.6、定义服务
动态模型
动态模型表示瞬时的、行为化的系统的“控制”性 质,它规定了对象模型中的对象的合法变化序列。
教材P73页第6题。
终止状态:是模型元素的最后状态,是一个状态 图的终止点。终止状态只能作为转换的目标,而 不能作为转换的源。
终止状态在一个状态图中可以有0个或多个,它用一 个套有一个实心圆的空心圆表示。
状态图
判定:
用来表示一个事件依据不同的监护条件产生不同的影 响,即工作流在此处按监护条件的取值而发生分支。
状态图
转换:用带箭头的直线表示,一端连接源状态即转 出的状态,箭头一端连接目标状态即转入的状态。
转换可以标注与此转换相关的选项如事件、动作和 监护条件。
状态图
初始状态:代表状态图的起始位置,只能作为转 换的源,而不能作为转换的目标。
初始状态在一个状态图中只允许有一个,它用一个 实心的圆表示。
判定用空心小菱形表示。 因为监护条件为布尔表达式,所以通常条件下的判定
只有一个入转换和两个出转换。 根据监护条件的真假可以触发不同的分支转换。
4 信息系统模型(静态模型和动态模型)
类图
类之间的关联关系
关联:常规关联、多元关联和关联类等。
1、常规关联
关联中三角形的尖指向关联执行的方向。
公司
0..*雇 佣 工作于 0..* 老板 员工 0..1 管理 1..* 工人
雇佣关联
2、多元关联
人员 雇用 公司
二元关联的例
项目
◆
人
语言
三元关联的例
关联的重数 重数(multiplicity)表示多少个对象与 对方对象相连接(图3.5),常用的重数符号有: “0..1” 表示零或1 “0..*”或“*” 表示零或多个 “1..*” 表示1或多个 “1,3,7” 表示1或3或7(枚举型) 重数的默认值为1。
控制类
实体类
实体类的识别
1.Wirfs-Brock的名词识别法 识别问题域中的实体,实体的描述通常用名词、 名词短语、名词性代词的形式出现。
识别步骤: •用指定语言对系统进行描述;
•从系统描述中标识名词、名词短语、名词性代词;
•识别确定(取、舍)类。
识别实体类:银行网络系统ATM
银行网络系统包括人工出纳和分行共享的自 银行网络系统包括人工出纳和分行共享的自 动出纳机;各分理处用自己的计算机处理业务(保 动出纳机;各分理处用自己的计算机处理业务(保 存账户、处理事务等);各分理处与出纳站通过网 存账户、处理事务等);各分理处与出纳站通过网 络通信;出纳站录入账户和事务数据;自动出纳机 络通信;出纳站录入账户和事务数据;自动出纳机 与分行计算机通信;自动出纳机与用户接口,接受 与分行计算机通信;自动出纳机与用户接口,接受 现金卡;发放现金;打印收据;分行计算机与拨款 现金卡;发放现金;打印收据;分行计算机与拨款 分理处结账。 分理处结账。 要求系统正确处理同一账户的并发访问;网络 要求系统正确处理同一账户的并发访问;网络 费用平均摊派给各分理处。 费用平均摊派给各分理处。
软件工程---UML动态分析-活动图
Make Plan
entry/ SetGoal
2020/5/4
26
动作流
与状态图不同,活动图的转换一般都不需要特 定事件的触发。
一个动作状态执行完本状态需要完成的动作后 会自发转换到另外一个状态。
2020/5/4
27
动作流
一个活动图有很多动作或者活动状态,
活动图通常开始于初始状态,然后自动转换到 活动图的第一个动作状态,一旦该状态的动作 完成后,控制就会不加延迟地转换到下一个动 作状态或者活动状态。
7
活动图与流程图的区别
⑴ 流程图着重描述处理过程,它
的主要控制结构是顺序、分支 和循环,各个处理过程之间有 严格的顺序和时间关系
找饮料 [ 发现咖啡 ]
活动图描述的是对象活动的顺序
把咖啡放入 滤器
关系所遵循的规则,它着重表 将滤器放入 现的是系统的行为,而非系统 机器
的处理过程。
往容器里加 水
开机器
活动图着重表现从一个活动到另一个活动的控制流, 是内部处理驱动的流程。
找饮料
[ 发现咖啡 ]
[ 没有咖啡 ] [ 发现可乐 ]
把咖啡放入 滤器
往容器里加 水
拿茶杯
拿可乐
将滤器放入 机器
[ 没有可乐 ]
开机器 冲咖啡
倒咖啡
喝饮料
2020/5/4
12
活动的图形表示
在UML中,活动表示成圆角矩形,与状态的圆角矩 形相比,活动的矩形的圆角更柔和,看上去接近椭 圆。
不能中断,一直运行到结束。 ⑶ 动作状态是瞬时的行为,它所占用的处理时
间极短,有时其至可以忽略。
2020/5/4
19
动作状态
动作状态有如下特点:
第7章 状态图和活动图
图7.1 图书馆书籍的状态图
一个图书对象从它的起始点 开始,首先是“新书”状态 (new book),然后是“可 以借阅”(available)的状 态,如果有读者将书借走, 则该书的状态为“已借出” 状态(borrowed),如果图 书被归还图书馆,图书的状 态又变为“可以借阅”状态 。图书馆如果放弃该图书对 象的收藏,则图书对象处于 “删除”状态(delete),最 后到达“终止”状态。
7.2.1 活动图概述
在用例模型中,可以利用文本来描述用例的业务流程, 但如果业务流程较为复杂的话,则可能会难以阅读和 理解,这时需要用更加容易理解的方式(图形)来描 述业务过程的工作流,在UML中将这类描述活动流程 的图形称为活动图(Activity Diagram)。 活动图被设计用于简化描述一个过程或者操作的工作步 骤。活动用圆角矩形表示,接近椭圆。一个活动中的 处理一旦完成,则自动引起下一个活动的发生。箭头 表示从一个活动转移到下一个活动。和状态图类似, 活动图中的起点用一个实心圆表示,终点用一个实心 圆外加一个圆圈表示。在一个活动图中,只有一个起 始状态,可以有零个或多个终止状态。
第7章 状态图和活动图
7.1状态图
状态图,用于UML中建立动态模型,主要描述系
统随时间变化的行为,这些行为是用从静态视图中抽 取的系统的瞬间值的变化来描述的。在对象的生命期 建模中,状态图显示了一个状态机,展示的是单个对 象内从状态到状态的控制流。状态图通过对类的对象
的生存周期建立模型来描述对象随时间变化的动态行
7.2.7分叉和汇合
对象在运行时可能会存在两个或多个并发运行的控制流, 为了对并发的控制流建模,UML中引入了分叉与汇合的概 念。分叉用于将动作流分为两个或多个并发运行的分支, 而汇合则用于同步这些并发分支,以达到共同完成一项事 务的目的。 在UML中使用分叉和汇合表示并行发生的事件流。分叉表 示把一个单独的控制流分成两个或多个并发的控制流。一 个分叉可以有一个进入转移和两个或多个输出转移,每一 个转移表示一个独立的控制流。 汇合表示两个或多个并发 控制流的同步发生,一个汇合可以有两个或多个进入转移 和一个输出转移。分叉和汇合应该是平衡的。分叉和汇合 在图形上都使用同步条来表示,同步条通常用一条粗的水 平线表示。
