表与判定树来描述。 数据流图 图27是描述储户携带存折去银行办理取款手续的数据流图。从图中可以看到,数据流 图的基本图形元素有四种,如图2.8所示。 检验出的问题 检验 取款单 存折 存折 取款 信息 付)付款信息(發录 月日 日历 图27办理取款手续的数据流图 加工。输入数据在此进行变换产生输出数据,其中要注明加工的名字。 数据输入的源点( Source)或数据输出的汇点(Sink)。其中要注明源点 或汇点的名字。 数据流。被加工的数据与流向,箭头边应给出数据流名字,可用名词 或名词性短语命名。 数据存储文件。也必须加以命名,用名词或名词性短语命名。 图28DFD的基本图形符号 在数据流图中,如果有两个以上数据流指向一个加工,或是从一个加工中引出两个以上 的数据流,这些数据流之间往往存在一定的关系。为表达这些关系,在这些数据流的加工可 以标上不同的标记符号。所用符号及其含意在图29中给出。 有A则有B或C, C当A或B有一个 C或两者都有B 存在,就有 有A则有B与C,A 两者同时有 当A与B都存在 就有 有A则有B或C,但 不会同时有B与C 图29表明多个数据流与加工之间关系的符号 分层数据流图 为了表达数据处理过程的数据加工情况,用一个数据流图是不够的。稍为复杂的实际问 题,在数据流图上常常出现十几个甚至几十个加工。这样的数据流图看起来很不清楚。层次 结构的数据流图能很好地解决这一问题。按照系统的层次结构进行逐步分解,并以分层的数
6 表与判定树来描述。 ▪ 数据流图 图 2.7 是描述储户携带存折去银行办理取款手续的数据流图。从图中可以看到,数据流 图的基本图形元素有四种,如图 2.8 所示。 图 2.7 办理取款手续的数据流图 图 2.8 DFD 的基本图形符号 在数据流图中,如果有两个以上数据流指向一个加工,或是从一个加工中引出两个以上 的数据流,这些数据流之间往往存在一定的关系。为表达这些关系,在这些数据流的加工可 以标上不同的标记符号。所用符号及其含意在图 2.9 中给出。 图 2.9 表明多个数据流与加工之间关系的符号 ▪ 分层数据流图 为了表达数据处理过程的数据加工情况,用一个数据流图是不够的。稍为复杂的实际问 题,在数据流图上常常出现十几个甚至几十个加工。这样的数据流图看起来很不清楚。层次 结构的数据流图能很好地解决这一问题。按照系统的层次结构进行逐步分解,并以分层的数
据流图反映这种结构关系,能清楚地表达和容易理解整个系统 图2.10给出分层数据流图的示例。数据处理S包括三个子系统1、2、3。顶层下面的第 层数据流图为DFD/L1。第二层数据流图DFD/L2.1、DFD/L22及DFD/23分别是 子系统1、2和3的细化。对任何一层数据流图来说,我们称它的上层图为父图,在它下一层 的图则称为子图。 DFD/LO F DFD/LI (12-1 3,2)+(33 FD/ L2. DFD/L2. 2 DFD/ L2. 3 图2.10分层数据流图 画数据流图的基本步骤概括地说,就是自外向内,自顶向下,逐层细化,完善求精。检 查和修改的原则为 ①数据流图上所有图形符号只限于前述四种基本图形元素。 ②顶层数据流图必须包括前述四种基本元素,缺一不可。 ③顶层数据流图上的数据流必须封闭在外部实体之间 ④每个加工至少有一个输入数据流和一个输出数据流。 ⑤在数据流图中,需按层给加工框编号。编号表明该加工处在哪一层,以及上下层的 父图与子图的对应关系。 ⑥规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输 出数据流必须一致。此即父图与子图的平衡。 ⑦可以在数据流图中加入物质流,帮助用户理解数据流图 ⑧图上每个元素都必须有名字。数据流和数据文件的名字应当是“名词”或“名词性 短语”,表明流动的数据是什么。加工的名字应当是“名词十宾语”,表明做什么事情。 ⑨数据流图中不可夹带控制流。 ⑩初画时可以忽略琐碎的细节,以集中精力于主要数据流 加工规格说明 加工规格说明用来说明DFD中的数据加工的加工细节。加工规格说明描述了数据加工 的输入,实现加工的算法以及产生的输出。另外,加工规格说明指明了加工(功能)的约束 和限制,与加工相关的性能要求,以及影响加工的实现方式的设计约束。必须注意,写加工 规格说明的主要目的是要表达“做什么”,而不是“怎样做”。因此它应描述数据加工实现 加工的策略而不是实现加工的细节 目前用于写加工规格说明的工具有结构化英语、判定表和判定树 针对实时系统的Wad& Mellor扩展 这种扩展可以适应实时系统提出的以下要求:①在时间连续的基础上接收或产生数据 流:②贯穿系统的控制信息和相关的控制处理;③在多任务的情况下可能会遇到同一个加
7 据流图反映这种结构关系,能清楚地表达和容易理解整个系统。 图 2.10 给出分层数据流图的示例。数据处理 S 包括三个子系统 1、2、3。顶层下面的第 一层数据流图为 DFD/L1。第二层数据流图 DFD/L2.1、DFD/L2.2 及 DFD/L2.3 分别是 子系统 1、2 和 3 的细化。对任何一层数据流图来说,我们称它的上层图为父图,在它下一层 的图则称为子图。 图 2.10 分层数据流图 画数据流图的基本步骤概括地说,就是自外向内,自顶向下,逐层细化,完善求精。检 查和修改的原则为: ① 数据流图上所有图形符号只限于前述四种基本图形元素。 ② 顶层数据流图必须包括前述四种基本元素,缺一不可。 ③ 顶层数据流图上的数据流必须封闭在外部实体之间。 ④ 每个加工至少有一个输入数据流和一个输出数据流。 ⑤ 在数据流图中,需按层给加工框编号。编号表明该加工处在哪一层,以及上下层的 父图与子图的对应关系。 ⑥ 规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输 出数据流必须一致。此即父图与子图的平衡。 ⑦ 可以在数据流图中加入物质流,帮助用户理解数据流图。 ⑧ 图上每个元素都必须有名字。数据流和数据文件的名字应当是“名词”或“名词性 短语”,表明流动的数据是什么。加工的名字应当是“名词+宾语”,表明做什么事情。 ⑨ 数据流图中不可夹带控制流。 ⑩ 初画时可以忽略琐碎的细节,以集中精力于主要数据流。 ▪ 加工规格说明 加工规格说明用来说明 DFD 中的数据加工的加工细节。加工规格说明描述了数据加工 的输入,实现加工的算法以及产生的输出。另外,加工规格说明指明了加工(功能)的约束 和限制,与加工相关的性能要求,以及影响加工的实现方式的设计约束。必须注意,写加工 规格说明的主要目的是要表达“做什么”,而不是“怎样做”。因此它应描述数据加工实现 加工的策略而不是实现加工的细节。 目前用于写加工规格说明的工具有结构化英语、判定表和判定树。 ▪ 针对实时系统的 Ward & Mellor 扩展 这种扩展可以适应实时系统提出的以下要求:① 在时间连续的基础上接收或产生数据 流;② 贯穿系统的控制信息和相关的控制处理;③ 在多任务的情况下可能会遇到同一个加
工的多个实例:④系统状态以及导致系统状态迁移的机制 图2.11给出的扩展的图形符号可以让分析员在描述数据流和加工的同时,描述控制流和 控制加工。这些符号可以与原来的数据流图的图形符号混用。 控制项或事件。时间上间隔发生的数据流,取布尔值或离散值。 连续数据流。时间上连续发生的数据流,用做加工的输入或输出。 控制加工。由事件驱动的控制处理过程,接受控制和输入,产生控制作为输 控制存储。为一个或多个控制提供事件源或事件存储服务的库 加工。同一个加工的多个对等的实例。在多任务系统中当产生多个加工时使 用。它相当于一些进程。 图2.11Wad& Mellor开发的针对实时系统的扩展的结构化分析符号 例如,图2.12给出一个基于计算机的水温控制系统的处理。水温测量仪连续传送水温数 据给温度监控加工模块,该加工将水温与允许波动范围进行比较,输出校正数据给温度调节 装置。 水温测量仪 温度 温度 监视与 温度校正值 调整 温度设置范围 图2.12时间连续的数据流与普通数据流 图213给出一个制造车间的数据和控制流的顶层流图。事件可以作为普通数据加工的输 入数据流,控制也可以接收普通的输入数据流 每个部件的状态 动作警告 初始化 部件状态缓冲 控制 位串 起动/停止 处理激 器人命令文件 控与操 信号 活信号 机器人动作记录 作界面 移位命 操作设置 令处理 操作命令 定位命令 图2.13使用ward& Mellor符号的数据流和控制流 Hatley和 Pirbhai对结构化分析技术的扩展 ward& Pirbhai方法主要关注面向控制的规格说明,而不是扩充数据流图的图形符号 他们建立控制流图(CFD)以区别于数据流图(DFD)。在控制流图中的加工与数据流图中相同
8 工的多个实例;④ 系统状态以及导致系统状态迁移的机制。 图 2.11 给出的扩展的图形符号可以让分析员在描述数据流和加工的同时,描述控制流和 控制加工。这些符号可以与原来的数据流图的图形符号混用。 图 2.11 Ward & Mellor 开发的针对实时系统的扩展的结构化分析符号 例如,图 2.12 给出一个基于计算机的水温控制系统的处理。水温测量仪连续传送水温数 据给温度监控加工模块,该加工将水温与允许波动范围进行比较,输出校正数据给温度调节 装置。 图 2.12 时间连续的数据流与普通数据流 图 2.13 给出一个制造车间的数据和控制流的顶层流图。事件可以作为普通数据加工的输 入数据流,控制也可以接收普通的输入数据流。 图 2.13 使用 Ward & Mellor 符号的数据流和控制流 ▪ Hatley 和 Pirbhai 对结构化分析技术的扩展 Ward & Pirbhai 方法主要关注面向控制的规格说明,而不是扩充数据流图的图形符号。 他们建立控制流图(CFD)以区别于数据流图(DFD)。在控制流图中的加工与数据流图中相同, 控制项或事件。时间上间隔发生的数据流,取布尔值或离散值。 连续数据流。时间上连续发生的数据流,用做加工的输入或输出。 控制加工。由事件驱动的控制处理过程,接受控制和输入,产生控制作为输 出。 控制存储。为一个或多个控制提供事件源或事件存储服务的库。 加工。同一个加工的多个对等的实例。在多任务系统中当产生多个加工时使 用。它相当于一些进程。 水温测量仪 温度 监视与 调整 温度 温度设置范围 温度校正值 每个部件的状态 部件状态缓冲器 位串 部件监 控与操 作界面 操作命令 机器人 初始化 控制 起动∕停止 信号 移位命 令处理 动作警告 操作设置 处理激 活信号 机器人命令文件 机器人动作记录 定位命令
但传递的是控制流而不是数据流。在控制流图中引入实短线“”表示对控制规格说明的引用。 图2.14给出他们建立的实时系统模型。用数据流图表示对数据和操作数据的加工:用控制流 图表示事件在加工之间如何流动,说明导致各个加工激活的外部事件 加工模型 入数据流 输出数据流 数据流图 加工激活者 加工规格说明 控制模型 数据条件 控制流图 控制规格说明 图214数据与控制之间的关系 (3)行为建模 行为建模给出需求分析方法的所有操作原则,但只有结构化分析方法的扩充版本才提供 种建模的符号 状态一迁移图 利用如图215所示的状态一迁移图(STD)或状态一迁移表来描述系统或对象的状态,以 及导致系统或对象的状态改变的事件,从而描述系统的行为。 状态 事件 234 S t2 (a)状态迁移图 (b)状态迁移表 图215状态一迁移图与其等价的状态一迁移表例 每一个状态代表系统或对象的一种行为模式。状态一迁移图指明系统的状态如何相应外 部的信号(事件)进行推移。在状态一迁移图中,用圆圈“O”表示可得到的系统状态,用 箭头“→”表示从一种状态向另一种状态的迁移。在箭头上要写上导致迁移的信号或事件的 名字。如图215(a)所示,系统中可取得的状态=S1,S2,S3,事件=t,t2,t3,+4。事件 tl将引起系统状态S1向状态S3迁移,事件口2将引起系统状态S3向状态S2迁移,等等 图2.15(b)就是与图2.15(a)等价的状态一迁移表 另外,状态一迁移图指明了作为特定事件的结果(状态)。在状态中包含可能执行的行 为(活动或加工)
9 但传递的是控制流而不是数据流。在控制流图中引入实短线“|”表示对控制规格说明的引用。 图 2.14 给出他们建立的实时系统模型。用数据流图表示对数据和操作数据的加工;用控制流 图表示事件在加工之间如何流动,说明导致各个加工激活的外部事件。 图 2.14 数据与控制之间的关系 (3) 行为建模 行为建模给出需求分析方法的所有操作原则,但只有结构化分析方法的扩充版本才提供 这种建模的符号。 ▪ 状态—迁移图 利用如图 2.15 所示的状态—迁移图(STD)或状态—迁移表来描述系统或对象的状态,以 及导致系统或对象的状态改变的事件,从而描述系统的行为。 图 2.15 状态—迁移图与其等价的状态—迁移表例 每一个状态代表系统或对象的一种行为模式。状态—迁移图指明系统的状态如何相应外 部的信号(事件)进行推移。在状态—迁移图中,用圆圈“○”表示可得到的系统状态,用 箭头“→”表示从一种状态向另一种状态的迁移。在箭头上要写上导致迁移的信号或事件的 名字。 如图 2.15(a) 所示,系统中可取得的状态=S1,S2,S3,事件=t1,t2,t3,t4。事件 t1 将引起系统状态 S1 向状态 S3 迁移,事件 t2 将引起系统状态 S3 向状态 S2 迁移,等等。 图 2.15(b) 就是与图 2.15(a) 等价的状态—迁移表。 另外,状态—迁移图指明了作为特定事件的结果(状态)。在状态中包含可能执行的行 为(活动或加工)。 加工模型 数据流图 加工规格说明 控制模型 控制流图 控制规格说明 输出控制流 输入数据流 输出数据流 输入控制流 加工激活者 数据条件
如果系统比较复杂,可以把状态一迁移图分层表示。例如,在确定了如图2.16所示那样 的大状态S1,S2,S3之后,接下来就可把状态S1,S2,S3细化。在该图中对状态S1进行 了细化。此外,在状态一迁移图中,由一个状态和一个事件所决定的下一状态可能会有多个 际会迁移到哪一个是由更详细的内部状态和更详细的事件信息来决定的。此时,可采用状 态迁移图的一种变形,如图2.17那样,使用加进判断框和处理框的记法 SI C1、C2:判断条件 P1~P5:处理内容 图2.16状态迁移图的网 图2.17状态迁移图的变形 Petri网 Peti网,简称PNG( Petri Net Graph)。它适用于描述相互独立、协同操作的处理系统 即并发执行的处理系统。在软件需求分析与设计阶段都可以使用 Petri网是一种有向图,它有两种结点:“O”表示系统的状态。“一”或“|”表示系 统中的事件。图中的有向边表示对事件的输入,或从事件输出:“一”表示对事件的输入 →”表示事件的结果,即从事件的输出。 图2.18用 Petri网描述了在一个多任务系统中的两个进程PRl和PR2使用一个公共资源 R时,利用原语LOCK(对资源加锁)和 UNLOCK(对资源解锁)控制R的使用,保证进程 间的同步的例子 进程1 进程2 等待RR空闲等待R。 p2 处理11 处理21 p3 p6 处理12 处理22 图2.18进程同步机制的PNG 图中每个进程是一个数据对象,它有三个状态:等待资源(pl或p4),占用资源执行 的处理(p2或p5),不占用资源执行的处理(p3或p6),另外系统有一个状态:资源空闲 (p7)。在有的状态中有一个黑点“⊙”,称为标记或令牌,表明系统或对象当前正处于此 状态。当作为一个事件的输入的所有状态都得到或保有令牌时,才能引起该事件“激发” 使得系统和对象的状态向前推移,完成系统和对象的某些行为 控制规格说明 控制规格说明从两个方面给出系统的行为。其一是状态一迁移图(STD),它是行为的“顺 序规格说明”。其二是加工激活表(PAT),它是行为的“组合规格说明”,表明当事件激发时
10 如果系统比较复杂,可以把状态—迁移图分层表示。例如,在确定了如图 2.16 所示那样 的大状态 S1,S2,S3 之后,接下来就可把状态 S1,S2,S3 细化。在该图中对状态 S1 进行 了细化。此外,在状态—迁移图中,由一个状态和一个事件所决定的下一状态可能会有多个。 实际会迁移到哪一个是由更详细的内部状态和更详细的事件信息来决定的。此时,可采用状 态迁移图的一种变形,如图 2.17 那样,使用加进判断框和处理框的记法。 图 2.16 状态迁移图的网 图 2.17 状态迁移图的变形 ▪ Petri 网 Petri 网,简称 PNG (Petri Net Graph)。它适用于描述相互独立、协同操作的处理系统, 即并发执行的处理系统。在软件需求分析与设计阶段都可以使用。 Petri 网是一种有向图,它有两种结点:“○”表示系统的状态。“—”或“┃”表示系 统中的事件。图中的有向边表示对事件的输入,或从事件输出:“ ”表示对事件的输入; “ ”表示事件的结果,即从事件的输出。 图 2.18 用 Petri 网描述了在一个多任务系统中的两个进程 PR1 和 PR2 使用一个公共资源 R 时,利用原语 LOCK(对资源加锁)和 UNLOCK(对资源解锁)控制 R 的使用,保证进程 间的同步的例子。 图 2.18 进程同步机制的 PNG 图中每个进程是一个数据对象,它有三个状态:等待资源(p1 或 p4),占用资源执行 的处理(p2 或 p5),不占用资源执行的处理(p3 或 p6),另外系统有一个状态:资源空闲 (p7)。在有的状态中有一个黑点“”,称为标记或令牌,表明系统或对象当前正处于此 状态。当作为一个事件的输入的所有状态都得到或保有令牌时,才能引起该事件“激发”。 使得系统和对象的状态向前推移,完成系统和对象的某些行为。 ▪ 控制规格说明 控制规格说明从两个方面给出系统的行为。其一是状态—迁移图(STD),它是行为的“顺 序规格说明”。其二是加工激活表(PAT),它是行为的“组合规格说明”,表明当事件激发时