可行性研究的目的不是解决问题,而是确定总是是否值得去解决。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。
一般来讲,至少应该从三个方面来研究其可行性:技术可行性、经济可行性、操作可行性。在进行可行性研究时需要了解和分析现有的系统,并以概括的形式表达对现有系统式描绘组成系统的每个部件(程序、文档、数据库、人工过程等)。系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但它却是物理数据流图而不是程序流程图。
数据流程图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被 处理的逻辑过程。数据流图是系统逻辑功能的图形表示。即使不是专业的计算机技术人员也容易理解它,因为是分析员与用户之间极好的通信工具。
需求分析过程中,实体-联系图(ER图)是为了把用户的数据要求清楚、准确地描述出来,系统 分析员通常建立 一个概念性的数据模型 (也称为信息模型 )。概念性数据模型 是一种 面向问题的数据模型 ,是按照 用户的观点对数据建立的模型 。它描述了从用户角度看到的数据,它反映了用户的现实环境,而且与在软件系统中的实现方法无关。
状态转换图,在需求分析过程中应该建立 起软件系统的行为模型 。状态转换图(简称为状态图)通过描绘系统的状态及引起系统状态转换的事件来表示系统的行为。在状态图中定义了状态主要有:初态、终态和中间状态。在一张状态图中只能有一个初态,而终态则可以有0至多个。
其他图形工具:描述复杂的事物时,图形远比文字 叙述优越的多,它形象直观容易理解。前面已经介绍了用于建立功能模型 的数据流图、用于建立 数据模型 的实体-联系图和用于建立行为模型 的状态图。现在简要介绍在需求分析阶段可能用到的另外3种图形工具。
层次方框 图用树形结构的一系统列多层次的矩形框描绘数据的层次结构。树形结构的顶层是一个单独的矩形框 ,它代表完整的数据结构。下面的各层矩形框 代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不能再分割的元素)。随着结构的精细化,层次方框图对数据结构构也描绘的越来越详细,这种模式非常适合于需求分析阶段的需要。
WARNIER图,法国科学家WARNIER提出了信息层次结构的另一种 图形工具WARNIER图,与层次方框图类似,也是用树形结构描绘信息,但是比层次方框 图提供了更丰富的描绘手段。
IPO图是输入、处理、输出图的简称,它是由美国IBM公司发展完善起来的 一种 图形工具,能免方便地描绘输入数据、对数据的处理和输出数据之间的关系。
总体设计中,描绘软件结构的图形工具,层次图和HIPO图,层次图用来描绘软件的层次结构。很适于在自项向下设计的软件的过程中使用。
结构图是YOURDON提出的结构图是进行软件结构设计的另一个有力工具。结构图和层次图类似,也是描绘软件结构的图形工具,图中一个方框 代表一个模块,框内注有模块的名字或主要功能,方框 之间的箭头(或直线)表示模块的调用关系。
详细设计阶段的任务还不是具体编写程序,而是要设计出程序的“蓝图”。详细设计中的过程设计的工具包括程序流程图 、盒图、PAD图、判定表、判定树、过程设计语言。
程序流程图又称为程序框图,主要有以下缺点:
(1)程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程的全局结构。
(2)程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。
(3)程序流程图不易表示数据结构。
盒图有以下特点:
功能域明确,可以从盒图上一眼就看出来。
不可能任意转移控制。
很容易确定局部和全程数据的作用域。
很容易表现嵌套关系,也可以表示模块的层次结构。
面向数据结构的设计方法:JACKSON图和WARNIER方法是两个最著名的面向数据结构的设计方法。