AI总结
笔记总结与重点分析
笔记总结
本笔记系统阐述了过程建模的核心概念与方法,重点讲解了数据流图(DFD)的构成要素、层次结构及验证规则。详细说明了DFD的四个基本元素(数据加工过程、外部实体、数据流、数据存储)的定义特征与建模规范,分析了上下文图、0层图与N层图的层次分解关系。同时介绍了微规格说明的实现工具(结构化英语/伪码、行为图、决策表、决策树)和数据字典的两种结构化描述方式(词条描述与定义式)。
重点/易考点分析 (名词解释)
什么是数据流图中的数据加工过程?
数据加工过程是指施加于数据的动作或行为,使得数据被转换、存储或分布。它关注数据变化的效果而非执行者,可能表现为不同抽象层次,其中可直接编码处理的称为原始过程(Primitive Process)。
数据流图中的外部实体包括哪些特征?
外部实体是指处于待建系统之外且不受系统控制的人、组织、设备或其他系统,需与系统存在数据交互(作为数据源或目的地)。所有外部实体共同构成系统的外部上下文环境。
上下文图的主要特点是什么?
上下文图将整个系统视为单个过程(编号为0),展示所有交互的外部实体及输入/输出数据流,不包含数据存储实例。用于定义系统边界和描述应用环境。
0层图与上下文图的关系是什么?
0层图是上下文图中单一过程的首次功能分解,作为系统功能概图,需保持简洁清晰。它位于上下文图下一层,描述系统功能的抽象程度需根据复杂度调整。
数据字典的定义式包含哪些符号及其含义?
= 表示"包含";+ 表示序列结构;() 表示内容可选;[] 表示多选一;n{}m 表示循环次数;@ 标识数据存储关键字;** 添加注释。例如:Phone_No.=(Area_No.)+Local_No.
决策表的组成结构包括哪些部分?
决策表由条件声明(决策参考变量)、条件选项(变量取值)、行动声明(可能采取的动作)和行动选项(动作触发条件)四部分组成,通过规则列描述条件与行动的对应关系。
什么是DFD中的原始过程?
原始过程(Primitive Process)指内容足够具体、可直接进行编码处理的数据加工过程,又称为基本过程(Elementary Process),是DFD分解的最终子过程。
数据流图构建规则的核心要求是什么?
过程必须有输入输出且数据集存在差异;数据流必须关联过程(作为输入/输出);所有对象需唯一命名(过程用动词,其他用名词)。
微规格说明的实现方式有哪些?
包括结构化英语/伪码(采用顺序/条件/循环结构)、行为图(图示化逻辑结构)、决策表(条件-动作矩阵)和决策树(树形条件分支)。
数据字典的词条描述包含哪些属性?
包括名称、别名、使用地点、使用方法(输入/输出/存储角色)、使用范围、内容描述、单位/格式等七个结构化属性字段。
(我还没有掌握有关知识,此回答为大模型自动生成)
过程建模
过程建模概述
结构化建模
- 过程建模,数据建模
过程建模是结构化建模的核心方法
- 系统是过程的集合
- 过程可以被分解为子过程
- 最终的子过程可以被映射为计算实体——函数
- 所有的系统都是由过程构建的
- 用图形的方式建立和描述良好的过程模型
主要思想
- 用图形的方式建立和描述良好的过程模型
数据流图DFD
数据流图的元素
数据加工过程
- 过程是指施加于数据的动作或者行为,它们使得数据发生变化,包括被转换(transformed)、被存储(stored)或者被分布(distributed)
- 可能是由软件系统控制的,也可能是由人工执行的,它重在数据发生变化的效果而不是其执行者
- 可能会表现为不同的抽象层次
- 内容足够细节和具体,能够对其直接进行“编码”处理的过程被称为原始过程(Primitive Process,又称为基本过程Elementary Process)
外部实体
- 外部实体是指处于待构建系统之外的人、组织、设备或者其他软件系统,它们不受系统的控制,开发者不能以任何方式操纵它们
- 需要进行建模的外部实体是那些和待构建的软件系统之间存在着数据交互的外部实体,它们是待构建系统的数据源或者数据目的地
- 所有的外部实体联合起来构成了软件系统的外部上下文环境
数据流
- 数据流是指数据的运动,它是系统与其环境之间或者系统内两个过程之间的通信形式
- 数据流可以分割和组合
- 数据字典和实体关系图ERD通常被用来描述DFD的详细内容
数据存储
- 数据存储是软件系统需要在内部收集、保存,以供日后使用的数据集合
- 数据存储的详细内容通常也是用数据字典和ERD来进行描述的
构建规则
- 过程是对数据的处理,必须有输入,也必须有输出,而且输入数据集和输出数据集应该存在差异
- 数据流是必须和过程产生关联的,它要么是过程的数据输入,要么是过程的数据输出
- DFD当中所有的对象都应该有一个可以唯一标识自己的名称
- 过程使用动词
- 外部实体、数据流和数据存储使用名词
层次结构
- 依据所含过程的不同抽象程度,DFD可以在不同的抽象层次上进行系统的描述
- 一个比较抽象的过程可以被展开为一个子过程更加具体的DFD图
- DFD的层次结构
- 上下文图
- 0层图
- N层图(N>0)
上下文图
- 将整个系统看做是一个过程,这个过程实现系统的所有功能 ,是系统功能的最高抽象
- 上下文图中存在且仅存在一个过程,表示整个系统。这个单一的过程通常编号为0
- 上下文图中需要表示出所有和系统交互的外部实体,并描述交互的数据流,包括系统输入和系统输出
- 上下文图中不会出现数据存储实例
- 它非常适合于描述系统的应用环境、定义系统的边界
0层图(顶层图)
- 位于上下文图下面一层,是上下文图中单一过程的细节描述,是对该单一过程的第一次功能分解
- 是整个系统的功能概图
- 0层图应该被描述的简洁、清晰,需求工程师要根据系统的复杂度掌握0层图中过程的抽象程度
N层图
- 对0层图的过程分解产生的子图称为1层图,对N层图的过程分解后产生的子图称为N+1层图(N>0) ,过程分解是可以持续进行的,直至最终产生的子图都是原始DFD图
- 原始DFD图可以进一步展开为
- 微规格说明
- 数据字典
- 在低于0层图的子图上通常不显示外部实体
层次结构的建立
- 创建上下文图
- 发现并建立DFD片断
- 根据DFD片断组合产生0层图;
- 对0层图的过程进行功能分解,产生N层图
DFD的验证
- 验证DFD的语法
- 确保DFD中不会发生语法错误
- 验证DFD的结构
- 验证DFD层次结构之间的一致性
- 验证DFD层次结构说明的完备性
- 验证DFD的语义
- 确保DFD所说明内容的正确性和准确性
微规格说明
- 目的:细化原始DFD图
- 方式
- 结构化英语/伪码
- 行为图
- 决策表
- 决策树
行为图
结构化英语/伪码
- 叙述上采用了结构化程序语言的三种控制结构:顺序、条件决策和循环;
- 使用了一些类似于结构化程序语言关键字的词语来表明叙述的逻辑,例如
IF
、THEN
、ELSE
、DO
、DO WHILE
、DO UNTIL
等等; - 在格式上,使用和结构化程序语言相同的缩进方式来表明叙述的结构。
- 简短语句 ,使用名词和动词,避免使用容易产生歧义的形容词和副词
READ customer account-type and summary of customer monthly balances
SELECT CASE
CASE 1 (account-type is NOW)
BEGIN IF
IF daily-balance < 300 for any given day
THEN set service-charge to $5
ELSE set service-charge to $0
END IF
CASE 2 (account-type is REGULAR)
BEGIN IF
IF daily-balance < 100 for any given day
THEN set service-charge to greater of $3 or $.20 times number-checks
ELSE set service-charge to $0
END IF
END CASE
END SELECT
行为图
行为图是结构化英语的一种特殊表达方式 ,用特定的图示来表示过程的逻辑结构
决策表
- 条件声明是进行决策时需要参考的变量列表
- 条件选项是那些变量可能的取值
- 动作声明是决策后可能采取的动作
- 动作选项表明那些动作会在怎样的条件下发生
决策表规则
条件和行动 | 规则 |
---|---|
条件声明(Condition Statement) | 条件选项(Condition Entry) |
行动声明(Action Statement) | 行动选项(Action Entry) |
决策表示例
条件和行动 | 规则 | |||
---|---|---|---|---|
account-type | NOW | NOW | REGULAR | REGULAR |
daily-balance | < 300 | =300 | < 100 | =100 |
set service-charge to $5 | X | |||
set service-charge to $0 | X | X | ||
set service-charge to greater of $3 or $.20 times number-checks | X |
决策树
通常是一颗平放的树,树根在左边,树枝从左向右展开。树枝上是有关条件和行动的描述
数据字典
数据字典以结构化方式定义了在建模过程中涉及到的所有数据信息、控制信息。
它是当前系统的软件词典,提供用户和软件人员的概念解释,也提供在系统开发过程中各种有关数据和控制的描述信息,使得系统所有的相关人员对信息有共同的、一致的理解。
- 常用方式
- 词条描述
- 定义式
词条描述
词条描述为每个数据元素组织描述信息
属性 | 描述 |
---|---|
名称 | 数据元素的原始名称 |
别名 | 数据元素的其他名称 |
使用地点 | 会使用该数据元素的过程 |
使用方法 | 该数据元素扮演的角色(输入流、输出流或者数据存储等) |
使用范围 | 该数据元素存在的范围 |
描述 | 对数据元素内容的描述 |
单位/格式 | 数据元素的数据类型,可能事先设置的取值 |
词条描述示例
属性 | 描述 |
---|---|
名称 | telephone number |
别名 | phone number, number |
使用地点和方法 | read-phone-number (input) |
描述 | telephone no. = [ local extension | outside no. | 0 ] local extension = 3{0-9}3 outside no. = 9 + [ service code | domestic no. ] service code = [ 110 | 120 | …] domestic no. = (area code ) + local number area code = 3{0-9}4 local number= 8{0-9}8 |
格式 | alphanumeric data |
定义式
定义式要求对数据元素(尤其是其结构)的描述要精确、严格和明确
符号 | 含义 | 示例 |
---|---|---|
= | 包含,由…构成 | Name=first_name+last_name |
+ | 指明序列结构 | Name=first_name+last_name |
() | 内容可选 | Phone_No.=(Area_No.)+Local_No. |
[] | 内容多选一 | Number=[0 |
分割[]内部的多个选项 | Area_No=3{Number}4 | |
n{}m | 循环,最少n次,最多m次 | Area_No=3{Number}4 |
@ | 数据存储的标识符(关键字) | Student=@ID+Name+... |
** | 注释 | Area_No=3{Number}4**区号为3到4位数字 |
定义 | 说明 |
---|---|
telephone no. = [ local extension | outside no. |
local extension = 3{0-9}3 | 内线号码是3位数字 |
outside no. = 9 + [ service code | domestic no. ] | 外线要先拨9,然后再拨特服号码或普通电话号码 |
service code = [ 110 | 120 | …] | 特服号码有110、120、… |
domestic no. = (area code ) + local number | 普通电话号码为可选的区号加本地号 |
area code = 3{0-9}4 | 区号是3到4位数字 |
local number= 8{0-9}8 | 本地号是8位数字 |