我们通常都是对图形化的东西情有独钟,因为图形能将一个抽象的东西具体化、形象化,图形化的表述能将一个用文字语言无法表达清楚或很难表达的观点、事物、科学概念等清晰的呈现出来。这就是为什么我们相比晦涩难懂文字更喜欢形象生动的图形的原因
软件工程中一般把软件的开发分为以下几个阶段:1、问题定义2、可行性研究3、需求分析4、总体设计(概要设计)5、详细设计6、编码和单元测试7、综合测试8、软件维护(运行维护)
下面介绍一下各个阶段中的图:
1、问题定义
主要是通过对客户的需求定义要解决的问题,以及需要实现哪些功能
2、可行性研究
研究是否有一种使其在最小的代价、尽可能最短的时间、利益最大化的情况下解决问题的方案,此阶段涉及到的图主要有以下几种:
(1)系统流程图
系统流程图的基本思想是用图形符号表达对黑盒子形式描绘组成系统能够的每个部件(程序、文档、数据库、人工过程等),它表达的是数据在系统各部件之间流动的情况,是物理数据流图而不是程序流程图
(2)数据流图
数据流图(DFD)描绘信息流和数据从输入移动到输出的过程中所经受的变换,它只是描绘数据在软件中流动和被处理的逻辑过程
(3)数据字典
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合,主要是由数据流、数据流分量(即数据元素)、数据存储、处理组成
3、需求分析
主要确定系统必须做什么,需求阶段仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。比如用户对系统的综合要求,分析系统的数据要求,导出系统的逻辑模型,修正系统开发计划等等,此阶段主要涉及到的图
(1)实体—联系图(E-R图)
概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型,它描述了从用户角度看到的数据,反映了用户的现实环境,与软件系统中实现方法无关
(2)状态转化图
状态转换图(简称状态图)通过描绘系统的状态及引起系统状态转换的时间,来表示系统的行为,将系统运作时的详细状态变化呈现给用户
(3)层次方框图
层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构
(4)Warnier图
warnier图和层次方框图类似,也用树形结构描绘信息,它可以指出一类信息或一个信息元素是重复出现的,也可以表示特定信息在某一类信息中是有条件地出现的
(5)IPO图
IPO图是输入、处理、输出图的简称,它的基本形式是在左边的框中列出主要的处理,在右边的框中列出产生的输出数据
4、总体设计(概要设计)
确定了系统要做什么问题之后,就是要确定如何实现的问题。总体设计阶段的目的是从宏观上概括的说系统应该如何实现,具体一点就是要明确系统由哪些模块组成,以及这些模块之间的关系
(1)层次图
层次图涌过来描绘软件的层次结构。层次图中的一个矩形框代表一个模块,方框件的连线表示调用关系而不像层次方框图那样表示组成关系
(2)HIPO图
HIPO图=层次图+输入+处理+输出(层次图+IPO图)
(3)结构图
结构图和层次图类似,也是描述软件结构的图形工具,途中一个方框代表一个模块,框内注明模块的名字或主要功能,方框之间的箭头(或直线)表示模块的调用关系
5、详细设计
在总体设计阶段的基础上确定应该怎样具体地实现所要求的系统,要对系统进行精确的描述
(1)程序流程图
程序流程图又称为程序框图,对控制流程的描绘很直观,便于初学者掌握
(2)盒图(N-S图)
出于要有一种不允许违背结构程序设计精神的图形工具的考虑,Nassi和Shneiderman提出了盒图
(3)PAD图
PAD是问题分析图(problem analysis diagram)的英文缩写,它用二维树形结构的图来表示程序的控制流
6、编码和单元测试
这个阶段主要是根据详细设计阶段的详细描述写出正确的容易理解、容易维护的程序模块
7、综合测试
综合测试中最基本的测试是集成测试和验收测试,要求覆盖软件系统的各个功能点,并通过各种类型的测试(及相应的调试)使软件达到预定的要求
8、软件维护(运行维护)
软件维护阶段是生命周期的最后一个阶段,也是最长的一个阶段。本阶段的主要任务是,通过各种必要的维护活动使系统持久地满足用户的需要