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

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

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

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

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

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

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

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

符号

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

分层

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

2.2 数据流图

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

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

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

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

符号

ER 图中包含了实体、关系和属性 3 种基本成分,通常用矩形框代表实体,用连接相关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,并用直线把实体(或关系)与其属性连接起来。

3.2 状态转换图

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

状态

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

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

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

事件

事件是在某个特定时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象。例如,内部时钟表明某个规定的时间段已经过去,用户移动或单击鼠标等都是事件。简而言之,事件就是引起系统做动作或(和)转换状态的控制信息。

符号

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

活动表的语法格式如下:

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

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

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

事件表达式的语法如下:

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

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

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

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

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

3.3 层次方框图

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

3.4 Warnier图

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

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

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

3.5 IPO图

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

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

四、总体设计 4.1 层次图

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

4.2 HIPO图

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

4.3 结构图

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

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

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

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

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

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

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

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

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

5.2 盒图

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

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

不可能任意转移控制。

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

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

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

优点

PAD图的主要优点如下:

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

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

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

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

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

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

5.4 判定表

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

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

5.5 判定树

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

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

六、后记

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

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

Eclipse 4.18 稳定版发布

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

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

THE END
0.组织行为学新思考题答:组织就是存在于特定社会环境中,由人群构成的,为了达到共同目标,通过责权分配和层次结构所构成的一个完整的有机体。 组织的分类: (一)国际上较为通用的分类观点有: 1.帕森斯社会功能分类说:组织可分为:以经济生产为导向的组织;以政治为导向的组织;整合组织;模型维持组织等四种类型。 jvzq<84yyy4489iqe0ipo8hqpvkov86612<2586817>86B;:a5>75:>;864tj}rn
1.树木植物在天地之间,在人类与星星之间,存在着一个奇异的树木王国。在地球上的树木王国中,有数以万计的各种各样的树木。就其树木的高矮来说:有高于德国佛莱堡大教堂(115米)的巨杉树(122米),也有高于埃及金字塔(137米)的澳大利亚桉树(146米);也有株高仅5~10厘米常绿的平卧杜鹃树。就每年的高生长量来说:有的树木如jvzquC41yy}/eqf|kfobp7hqo1ijfrfp1;719<<1
2.信息分类标准范文一般都采用树形结构对农业信息资源进行分类,这也是目前大多数农业网站所采用的一种方法。这样的分类方法就其效果而言是比较直观、易于理解,便于内容的组织与归纳(图1),但其一方面忽略了各分支节点的内容交叉性;另一方面切割了各分支节点之间的内在客观联系。 一个典型的例子就是水果农产品的分类,按果类品种可分为苹果、荔枝、龙眼、芒果等,一些农 jvzquC41yy}/jjtskmgo0lto1jgpyns1649147mvon
3.树(Tree)数据结构无根树本文介绍了树形结构的基本概念,包括无根树与有根树的区别,以及有根树的多种表示方法。此外还详细解释了有根树的相关术语,如结点、结点的度、叶结点等。 树(Tree) 1. 树的概念 树形结构是以分支关系定义的层次结构,是一类重要的非线性数据结构。 树是包含n(n>0)个结点的有穷集,也就说树是由一个集合以及在jvzquC41dnuh0lxfp0tfv8hckp|9;8ftvkimg8igvcomu8:492:87@
4.JavaScript树形组件实现无限级树形结构javascript技巧2、 对树中每一个层次的节点按照某一属性(比如分支机构编号)进行排序 下面介绍解决问题的思路: 在数据结构这门课中,我们都学过树,无限级树形结构就可以抽象成一种多叉树结构,即每个节点下包含多个子节点的树形结构,首先就需要把数据库中的层次数据转换成多叉树结构的对象树,也就是构造出一棵多叉树。 有了数据jvzquC41yy}/lk:30pku1jwvkerf1;92:38/j}r
5.数据库树为什么叫树|帆软数字化转型知识库数据库树被称为树的原因有:层次结构、父子关系、分支节点、高效查询。层次结构是指树形数据库通过节点和边缘表示数据的层次关系。 一、层次结构 数据库树的层次结构是其最显著的特点。树形结构通过节点和边缘之间的关系,直观地展示了数据的层次关系。例如,在一个公司的员工数据库中,最高层次的节点可以是CEO,接下来是jvzquC41yy}/hjstwct/exr1dnuh1jwvkerf1;;46460
6.体育课程管理范文论文摘要:文章采用归纳综合、逻辑分析等研究方法,对经验的概念,经验作为课程资源的意义和体育课程经验资源的结构等问题进行剖析,以期对提高体育课程经验资源的认识、丰富体育课程资源体系和促进体育课程资源理论的建设具有现实的指导意义。 0引言 经验在中文里有三个方面的含义:第一,作为动词,是指经历,即亲身体验的过程;jvzquC41yy}/i€~qq0ipo8mcqyko1<823:
7.软考中级软件设计师笔记树的一些公式 设树中的节点总数为n、分支数目为m, 节点总数=分支数+1 n=m+1 二叉树的公式 -n个节点的二叉树一共有((2n)!)/(n!*(n+1)!)种形式-n层二叉树的第n层最多为2^(n-1)个结点-二叉树节点计算公式 n=n0+n1+n2,度为0的叶子节点比度为2的节点数多一个。n=1*n1+2*n2+1-对任何一jvzquC41yy}/lrfpuj{/exr1r1:9c=g;65ldh<
8.世界十大学习方法之八大思维图示法摘要:Thinking Maps在国内也被翻译成思维导图,所以它算是思维导图的另一个分支。Thinking Maps有且只有8种图形,被称为八大思维图示法或者思维地图,包括:圆圈图,用于联想;树形图,用于分类;气泡图,用于描述;双气泡图,用于对比;流程图,用于顺序;复流程图,用于因果;括号图,用于拆分;桥形图,用于类比。八大思维图示法jvzq<84yyy4489iqe0ipo8hqpvkov87312>1486218?4;B85a;>:4?=;444tj}rn
9.架构师技术栈思维导图模板数据结构/设计模式 数据结构 含义 什么是数据结构 非数值型程序设计中数据的组织方式及其处理的算法 4种基本逻辑结构 集合 数据元素除了“属于同一集合”的关系外,没有其他关系。 线性结构 数据元素之间存在一对一的关系。如:线性表,栈,队列 层次结构 数据元素之间存在一对多的关系。如:树 网状结构 jvzquC41yy}/r{teguypp7hqo1|jg€4853:b6m5482j83?f9246g7:j
10.当需要表示具有层次结构的数据时,树是一种非常有效的数据结构树和二叉树是计算机科学中重要的数据结构,它们擅长表示层次结构数据,如文件系统、组织结构等。树的特点包括结点的唯一前驱和后继、分支数与结点度的关系、遍历方式等。二叉树进一步限制了每个结点最多有两个子结点,有多种遍历方法,并在数据压缩、搜索算法等方面有广泛应用。哈夫曼树是带权路径长度最短的二叉树,常用jvzquC41dnuh0lxfp0tfv8gnqieqtxltcoh0c{ykenk0fnyckny03;83;7?73
11.【数据结构】树与二叉树(一):树(森林)的基本概念:父亲、儿子关于树(二叉树)的基础操作有待进一步更新~ 1.树形表示法   树形表示法是一种图形化的表示方法,使用节点和边来表示树的结构。每个节点代表树中的一个元素,而边表示节点之间的关系。这种表示方法可以直观地展示树的层次结构和节点之间的连接关系。 jvzquC41fjkyz7hp1pkxu8xjqy363:77484ivvq
12.树是什么结构的字树的解释:木本植物的通称;种植,培育;立,建立;量词,相当于株和棵;姓。 树的定义:树是由根结点和若干颗子树构成的。树是由一个集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的结点,所定义的关系称为父子关系。父子关系在树的结点之间建立了一个层次结构。在这种层次结构中有一个结点具有特殊的jvzq<84o0jgpeqf80eun199279G3G@64:2=6:7mvo
13.《计算机应用基础》考试要求环形拓扑结构是由一些中继器和链接到中继器的点到点的链路 组成的一个闭合环,又称令牌环。环形拓扑结构中,信息交换采 用分组交换方式。 4、树形结构: 树形拓扑结构图形犹如倒放的树,最上端节点成为根节点,下端 是分支,每个分支还可带分支。 2、计算机网络体系结构的概念(网络协议、TCP/IP、osi的各个层次的功能) ●计算机网络:jvzquC41o0972mteu0tfv8iqe1h3dm73:7h:h
14.2023计算机二级考试《公共基础》考点:树和二叉树(3)后序遍历(LRD):若二叉树为空,则结束返回。否则:首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。 二级公共基础知识之树与二叉树 1、什么是树? 树是一种简单的非线性结构,直观地来看,树是以分支关系定义的层次结构。由于它呈现与jvzquC41yy}/qq6220ipo8pcqunj1whtg45ccxrkpi533?<4:0nuou
15.软件工程核心概念与方法论3.7.1层次方框图 层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。 3.7.2Warnier图 另一种表示信息层次结构图形。 在一个花括号内的所有名字都属于同一类信息;异或符号表明一类信息或一个数据元素在一定条件下才出现,而且在这个符号上、下方的两个名字所代表的数据只能出现一个;在一个名字下面(或jvzquC41dnuh0lxfp0tfv8|gkzooa=8;36<6:8ftvkimg8igvcomu8649762:@;
16.人力资源管理系统论文15篇系统中各功能模块之间的关系可用系统功能结构图来表示。树形结构的层次矩形框图是一种用一系列多层次的矩形框描绘数据层次结构的最好模式。其顶层是一个单独的矩形框,它表示为完整的数据结构,各个数据的子集由下面其他各层矩形框表示,而实际数据(不能再分割的数据)是由最底层的各个矩形框来表示的。需求分析阶段需要jvzquC41yy}/jjtskmgo0lto1hgoyns14579;7mvon
17.树形结构详解树结构的一些基本术语 树形结构是一类重要的非线性数据结构.其中以树和二叉树最为常用,直观看来,树是以分支关系定义的层次结构.树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树来形象表示.下面总结一下对于树的一些基本概念的描述.jvzquC41dnuh0lxfp0tfv8vsa5:94A6221gsvrhng1jfvjnnu1>29=6538