细数软件工程各阶段必不可少的那些图流程图数据流

软件工程中规定,软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成,每一个时期又进一步划分为若干个阶段。

软件定义时期包括问题定义、可行性研究、需求分析三个阶段。

软件开发时期包括总体设计、详细设计、编码和单元测试、综合测试四个阶段。

软件维护时期只包括软件维护这一个阶段。

本文旨在说明在软件生命周期不同阶段的各种图的含义与使用。

二、可行性研究2.1系统流程图

系统流程图是概括地描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形式描绘组成系统的每个部件(程序、文档、数据库、人工过程等)。系统流程图表达的数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。

符号

当以概括的方式抽象的描绘一个实际系统时,仅仅使用图2.1中列出的基本符号就足够了。当需要更具体地描绘一个物理系统时还需要使用图2.2中列出的系统符号,利用这些符号可以把一个广义的输入输出操作具体化为读写存储在特殊设备上的文件(或数据库),把抽象处理具体化为特定的程序或手工操作等。

分层

面对复杂的系统时,一个比较好的方法是分层次地描绘这个系统。首先用一张高层次的系统流程图描绘系统总体概貌,表明系统的关键功能。然后分别把每个关键功能扩展到适当的详细程度,画在单独的一页纸上。这种分层次的描绘方法便于阅读者按从抽象到具体的过程逐步深入地了解一个复杂的系统。

2.2数据流图

数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。数据流图是系统逻辑功能的图形表示,即使不是专业的计算机技术人员也容易理解它,因此是分析员与用户之间极好的通信工具。此外,设计数据流图时只需要考虑系统必须完成的基本逻辑功能,完全不需要考虑样具体的实现这些功能,所以它也是今后进行软件设计的很好的出发点。

三、需求分析3.1实体-联系图

为了把用户的数据要求清楚、准确地描述出来,系统分析员通常建立一个概念性的数据模型(也称为信息模型)。概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型。它描述了从用户角度看到的数据,它反映了用户的现实环境,而且与在软件系统中的实现方法无关。数据模型中包含3种相互关联的信息:数据对象、数据对象的属性及数据对象彼此间相互连接的关系。

通常,使用实体-联系图(entity-relationshipdiagram)来建立数据模型。可以把实体-联系图简称为ER图,相应地可把用ER图描绘的数据模型称为ER模型。

3.2状态转换图

在需求分析过程中应该建立起软件系统的行为模型。状态转换图(简称为状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外,状态图还指明了作为特定事件的结果系统将做哪些动作(例如,处理数据)。

状态

状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。系统对事件的响应,既可以是做一个(或一系列)动作,也可以是仅仅改变系统本身的状态,还可以是既改变状态又做动作。

在状态图中定义的状态主要有:初态(即初始状态)、终态(即最终状态)和中间状态。在一张状态图中只能有一个初态,而终态则可以有0至多个。

状态图既可以表示系统循环运行过程,也可以表示系统单程生命期。当描绘循环运行过程时,通常并不关心循环是怎样启动的。当描绘单程生命期时,需要标明初始状态(系统启动时进入初始状态)和最终状态(系统运行结束时到达最终状态)。

事件

在状态图中,初态用实心圆表示,终态用一对同心圆(内圆为实心圆)表示。中间状态用圆角矩形表示,可以用两条水平横线把它分成上、中、下3个部分。上面部分为状态的名称,这部分是必须有的;中间部分为状态变量的名字和值,这部分是可选的;下面部分是活动表,这部分也是可选的。

活动表的语法格式如下:

事件名(参数表)/动作表达式

其中,“事件名”可以是任何事件的名称。在活动表中经常使用下述3种标准事件:entry,exit和do。entry事件指定进入该状态的动作,exit事件指定退出该状态的动作,而do事件则指定在该状态下的动作。需要时可以为事件指定参数表。活动表中的动作表达式描述应做的具体动作。

状态图中两个状态之间带箭头的连线称为状态转换,箭头指明了转换方向。状态变迁通常是由事件触发的,在这种情况下应在表示状态转换的箭头线上标出触发转换的事件表达式;如果在箭头线上未标明事件,则表示在源状态的内部活动执行完之后自动触发转换。

事件表达式的语法如下:

事件说明[守卫条件]/动作表达式

其中,事件说明的语法为:事件名(参数表)。

守卫条件是一个布尔表达式。如果同时使用事件说明和守卫条件,则当且仅当事件发生且布尔表达式为真时,状态转换才发生。如果只有守卫条件没有事件说明,则只要守卫条件为真,状态转换就发生。

动作表达式是一个过程表达式,当状态转换开始时执行该表达式。

图3.3给出了状态图中使用的主要符号。

3.3层次方框图

层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不能再分割的元素)。

3.4Warnier图

法国计算机科学家Warnier提出了表示信息层次结构的另外一种图形工具—Warnier图。和层次方框图类似,Warnier图也用树形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段。

用Warnier图可以表明信息的逻辑组织,也就是说,它可以指出一类信息或一个信息元素是重复出现的,也可以表示特定信息在某一类信息中是有条件地出现的。因为重复和条件约束是说明软件处理过程的基础,所以很容易把Warnier图转变成软件设计的工具。

图中花括号用来区分数据结构的层次,在一个花括号内的所有名字都属于同一类信息;异或符号(⊕)表明一类信息或一个数据元素在一定条件下才出现,而且在这个符号上、下方的两个名字所代表的数据只能出现一个;在一个名字下面(或右边)的圆括号中的数字指明了这个名字代表的信息类(或元素)在这个数据结构中重复出现的次数。(例如P1种、P2种)

3.5IPO图

IPO图是输入、处理、输出图的简称,它是由美国IBM公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。

IPO图使用的基本符号既少又简单,因此很容易学会使用这种图形工具。它的基本形式是在左边的框中列出有关的输入数据,在中间的框内列出主要的处理,在右边的框内列出产生的输出数据。处理框中列出处理的次序暗示了执行的顺序,但是用这些基本符号还不足以精确描述执行处理的详细情况。在IPO图中还用类似向量符号的粗大箭头清楚地指出数据通信的情况。

四、总体设计4.1层次图

层次图用来描绘软件的层次结构。层次图中的一个矩形框代表一个模块,方框间的连线表示调用关系而不像层次方框图那样表示组成关系。

4.2HIPO图

HIPO图是美国IBM公司发明的“层次图加输入/处理/输出图”的英文缩写。为了能使HIPO图具有可追踪性,在H图(层次图)里除了最顶层的方框之外,每个方框都加了编号。

4.3结构图

Yourdon提出的结构图是进行软件结构设计的另一个有力工具。结构图和层次图类似,也是描绘软件结构的图形工具,图中一个方框代表一个模块,框内注明模块的名字或主要功能;方框之间的箭头(或直线)表示模块的调用关系。

在结构图中通常还用带注释的箭头表示模块调用过程中来回传递的信息。如果希望进一步标明传递的信息是数据还是控制信息,则可以利用注释箭头尾部的形状来区分:尾部是空心圆表示传递的是数据,实心圆表示传递的是控制信息。

五、详细设计5.1程序流程图

程序流程图又称为程序框图,它是历史最悠久、使用最广泛的描述过程设计的方法,然而它也是用得最混乱的一种方法。

从20世纪40年代末到70年代中期,程序流程图一直是软件设计的主要工具。它的主要优点是对控制流程的描绘很直观,便于初学者掌握。由于程序流程图历史悠久,为最广泛的人所熟悉,尽管它有种种缺点,许多人建议停止使用它,但至今仍在广泛使用着。不过总的趋势是越来越多的人不再使用程序流程图了。

程序流程图的主要缺点如下。

程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。

程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。

程序流程图不易表示数据结构。

5.2盒图

出于要有一种不允许违背结构程序设计精神的图形工具的考虑,Nassi和Shneiderman提出了盒图,又称为N-S图。它有下述特点。

功能域(即,一个特定控制结构的作用域)明确,可以从盒图上一眼就看出来。

不可能任意转移控制。

很容易确定局部和全程数据的作用域。

很容易表现嵌套关系,也可以表示模块的层次结构。

PAD图是问题分析图(problemanalysisdiagram)的英文缩写,自1973年由日本日立公司发明以后,已得到一定程度的推广。它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。

优点

PAD图的主要优点如下:

使用表示结构化控制结构的PAD符号所设计出来的程序必然是结构化程序。

PAD图所描绘的程序结构十分清晰。图中最左面的竖线是程序的主线,即第一层结构。随着程序层次的增加,PAD图逐渐向右延伸,每增加一个层次,图形向右扩展一条竖线。PAD图中竖线的总条数就是程序的层次数。

用PAD图表现程序逻辑,易读、易懂、易记。PAD图是二维树形结构的图形,程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点。

容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成,从而可省去人工编码的工作,有利于提高软件可靠性和软件生产率。

即可用于表示程序逻辑,也可用于描绘数据结构。

PAD图的符号支持自顶向下、逐步求精方法的使用。开始时设计者可以定义一个抽象的程序,随着设计工作的深入而使用def符号逐步增加细节,直至完成详细设计。

5.4判定表

判定表能够清晰地表示复杂的条件组合与应做的动作之间的对应关系。

判定表由4部分组成,左上部分列出所有条件,左下部是所有可能做的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。判定表右半部的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。

5.5判定树

判定表虽然能清晰地表示复杂的条件组合与应做的动作之间的对应关系,但其含义却不是一眼就能看出来的。

判定树是判定表的变种,它也能清晰地表示复杂的条件组合与应做的动作之间的对应关系.

六、后记

本文简要描述了软件工程中经常用到的一些图,其实还有很多图没有介绍到,比如UML(标准图、类图)等,感兴趣的小伙伴可以自行学习。

Rust语言2020调查报告发布:Rust太难,生命周期更难

2020-12-18

Eclipse4.18稳定版发布

每年投入100万美元,CloudLinux团队宣布将构建稳定版CentOS分支

THE END
1.数据流图也成为数据流程图,是一种便于用户理解和()系统数据流程的...【单选题】数据流程罔(DFD图)是 A. 软件概要设计的工具 B. 软件详细设计的工具 C. 结构化方法的需求分析工具 D. 面向对象方法的需求分析工具 查看完整题目与答案 【多选题】数据流图是用于软件需求分析的工具,下列元素()是基本元素。 A. 数据流 B. 加工 C. 数据存储 D. 外部实体 ...https://www.shuashuati.com/ti/ff75b5dfb66343f7975603e90f4e5966.html?fm=bdd6b0efd897b619e4bae0d7d1ed1b3bcb
2.汽车租赁系统数据流图流程图模板汽车租赁系统数据流图 2.1租车 客户信息表 租车信息 汽车信息表 汽车信息 管理员信息 4.2删除租车单 注册的客户信息 1登陆 租车单 4.1修改租车单 2.2还车 管理员 新的汽车信息 1.1注册 2.2增加和删除客户信息 客户 5修改个人信息 3.2增加和删除汽车信息https://www.processon.com/view/5e9db5a35653bb6efc5e16fc
3.数据流程图和业务流程图有什么区别与联系数据流程图和业务流程图的区别通常可以从描述对象、常用符号、功能作用和绘制过程四个角度梳理。 1、描述对象不同 数据流程图:数据流程图有抽象性(将具体的组织机构、工作场所、物质流去掉,只剩下信息和数据存储、流动、使用及加工情况)和概括性(把系统对各种业务处理的过程联系起来考虑,形成一个总体...https://www.liuchengtu.com/tutorial/shujuyewu.html/
1.数据流图和数据流程图的区别51CTO博客数据流图和数据流程图的区别 一、数据流图 数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。https://blog.51cto.com/u_15084039/5540954
2.数据流图的概念和用途数据流图和流程图的区别在实际应用中,数据流图和流程图可以相互补充,根据具体的需求选择合适的工具来描述系统.数据流图和流程图的结合使用,可以更全面地呈现系统的功能,流程和数据流动,有助于系统分析与设计的进行. 数据流图是一种用于描述系统中数据流动和处理过程的图形化工具,它强调数据的转换和交互,并在系统分析与设计中发挥重要作用....https://www.juhe.cn/news/index/id/8124
3.车辆管理系统数据流图1数据流图的画法 数据流图也称为数据流程图date flow diagram , DFD,是一种便于用户理解和分析系统数据流程的图形工具,他摆脱了系统和具体内容,精确的在逻辑上描述系统的功能、输入、输出和数据存储等,是系统逻辑模型的重要组成部分。 数据流图的基本组成成分 ...https://www.zboao.com/cgal/9154.html
4.数据流图和流程图有什么区别?数据流程图数据流图和流程图是两种不同的图形表示方法,用于描述系统、程序或业务流程。它们的主要区别在于它们所关注的焦点和目的。 **数据流图** 主要关注数据在系统中的流动和处理过程。它用于描述数据在系统中的来...https://cloud.tencent.com/developer/information/%E6%95%B0%E6%8D%AE%E6%B5%81%E5%9B%BE%E5%92%8C%E6%B5%81%E7%A8%8B%E5%9B%BE%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB%EF%BC%9F-salon
5.数据流程图练习题.ppt系统分析流程 银行活期存款业务(顶层图)实例 分解图实例 绘制销售过程的数据流图 用户将订货单交某企业的业务经理,经检验后,对不合格的订单由用户重新填写,合格的订单交仓库作出库处理:查阅库存台帐,若有货则向用户开票发货,否则,通知采购员订购。 数据流图 题例 库存管理业务 某仓库管理系统按以下步骤进行信息处理...https://mip.book118.com/html/2019/0116/5102003100002002.shtm
6.分分钟让你了解什么是数据流程图数据流程图符号 数据流程图有4个基本的符号,加工,数据存储,外部实体和数据流。 加工:加工描述了输入数据流到输出数据之间的变换,也就是输入数据流经过什么处理后变成了输出数据。每个加工都有一个名字和编号。编号能反映该加工位于分层的数据流图的哪个层次和哪张图中,能够看出它是由哪个加工分解出来的子加工。 https://www.edrawsoft.cn/what-is-data-flow-diagram/
7....A.程序流程图PAD图方框图和伪码B.数据流程图PDAA.软件结构图 B.方框图 C.数据流图(DFD图) D.程序流程图 点击查看答案 第6题 在程序的描述与分析中,用以指明数据来源、数据流向和数据处理的辅助图形是 ()。A.瀑布模型图B.数据 在程序的描述与分析中,用以指明数据来源、数据流向和数据处理的辅助图形是 ()。 A.瀑布模型图 B.数据流程图 C.数据结构图...https://www.educity.cn/souti/BF0CB93E.html
8.软件工程期末复习知识点+大题详解(ER图数据流图N简介:【软件工程期末复习】知识点+大题详解(E-R图、数据流图、N-S盒图、状态图、活动图、用例图...) 5.活动图 (1)基本符号 和状态图类似,初态用实心表示,终态用环形表示,圆角矩形代表活动,菱形代表分支,横线黑线代表并发。 可以参考这张图,更为直观 (...https://developer.aliyun.com/article/1268313
9.软件工程—精选习题集(含参考答案)总复习60道简答题?软件重用也叫软件再用或复用,是指同一个软件部分不作修改或稍加改动就多次重复使用。?广义地说,软件重用可分为以下3个层次:(1) 知识重用(2) 方法和标准的重用(3) 软件成分的重用23、数字字典(Digital Dictionary)答:数据字典是关于数据的信息的集合, 也就是对数据流图中包含的所有元素的定义的集合。https://www.jianshu.com/p/6875e17271d0
10.分层数据流图示例——教材购销管理系统此外,数据字典作为模型的核心,包含了所有数据的描述,包括数据项、数据流、数据存储和数据结构。它提供了对数据流图中数据的详细解释,帮助分析人员理解数据的意义和使用。 在结构化设计阶段,会基于数据流图映射出软件体系结构,通过改进初始结构图,优化系统模块划分,确保每个模块具有单一职责,便于实现和维护。这一过程涉及...https://download.csdn.net/download/weixin_42193786/17271250
11.软件工程期末复习知识点+大题详解(ER图数据流图N【软件工程期末复习】知识点+大题详解(E-R图、数据流图、N-S盒图、状态图、活动图、用例图...)http://www.wityx.com/post/206054_1_1.html
12.美团点评2018秋招前端测评分享28. 数据流图和程序流程图的区别是(D) A. 一般在数据流图中和程序流程图中,都能看出加工的执行次序 B. 数据流图适合描述系统中某个加工的执行细节,而程序流程图适合宏观地分析一个组织的业务概况 C. 数据流图就是传统意义上的程序流程图 D. 数据流图中的箭头是数据流、程序流程图中的箭头是控制流 ...https://www.nowcoder.com/discuss/79279
13.(转)业务流程图与数据流程图的比较某个用户的其中一个答卷或删除某种系统试卷。 2、流程图:业务流程图(TransactionFlowDiagram,TFD):业务流程图是一种描述系统内各单位、人员之间业务关系、作业顺序和管理信息...FlowDiagram,DFD):数据流程图描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图只没有任何具体的物理部件,它只是描绘数据...https://www.pianshen.com/article/652887611/
14.软件工程软件工程中应用的几种图辨析:系统流程图数据流图...2.数据流图 3.数据字典 4.E-R图 5.状态转换图: 6.层次方框图: 7.Warnier图 8.IPO图: 9.层次图: 10.HIPO图:层次图加输入/处理/输出图 11.结构图: 12.程序流程图: 13.盒图:(又称为N-S图) 14.PAD图(problem analysis diagram)问题分析图: 15.判定表: 16.判定树: 17.面向数据结构的设计方法(...https://www.liuchuo.net/?p=1848
15.数据流程图和程序流程图的区别有哪些?数据流程图从数据的角度出发,描述数据在系统中的流动和转换过程,强调数据的输入、输出和处理。 程序流程图从程序执行的角度出发,描述程序中各个步骤的执行顺序、判断条件和控制流程。 (3)表达方式不同 数据流程图使用不同的图形符号表示数据流、过程和存储,例如箭头表示数据流、圆形表示过程、矩形表示存储。 https://boardmix.cn/article/program-flowchart-vs-data-flowchart/
16.如何画数据流图?DFD中的所有过程都转到另一个过程或数据存储。 数据流图可以通过使用级别和层来逐步深入了解更多细节,从而对特定部分进行归零。DFD级别编号为0、1或2,有时甚至达到3级或更高级别。必要的详细程度取决于您要完成的工作范围。 DFD级别0也称为上下文图。这是对要分析或建模的整个系统或流程的基本概述。它被设计为概览...https://www.360doc.cn/article/65293339_920403314.html