在写文档的过程中遇到了很多图,这些图有的在自考的时候接触过:比如:E-R图,数据流图,程序流程图。也有的是软工视频中讲过的,在写文档的过程中,有多地方都要求画图,只好又返回去看看。
下面是软件工程中我整理的一些图的,如有遗漏,欢迎补充。
一,需求分析中的图
1,数据流图(DFD)
它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化分析方法的主要表达工具及用于表示软件模型的一种图示方法。
数据流图中的图例:
范例:
另外,在大型的系统中,为了能够更细节的表现数据在系统中流动情况,还将数据流图进行分层,此时,用分层的数据流图来表现数据。
2,判定表
当程序中,如果数据流图的加工需要依赖于多个逻辑条件的取值,此时,使用判定表来描述更加合适。
描述方法:
示例:
虽然判定表可以清楚的表现出多个逻辑条件,但是,不能表示不确定的加工处理,也不能表示重复循环的加工方式。
3,判定树
判定树也是用来表达加工逻辑的一种工具,它是判定表的变种,但是有时候比判定表更加直观。
例如:
注意:在画判定树的时候,要尽量把树叶画在右端,这样看起来更舒服。
从直观上看,判定树比判定表要好,但是从逻辑上看,判定表又比较好。
4,状态迁移图
状态迁移图是描述系统的运行状态如何相应外部的信号进行推移的一种图形表示.
圆圈"○"表示可得到的系统状态。
箭头“→”表示从一种状态到另一种状态的迁移。
状态迁移图优点:1,状态之间的关系能够直观的捕捉到;2,由于状态迁移图的单纯性,能够机械的分析许多情况,可很容易的建立分析工具。
5,Petri图
它有两种结点:
位置:符号为"○",它用来表示系统的状态
转移:符号为"?",它用来表示系统中的事件.
示例:
二,设计中的图
1,程序流程图
程序流程是对程序控制流程的描述,它运用工序图示符号对生产现场的整个制造程序做详细的记录。
程序流程图的画法:
示例,下面是我以前画的一个登陆的流程图:
2,N-S图
流程图由一些特定意义的图形、流程线及简要的文字说明构成,它能清晰明确地表示程序的运行过程。在使用过程中,人们发现流程线不一定是必需的,为此,人们设计了一种新的流程图,它把整个程序写在一个大框图内,这个大框图由若干个小的基本框图构成,这种流程图简称N-S图,从中可以看出,盒图是对流程图简化。
用盒图表示5种控制结构:
盒图示例:
3,PAD图
一种主要用于描述软件详细设计的图形表示工具。与方框图一样,PAD图也只能描述结构化程序允许使用的几种基本结果。
pad图5中基本控制结构的图示:
示例:
4,判定表
判定表用于表示程序的静态逻辑
在判定表中的条件部分给出所有的两分支判断的列表,动作部分给出相应的处理
要求将程序流程图中的多分支判断都改成两分支判断
建立判定表的过程:
1,列出一个具体过程(或模块)有关的所有处理;
2,列出过程执行期间的所有条件(或所有判断)
3,将特定条件取值组合与特定的处理相匹配
4,将右部每一纵列规定为一个处理规则,即对于某一条件取值组合将有什么动作.
判定表示例:
5,IPO图
IPO图是对每个模块进行详细设计的工具,是用来说明每个模块的输入、输出数据和数据加工的。
例如:
说到IPO图,还得顺便说一下HIPO图,从名字看,HIPO图比IPO图多一个H,从图上看,HIPO图比IPO图多的就是一个H图,有兴趣的可以查一查。
6,E-R图
在所有的图里面,我最熟悉的,画的最多的还是E-R图,在当初设计机房收费系统的数据库时(这里有个概述:http://liuhuichaodeboke.blog.163.com/blog/static/21109319620138288429163/),E-R图可是必备的工具。
在本篇博客里面,所描述图中,只有E-R图是用来设计数据库的。
E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。
三,程序编码阶段的图
1,鱼骨刺图
第一次看到鱼骨图还不是在学计算机的时候看到的,是在学习英语的时候。如图:
在暑假刚开始接触SB英语的时候,师姐讲学习英语的内容的时候,用的就是鱼骨图。
鱼骨图是一种发现问题“根本原因”的方法,它也可以称之为“Ishikawa”或者“因果图”。其特点是简捷实用,深入直观。它看上去有些象鱼骨,问题或缺陷(即后果)标在"鱼头"外。在鱼骨上长出鱼刺,上面按出现机会多寡列出产生生产问题的可能原因。鱼骨图有助于说明各个原因之间如何相互影响。它也能表现出各个可能的原因是如何随时间而依次出现的。这有助于着手解决问题。
四,测试阶段的图
1,因果图
如果在测试时必须考虑输入条件的各种组合,可使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。
因果图的画法:
因果图示例:
五,配置管理阶段的图
1,演变图
与前面那些描述程序内部构造的图相比,记叙对象的变更历史的演变图,貌似比较简单,一眼就能看明白是怎么回事。
例如: