软件工程中的图情结

我们通常都是对图形化的东西情有独钟,我们小时候的启蒙教育基本上也都是从图形化开始的,我们曾经看过的连环画、漫画、看图识字等等。因为图形能将 一个抽象的东西具体化、形象化,图形化地表述出来,能将一个用文字语言无法表达清楚或很难表达的观点、事物、科学概念等清晰的呈现出来。这就是为什么我们相比晦涩难懂文字更喜欢形象生动的图形的原因。

软件工程导论作为软件工程中非常重要的一门课程,通常因为其偏文科性、理论性、概念性而得不到人们的重视,但幸运的是在软件工程导论中有我们非常易于接受、理解的东西——图,否则我们自己会把自己害得很惨(软件工程导论真的很重要哦!)。

软件工程导论中一般把软件的开发分为八个阶段:1.问题定义 2.可行性研究 3.需求分析 4.总体设计(概要设计) 5.详细设计 6.编码和单元测试 7.综合测试 8.软件维护。下面我们就说说各个阶段中与图的难解难分。

1.问题定义

问题定义阶段主要是根据用户的需求来定义用户需要解决的问题,用户要实现哪些功能。

2.可行性研究

可行性研究阶段就是看是否有一种使其在最小的代价,尽可能短的时间内,利益最大化的情况下解决问题的方案。这个阶段的分析主要涉及以下几个图形工具。

2.1系统流程图

系统流程图是描述系统物理模型的一种传统工具。它是表达数据在系统各部件之间流动的情况,而不是对数据加工处理的控制过程,它是物理数据流图而不是 程序流程图。系统流程图形象的呈现了软件的功能,即使不懂软件的人也可以轻松的看懂,可以说它是软件设计师与用户之间沟通、交流的有效工具。

system process flowchart 系统流程图

2.2数据流图

数据流图是从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具 及用于表示软件模型的一种图示方法。如果说系统流程图能让用户更好的明白系统的功能,那么数据流图则让用户更加明白系统的工作原理。

data flowchart 数据流图


2.3数据字典

数据字典就是数据的信息的集合,也可以说就是对上面提到的数据流图中的所有元素的定义的集合。数据字典的主要作用就是在软件的分析与设计阶段方便我们查阅不甚了解的数据的描述信息。

数据字典 data dictionary


3.
需求分析

需求分析阶段主要确定系统必须做什么。比如用户对系统的要求,确定目标系统所有的功能,确定系统运行的硬件和软件环境,系统性能要求,出错处理要求,接口需求,验证软件需求等等。

3.1E-r图

E-r图的主要作用就是把用户的数据要求用可视化的图形呈现出来。

E-r图 E-R diagram


3.2状态转换图

状态转换图说白了就是系统的行为建模,就是通过描述系统的状态以及引起状态变化的事件来表示系统的行为,将系统运行时详细的状态变化呈现给用户。

状态转换图 state transition diagram


3.3层次方框图

层次方框图像用户呈现的是数据的层次结构。

层次方框图 level block diagram


3.4Warnier图

Warnier图的作用和层次方框图的作用基本相同,只不过Warnier图的描述手段更多。

warnier diagram


3.5IPO图

IPO图是输入、处理和输出图的简称,它清楚的描述了输入数据、处理数据、输出数据之间的关系。

IPO diagram


4.
总体设计

需求分析阶段已经确定了系统要做什么的问题,而总体设计就是要弄明白怎么做的问题,总体设计的目的就是从宏观上概括的说系统应该怎样实现,具体一点就是要明确系统有哪些模块组成,以及这些模块之间的关系是怎样的。

4.1层次图

层次图是用来描述软件的层次结构的。

层次图 level diagram


4.2HIPO图

HIPO图 = 层次图+输入+处理+输出

HIPO图 HIPO diagram


4.3结构图

结构图和层次图类似,都是描述软件结构的图形工具。

结构图 stucture diagram


5.
详细设计

详细设计阶段就是在总体设计的基础上要确定怎样具体的详细的实现系统所要求的功能,要对系统进行精确的描述。

5.1程序流程图

程序流程图是对程序控制流程的直观描述。

程序流程图 program process flowchart


5.2盒图

出于要有种不允许违背结构设计精神图形工具考虑Nassi和shneiderman提出了盒图又称为N—S图。

盒图 box diagram


5.3问题分析PAD图

PAD图就是用二维树形结构图来表示程序的控制流。

问题分析PAD图 PAD diagram


6.
编码和单元测试

编码和单元测试阶段主要是对详细设计阶段的详细描述给以具体的实现和模块的测试。

7.综合测试

综合测试包括对系统的各个组件和功能的测试,要求覆盖软件系统的各个功能点,并根据被测软件的需求测试软件的性能、易用性等方面的内容,达到对软件全方面测试的目的。

8.软件维护

软件维护阶段是软件生命周期中最后的一个阶段,也是最长的一个阶段,软件维护主要任务是指根据需求变化或硬件环境的变化对应用程序进行部分或全部的修改,修改时应充分利用源程序。修改后要填写程序改登记表,并在程序变更通知书上写明新旧程序的不同之处。

原文:极致书生

投稿:极致书生

 

收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部