搞懂:1.数据流图UML2.单代号网络图绘制3.双代号网络图绘制、工作计算法、关键路径法(含例题)

Hello各位,恰好期末有一门软件工程的考试,最后的两道题就是数据流图和关键路径,给了我素材,我搜了一下CSDN发现基本没有例题,一些没接触过的初学者搜到可能看的懵懵的,所以就分享一下
在这里插入图片描述

咳咳好嘞哥。。(干货开始)

一、数据流图

首先要知道数据流的基本符号,这四个在画数据流图时必须要有,如图(a)
在这里插入图片描述
前面三个符号,先不详细解释,下面的例题看完你就知道怎么回事了,主要说一下这个数据流如图(b)
( * ) 表示 “与” (同时存在)
( + )表示 “或” (有一个或者都有)
( ⊕ )表示 “互斥” (只能从中选一个)
在这里插入图片描述
例题:敲黑板!!!这里要细看!!!
话说,从前有座山不是,是有个血汗工厂

工厂里有个采购部每天需要一张订货报表,报表按照零件的编号排序,表中列出所有需要再次订货的零件,对于每个需要再次订货的零件应该列出下述数据:零件编号、零件名称、订货数量、目前价格、主要供应者、次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给订货系统,当某种零件的库存数量少于库存量临界值时就应该再次订货

解题:
🆗题就是这样,咱先来盘一下逻辑,数据流图是由前面那四个基本符号构成的,也就是说,这四个符号我都要有。
①数据的源点和终点:仔细阅读题干,工厂仓库里面零件不够才需要去采购,所以仓库管理员(具体一点)是源点,而采购员是终点
②变换数据的处理:“采购部每天需要一张订货报表” 显然采购部还没有这种报表,所以要有一个用于产生报表的处理,题中还说零件的入库或出库称为事务,事务的后果是改变零件的库存量,然而任何改变数据的操作都算作处理
③数据流:系统把订货报表送给采购部,算作数据流,事务(零件入库出库)需要从仓库到系统
④数据存储:事务的产生和产生报表有先后顺序,但是事务(零件入库出库)不可能立刻处理,需要积累起来,写一个总的,所以要存放一段时间,就需要数据存储

题分析完了,着手画图吧:先画一个基本系统模型
在这里插入图片描述
这毕竟太抽象了,然后我们要继续细化,描绘系统的主要功能
"产生报表"和"处理事务"是订货系统的主要功能,所以要替换一下
此外细化后增加了两个数据存储D1、D2(D:date):D1存储零件的实时信息,D2是每天订货信息存储的区域
数据流:库存清单的存入取出,订货信息的存入取出,我没写上去,因为不好看(同样数据的不同形式)
在处理和数据存储都加了编号,这样的目的是便于引用和追踪
在这里插入图片描述
接下来就是对于功能的进一步细化,转动大脑:当一个事务(零件的入库出库)发生时必须先接收它,然后按照零件的变化去更新库存清单,如果更新后的库存量少于库存量临界值,则再次订货,也就是需要处理订货,因此把"处理事务"这个功能分解为下述三个步骤这是合理的:“接收事务”、“更新库存清单”、“处理订货”
在这里插入图片描述
到这里就结束了,为什么不进一步分解"产生报表"呢这个功能呢?
因为订货报表中需要的数据在存储的订货信息中全都有了,产生报表不过是按照一定顺序排列这些信息,再按照一定格式打印出来,然而这些考虑纯属具体实现的细节,不应该在数据流图中表现出来。
同理对于"接收事务"或"更新库存清单"等功能也不必要进一步细化。

强忍住插入表情包的欲望,直到讲完数据流图,┭┮﹏┭┮
在这里插入图片描述
网络图:网络图由箭线和节点组成,用来表示工作流程的有向、有序的网络图形

二、单代号网络图绘制

题为:请按图绘制单代号网络图
在这里插入图片描述
🆗首先我们要看有几个工作,从A到 I 是九个所以要画九个节点,也就是九个矩形,然后看紧前工作(以一个工作起点事件作为终点事件的工作)
例如B的紧前是A,就在A与B之间画一个从A指向B的箭头
画出开始和结束节点,最后填上时间,很简单
在这里插入图片描述

三、双代号网络图绘制、工作计算法、关键路径法

(1)双代号网络图绘制

题是这样的:
让你画一个双代号网络图,并求出关键路径(这个有点复杂我一步步来)
全都用大白话说了,反正你最后会就行了
在这里插入图片描述
首先看到A和B没有紧前工作,所以先画A和B,顺便把时间标上
在这里插入图片描述
接下来C、D、E,紧前工作是A所以起点都是A
在这里插入图片描述
然后到F,它的紧前是B和E,所以可以直接表示为下图在这里插入图片描述
G的紧前是D、C、F但是有个问题,每个箭头都要有活动以及活动时间,我这个G标哪个?
在这里插入图片描述
我们先把最后一个活动H解决,再来搞它,H的紧前是D
在这里插入图片描述
这样排除了一个,可是现在G还是不确定,我们可以这样
在这里插入图片描述
这样G倒是确定了,可是G的紧前是D、C、F啊,你这不把D整丢了么
这个时候要引入一个概念
有虚活动:为了表达工作之间的逻辑关系,双代号网络图有时不得不用一个虚的工作表示,这个虚的工作实际上不存在,它的时间消耗为零。
在这里插入图片描述
这样就可以了,最后结束节点必须是一个,合一下,美化一下,OK,双代号网络图绘制结束
在这里插入图片描述

(2)工作计算法

依旧是上面那道题我们继续,首先看图
ES:最早开始时间 ES=MAX{紧前工作的EF}
EF:最早结束时间 EF=ES+工作延续时间t
LS:最迟开始时间 LS=LF-工作延续时间t
LF:最迟结束时间 LF=MIN{紧后工作的LS}
TF:总时差 TF=LF-EF=LS-ES
FF:自由时差 min{ES(紧后工作)}-ES-T和FF=LF-EF
哈哈哈哈别懵,这就是公式,往下看边做题我边说咋用
在这里插入图片描述
第一步写ES:起始工作ES(没有紧前工作的)为0,其他工作顺箭头相加,箭头相碰取最大值
我举几个例子
1:A和B的ES就是0
2:D的ES(2) = A的ES(0)+A的工作时间(2)
3:H的ES(4) = D的ES(2)+D的工作时间(2)
4:F的ES(4) = E的ES(2)+E的工作时间(2)
为什么不是B的ES(0)+B的工作时间(1),因为箭头相碰取最大
在这里插入图片描述
第二步写EF:EF=ES+工作延续时间t
注意:有虚活动没有工作时间,所以EF=ES
在这里插入图片描述
第三步写LF:要从结束一端开始算起,并且与结束节点直接相连的活动LF=EF,其他工作逆箭头相减,箭头相碰取最小值
举例说明
1:H和G的LF,如果连接结束节点的活动只有一个,EF的值直接赋给LF,如果有两个活动,如本题,要选择两个活动中最大的EF赋给LF
2:C、F和有虚活动的LF(8) = G的LF(10)-G的工作时间(2)
3:D的LF(8) = 有虚活动的LF(8) - 有虚活动的工作时间(0)
为什么不是H的有虚活动(10)-H的工作时间(1),因为箭头相碰取最小
4:E的LF(4) = F的LF(8)-F的工作时间(4)
在这里插入图片描述
第四步写LS:LS=LF-工作延续时间 t
在这里插入图片描述
第五步写TF:TF=LF-EF=LS-ES
在这里插入图片描述
第六步写FF:FF=前一个的ES-现在的EF和FF=LF-EF
举例:
1:H和G相连于结束节点,用后面公式。
H的FF(5) = H的LF(10) - H的EF(5)
G的FF(0) = G的LF(10) - G的EF(10)
2:正常的用前面的公式
D的FF(0) = H的ES(4) - D的EF(4) = 有虚活动ES(4) - D的EF(4)
3:
A的FF(0) = D的ES(2) - A的EF(2)
在这里插入图片描述

(2)关键路径法

就是TF = 0的,关键路径最少要有一条,这道题就是
A→E→F→G

呼~终于完事了
在这里插入图片描述
午饭晚饭还没吃呢,就这样,bye~

  • 26
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值