【系统架构师】-案例篇(八)数据流图

数据流:数据流是系统中数据的流动,它可以是输入、输出或存储在系统中的数据。
数据处理过程:数据处理过程是对数据进行处理的单元,可以是一个物理设备或软件模块。
数据存储:数据存储是系统中存储数据的单元,可以是一个文件、数据库或内存中的变量。
外部实体:外部实体是与系统进行信息交流的外部机构或个人,它可以是一个用户、另一个系统或传感器等。

1、案例一

某公司拟开发一个商业情报处理系统,使公司能够及时针对市场环境的变化及时调整发展战略,以获取最大的商业利益。项目组经过讨论,决定采用结构化分析和设计方法。在系统分析阶段,为了更好地对情报数据处理流程及其与外部角色的关联进行建模,项目组成员分别给出了自己的设计思路:
(1) 小张提出先构建系统流程图(System Flowcharts),以便更精确地反映系统的业务处理过程及数据的输入和输出。
(2) 小李提出先构建系统数据流图(Data Flow Diagrams),来展现系统的处理过程和定义业务功能边界,并给出了情报分类子系统的0层和1层数据流图,后者如下图所示。

项目组经讨论确定以数据流图作为本阶段的建模手段。工程师老王详细说明了流程图和数据流图之间的区别与联系,并指出了上图所示数据流图中存在的错误。

问题1:

流程图和数据流图是软件系统分析设计中常用的两种手段,请用300字以内文字简要说明流程图与数据流图的含义及其区别,并说明项目组为何确定采用数据流图作为建模手段。

数据流图作为一种图形化工具,用来说明业务处理过程、系统边界内所包含的功能和系统中的数据流。

流程图以图形化的方式展示应用程序从数据输入开始到获得输出为止的逻辑过程,描述处理过程的控制流。

两者的区别主要包括:

(1) 数据流图中的处理过程可并行;流程图在某个时间点只能处于一个处理过程。

(2) 数据流图展现系统的数据流;流程图展现系统的控制流。

(3) 数据流图展现全局的处理过程,过程之间遵循不同的计时标准;流程图中处理过程遵循一致的计时标准。

(4) 数据流图适用于系统分析中的逻辑建模阶段;流程图适用于系统设计中的物理建模阶段

本题项目组为了更好地对情报数据处理流程及其与外部角色的关联进行建模,符合数据流图的应用场景要求,因此,首先构建数据流图以反映数据流向和系统边界。

[问题2]

请分析指出上图所示的数据流图中存在的错误及其原因。

1.jpg

(1) “分类训练”加工:只有输入没有输出,产生数据黑洞;

(2) “分类处理”加工:只有输出没有输入,无中生有;

(3) “规则文件”数据流:外部实体没有经过加工处理,直接到数据存储;

(4) “配置信息”数据流:外部实体之间没有加工处理,存在直接数据流。

数据流图中常见的错误分为两种类型:

一类是语法错误,包括外部实体之间、数据存储之间或外部实体与数据存储之间不经过加工而存在直接数据流;

另一类是逻辑错误,包括数据黑洞(只有输入没有产生输出)、灰洞(输入不足以产生输出)和无输入。

对于复杂系统,一般采用分层数据流图逐步细化系统的内部处理逻辑。0层数据流图是1层数据流图更高级别的抽象。

“分类训练”和“分类处理”加工属于内部加工,

“分类规则”数据流属于内部数据流,抽象为“情报分类子系统”加工。

“样本数据”、“规则文件”和“配置信息”为输入数据流;

“分类结果”为输出数据流。

[问题3]

高质量的数据流图是可读的、内部一致的并能够准确表示系统需求。请用300字以内文字说明在设计DFD高质量三原则

(1) 复杂性最小化原则。DFD分层结构就是把信息划分为小的且相对独立的一大批子集例子,这样就可以单独考查每一个DFD。如果要了解某个过程更加详细的信息,可以跳转到该过程的下一层;如果要知道一个DFD如何与其他DFD相关联,跳转到上一层的DFD进行考查。

(2) 接口最小化原则。接口最小化是复杂性最小化的一种具体规则,在设计模型时,应使得模型中各个元素之间的接口数或连接数最小化。

(3) 数据流一致性原则。一个过程和它的过程分解在数据流内容中是否有差别 是否存在有数据流出但没有相应的数据流入的加工 是否存在有数据流入但没有相应的数据流出的加工。

分层细化数据平衡原则

层间平衡:数据流个数一致,方向一致

图内平衡:有输入无输出的黑洞,有输出无输入的奇迹,输入不足的灰洞

数据流图和数据字典软件需求分析和设计阶段的作用

在分析阶段:

1)数据流图用于界定系统上下文范围和建立业务流程的加工说明,自顶向下对系统进行功能分解;指明数据在系统内移动变换;描述功能及加工规约。

2)数据字典用于建立业务概念有组织的集合,是模型核心库,有组织的系统相关数据元素列表,使涉众对模型中元素有共同的理解。

在设计阶段

结构化设计根据不同的数据流图类别分别做变换和事务映射来初始化系统结构图;

根据数据字典中的数据存储描述来建立数据库存储设计。

2、案例二

某医疗器械公司作为复杂医疗产品的集成商,必须保持高质量部件的及时供应。为了实现这一目标,该公司欲开发一采购系统。系统的主要功能如下。

1. 检查库存水平。采购部门每天检查部件库存量,当特定部件的库存量降至其订货点时,返回低存量部件及库存量。

2. 下达采购订单。采购部门针对低存量部件及库存量提交采购请求,向其供应商(通过供应商文件访问供应商数据)下达采购订单,并存储于采购订单文件中。

3. 交运部件。当供应商提交提单并交运部件时,运输和接收(S/R)部门通过执行以下三步过程接收货物:

(1)验证装运部件。通过访问采购订单并将其与提单进行比较来验证装运的部件,并将提单信息发给S/R职员。如果收货部件项目出现在采购订单和提单上,则已验证的提单和收货部件项目将被送去检验。否则,将S/R职员提交的装运错误信息生成装运错误通知发送给供应商。

(2)检验部件质量。通过访问质量标准来检查装运部件的质量,并将已验证的提单发给检验员。如果部件满足所有质量标准,则将其添加到接受的部件列表用于更新部件库存。如果部件未通过检查,则将检验员创建的缺陷装运信息生成缺陷装运通知发送给供应商。

(3)更新部件库存。库管员根据收到的接受的部件列表添加本次采购数量,与原有库存量累加来更新库存部件中的库存量。标记订单采购完成。

现采用结构化方法对该采购系统进行分析与设计,获得如图1-1所示的顶层图和图1-2所示的0层数据流图。

image.png

E1:供应商    E2:采购部门    E3:检验员    E4:库管员    E5:S/R职员 

image.png

D1:库存表    D2:采购订单表     D3:质量标准表     D4:供应商表 

补齐缺失的数据流

原有部件库存量:D1(库存)——P5(更新部件库存)   

产品送检:    P3(验证装运部件)——P4(校验部件质量)       

装运错误通知:P3(验证装运部件)——E1(供应商)

缺陷装运通知:P4(校验部件质量)——E1(供应商) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宣晨光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值