快速学会过程建模之数据流图
来源:互联网 发布:linux snmp协议配置 编辑:程序博客网 时间:2024/05/16 15:50
简介
数据流图是过程建模所使用的主要建模技术。它的建模所使用的基本模型元素有4种:外部实体、过程、数据流和数据存储。
过程建模的简介
过程建模就是通过分析需求获得信息,发现系统的功能及其与外界的交互(外界提供数值输入或者将数据结果提供给外部实体),建立能够实现系统功能的过程分解结构,形成系统的过程模型,用图形描述出来。
1.1外部实体
外部实体的介绍
外部实体是指处于待构建系统之外的人、组织、设备或者其他软件系统,不受系统控制与系统存在数据交互。
所有外部实体构成了外部上下文环境,是软件系统与外部联系的接口,这些接口联合起来定义了软件系统的系统边界。
常见的外部实体
从待构建系统中获取数据或为其提供数据的组织、个人等,如供货方、销售方、顾客、办事人员、其他的软件系统。
外部图形的表示:
有DeMarco-Yourdon (一般用)和 Gane-Sarson
1.2 过程
过程的介绍
过程是指施加于数据的动作或处理行为,它们使数据发生变化,包括被转换、被存储或者被分布,它们由系统或者人工执行。
注意:过程是对数据的处理,这种处理是要产生附加价值的,即进行数据的加工和变换,而不是简单的数据转移。否则这个过程没意义。
过程描述的内容是对数据处理行为的概括,表现为不同层次。
最高层次:将软件系统的功能都描述为一个过程,实现用户期待的所有数据行为。
较高层次:将软件系统中的某项业务处理描述为一个过程,而这项业务处理又会包括很多具体的细节业务。
较低层次:描述用户的一次活动,这项活动具有原子性特征(活动不能或者不适合再划分子活动)。
最低层次:描述的可能仅仅是一个逻辑行为,体现为软件系统的一个命令过程。
过程对行为的这种概括性特征使粗略的过程描述无法满足分析的需求,因此建模者需要把较高层次分解为较低层次来进一步详细的描述系统的具体行为。如果过程的内容已经非常详细和具体,能够直接用于编码,建模者会用为规格说明来描述它的内容逻辑。这种过程称为原始过程或基本过程
过程图形的表示
过程使用“动词”的名称来标识自己,体现自己的功能。这里只体现Gane-Sarson表示法,DeMarco-Yourdon 表示法使用圆形来表示的。
1.3数据流
数据流的介绍
数据流是指数据的运动,它是系统与其环境之间或者系统内两个过程之间经行数据的通信,必须和过程产生关联,它要么是过程的数据输入要么是输出。
数据流图形的表示
DeMarco-Yourdon 和 Gane-Sarson表示发一样
1.4数据存储
数据存储的简介
数据存储是软件系统需要在内部收集、保存,以供日后使用的数据集合。
需要指出的是,数据存储区的数据流入和流出通常表示实际的数据流入流出。因此如果流入和流出存储区的数据流包含与存储区相同的信息,就不用为数据流专门命名,否则要。
数据存储图形的表示
1.5示例
食品订货系统:
2.分层结构
简介
当遇到复杂的系统时也会产生过于复杂的数据图描述,以致难以理解。分而治之的方法。即利用过程具有不同抽象层次表述能力的特点,依据过程的功能分解结构,建立层次的数据流图描述。
2.1 上下文图
数据流图的最高层次,是系统的最高抽象。整个系统抽象为单一过程之后,系统本身成为一个黑盒,此时只有依据系统和外界的所有交互才能精确确定系统功能。
数据存储是系统内部功能,所以在上下文中不会画出它。
如图:
2.2 0层图
它在上下文图的下面一层,需要在一个图中概括系统的所有功能。
0层图通常作为整个系统的功能概述。为了概述整个系统的功能,建立0层图时需要分析需求获取的信息,归纳出系统的主要功能,并将它们描述为几个高层的抽象过程,在0层图中加以描述。有些重要的储存也会在系统中得到表述,但不要太具体。
如食品订货系统:
2.3 N层图
0层土的每个过程都可以分解,以展示更多的细节,被分解的过程交父过程,分解后的叫子图。子图还可以进行分解直到子图都是原始数据流图(上面有介绍)。
在低于0层图的子图上通常不现实外部实体。父过程的输入输出称为子图的接口流,在子图中从空白区域引出。
下图是对上图中接受、传递顾客的食物订单过程的分解:
- 快速学会过程建模之数据流图
- 油田采油生产业务建模之数据流图实践(EA使用入门)
- 我的软考之路(八)——三大原则学会数据流图
- 快速学会3DMax高级建模人物骨骼蒙皮
- 系统分析之五 过程建模
- 数据挖掘之建模过程
- 软件工程之数据流图
- 软件工程之数据流图
- nx二次开发之齿轮快速建模
- [verilog读书笔记]6.数据流建模
- 需求分析之数据流图
- 需求分析之数据流图
- 软考之数据流图
- 软工之数据流图
- DirectShow开发快速入门之二数据流的流动
- DirectShow开发快速入门之数据流的流动
- DirectShow开发快速入门之数据流的流动
- DirectShow开发快速入门之二 -- 数据流的流动
- SpringMVC中Could not obtain transaction-synchronized Session for current thread的解决方案
- Windows下char和wchar_t转换的方法
- 一个小逻辑题的穷举尝试
- 选择排序(汇编实现)
- 使用 iOS 8 Spring Animation API 创建动画
- 快速学会过程建模之数据流图
- android studio 安装PlantUML插件
- Qt之二维绘图
- 整数型加减乘除四则混合运算
- 操作系统引论--操作系统的目标和作用
- 第9周深复制体验1
- ACM第三次练习—1003
- HTTP,TCP,UDP,SOCKET整理
- python 2.x和3.x关于 'module' object has no attribute 'open'的解决办法