软件工程用图(一)

本文详细介绍了系统流程图和数据流图的概念、组成、绘制步骤及应用。系统流程图用于描绘系统架构,通过图形化符号展示系统各组件间的交互,而数据流图则侧重于描述数据在系统中的流动和处理过程。数据流图包含数据流、加工、数据存储和外部实体等基本元素,并遵循分层结构。在实例分析中,展示了考务处理系统的数据流走向,以及如何逐步细化为顶层图和0层图。通过对数据流图的绘制,可以清晰地理解系统的数据处理逻辑和流程。
摘要由CSDN通过智能技术生成

1.系统流程图

用图形化的符号来记录整个系统和系统各模块的结构,描述了系统各子系统、相关文件和数据之间的关系。记录了整个系统的体系结构。系统流程图主要应用在系统架构阶段,是系统分析员或系统设计师对将要构建系统的一种描述,这种描述以简单图形化的方式给出了系统的整体结构,涉及到系统将要使用的各种部件,如子系统、数据库、磁盘、文件、用户的输入与输出等。

组成:圆角矩形(开始与结束)、矩形(行动方案、普通工作环节)、菱形(判断)、平行四边形(输入输出)、箭头(工作流方向)

例如下图       登录账号判断账号和密码的流程图

tip 系统流程图和程序流程图的区别

 

2.数据流图(DFD)

 1.基本元素

           数据流:每个数据流都应该命名,以反映该数据流的含义
           加工:每个加工应有名字和编号以反映其功能和在DFD中的层次位置。有输入无输出称位          黑洞,输入不足以产生输出称为灰洞。
           数据存储:读,写,修改
           外部实体:存在于软件系统之外的人员或组织,指出系统数据的源和宿

2.数据流图的扩充符号:

          星号(*):表示数据流之间的“与”关系
          加号(+):表示数据流之间的“或”关系
          异或符号

3.数据流图层次结构:层次+编号;(一般控制在7±2的范围内)

4.基本图形元素

画图步骤

 1.1具体步骤

  1.画系统的输入输出:
   系统的输入和输出用典藏图来描述 ,及描述系统从哪些外部实体接收数据,以及系统发送数据到哪些外部实体。顶层图只有一个加工及开发的软件系统 顶层图中的数据流就是系统的输入输出信息定成图中通常没有数据存储。

  2.画系统的内部
     将顶层图的加工分解成若干个加工 并用数据流将这些加工连接起来 使得顶层图中的输入数据经过若干个加工处理后 变换成顶层图的输出数据流 这张图称为零层图 。从一个加工画出一张数据流图的过程 实际上就是对这个加工的分解 。

          1.确定加工。 这里的加工指的是父图中某加工分解而成的子加工,可以采用下面两种方法来确定加工。
                1.根据功能分解来确定加工。一个加工实际 上反映了系统的一种功能,根据功能分解的           原理,可以将一一个复杂的功能分解成若干个较小的功能,每个较小的功能就是分解后的子           加工。这种方去多应用于高层DFD中加工的分解。
               2.根据业务处理流程确定加工。分析父图中待分解的加工的业务处理流程,流程中的每             一步都可能是一 个子加工。特别要注意在业务流程中数据流发生变化或数据流的值发生变化            的地方,应该存在一个加工, 该加工将原数据流(作为该加工的输入数据流)处理成变化后的           数据流(作为该加工的输出数据流)。该方法较多应用于低层DFD中加工的分解,它能描述父             加工中输入数据流到输出数据流之间的加工细节。
          2.确定数据流。 当用户把若干个数据看作一个整体来处理(这些数据一起到达, 一一起加工)时,可以把这些数据看成一一个数据流。通常,实际工作环境中的表单就是一种数据流。在父图中某加工分解而成的子图中,父图中相应加工的输入/输出数据流就是子图边界上的输入/输出数据流。另外,在分解后的子加工之间应增添- 些新的数据流,这些数据流是加工过程中的中间数据(对某子加工输入数据流的改变),它们与所有的子加工一起完成了父图中相应加工的输入数据流到输出数据流的变换。如果某些中间数据需要保存,以备使用,那么可以表示为流向数据存储的数据流。
           3.确定数据存储。 在由父图中某加工分解而成的子图中,如果父图中该加工存在流向数据存储的数据流(写操作),或者存在从数据存储流向该加工的数据流(读操作),则这种数据存储和相关的数据流都画在子图中。在分解的子图中,如果需要保存某些中间数据,以备以后使用,那么可以将这些数据组成一个新的文件。 在自顶向下画分层数据流图时,新数据存储(首次出现的)至少应有一个加工为其写入记录,同时至少存在另一个加工读取该数据存储的记录。注意,对于从父图中继承下来的数据存储,在子图中可能只对其读记录,或者写记录。
          4.确定源和宿。 通常在0层图和其他子图中不必画出源和宿,有时为了提供可读性,可以将顶层图中的源和宿画在0层图中。当同一个外部实体(人或组织)既是系统的源,又是系统的宿时,可以用同一一个图形符号来表示。为了画图的方便,避免图中线的交叉,同一个源或宿可以重复画在DFD的不同位置,以增加可读性,但它们仍代表同一个实体。
3.画加工的内部。 当DFD中存在某个比较复杂的加工时,可以将它分解成一张DFD子图。分解的方法是将该加工看作一一个小系统,该加工的输入/输出数据流就是这个假设的小系统的输入/输出数据流,然后采用画0层图的方法画出该加工的子图。

1.2 画图步骤——人话版

     1.根据题目分析这个系统的外部实体,找出数据流的宿,搞清楚每个数据流的流向画出顶层图

     2.根据刚刚画出的顶层图,把系统的加工分成若干个子加工,这里是关键,一个数据流图画的好不好取决于把加工分的合不合理

     3.画的时候搞清楚有哪些数据流,注意一下数据流该不该存储

现在!我们来做题巩固一下吧!

考务处理系统的功能需求如下。
①对考生送来的报名单进行检查。
②对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站。
③对阅卷站送来的成绩清单进行检查,并根据考试中心指定的合格标准审定合格者。
④制作考生通知单(内含成绩合格/不合格标志)送给考生。
⑤按地区、年龄、文化程度、职业和考试级别等进行成绩分类统计和试题难度分析,产生统计分析表。
部分数据流的组成如下。
报名单=地区+序号+姓名+文化程度+职业+考试级别+通信地址
正式报名单=准考证号+报名单
准考证=地区+序号+姓名+准考证号+考试级别+考场
考生名单={准考证号+考试级别} (其中, {w}表示w重复多次)
考生名册=正式报名单
统计分析表=分类统计表+难度分析表
考生通知单=准考证号+姓名+通信地址+考试级别+考试成绩+合格标志

1.顶层图分析:我们先分析以下题目找出外部实体。分析可知外部实体有:学生,阅卷站,考试中心。(特别说明一下,别把考务处理系统也理解成实体,处理系统要完成我们得数据处理工作,所以考务处理系统是加工)。接下来我们分析每个数据流的走向
           1.报名单:考生–>考务处理系统
            2.准考证:考务处理系统–>考生
           3.考生名单:考务处理系统–>阅卷站
            4.成绩清单:阅卷站–>考务处理系统
           5.合格标准:考试中心–>考务处理系统(这里得好好理解,合格标准是审判合不合格                的依据,也是数据流)
           6.考生通知单:考务处理系统–>考试
           7.统计分析表:考务处理中心–>考试中心(题中没有说清楚该数据流的宿,但是仔细                分析,统计分析表应该是送回给考试中心,供他们进行下次考试的参考准备,所以                宿应该的考试中心)
           8.不合格报名单:考务处理系统–>考生(看到这里别觉得奇怪,题中确实没有这个数                据流。但是仔细想想,我们的系统应该是有容错处理的,考试送上来一张错的报名               单,系统应该退回告诉考生的。注意有提到要检查报名单的)
           9.错误成绩清单:考务处理系统–>阅卷站(同上条,注意考务处理中心要检查阅卷站                送来的成绩清单的)

 

 2.画完顶层图(找动词 ),接下来我们就该分析我们的考务处理系统究竟做了那些工作了(加工–>子加工)。

分析一下我们的考务处理系统为考生提供了啥处理?就登记学生提交的报名单,合格的报名单就登记上,给考生发准考证,不合格的就退回给考生;

给考试中心提供了啥处理?就根据合格标准和成绩清单来统计考生成绩然后生成考生名单和统计分析表和错误成绩清单。

这里再考虑一个问题,我们登记和统计中间产物是啥?我们得形成一个正式得报名单(=考生名单)吧。上述分析中加粗字:动词是加工,名词是数据存储

0层图 

 同样的画出0层图之后,我们两个子加工工作量还是有点杂。我们尽力让我们的每个加工只完成一件事。(记住加工找动词,数据存储找名词哈)。注意加工工作单一的同时,我们还要特别注意的是数据的流向,以及给每个加工标号)。

 

 3.数据字典

 通常包括:(1)数据项(数据的最小组成单位) (2)数据结构 (3)数据流 (4)数据存储 (5)处理过程 五个部分

类比我们现在所用的汉语字典,数据字典是一个存放有数据库所用的有关信息,在数据库设计初期将数据库中的各类数据的描述集合在一起,用于在开发、维护或者其他需要的时候使用。

 数据字典常用:字段,描述,数据类型,约束

以学生表为例

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值