软件需求分析的基础:机构化分析方法。
结构化分析方法适用于数据处理类型软件的需求分析。它提供的主要建模工具包括 数据流图、数据字典、机构化英语、判定表、和判定树等。
数据流图(DFD--Data Flow Diagram)作用
指明数据在系统中移动时如何被变换,描述对数据流进行交换的功能和子功能。
DFD图的特性。
抽象性、概括性、层次性。
DFD图的用途。
1)系统分析员用这种工具可以自顶向下分析系统信息流程。
2)可在图上画出需要计算机处理的部分。
3)根据数据存贮,进一步作数据分析,向数据库库设计过渡。
4)根据数据流向,定出存取方式。
5)对应一个处理过程,用相应的语言、判定表等工具表达处理方法。
DFD图的优缺点。
1)总体概念强,每一层都明确签掉“干什么”,“需要什么”,“给出什么”
2)可以反映出数据的流向和处理过程。
3)由于自顶向下分析,容易及早发现系统各个部分的逻辑错误,也容易修正。
4)容易与计算机处理相对照。
5)不直观,一般都要咋作业流程分析的基础上加以概括、抽象、修正来得到。
6)如果没有计算机系统的帮助,人工绘制会太麻烦,工作量较大。
数据流图的画法。
1 组成符号
2、命名。
1)名字应代表整个数据流( 或是存储)内容。
2)不要使用空洞的、缺乏具体含义的名字。
3)如果某个数据流起名字时遇到了困难,可能是因为对数据流分解不恰当引起的,应重新分解。
4)名字要反映整个处理的功能,而不是一部分功能。
5)名字最好有一个及物动词加上一个具体的名词或是名次组组成。应该尽量避免使用“加工”,“处理“,等空洞笼统的动名词。
6)数据的源点和终点并不需要在系统中实现,它们代表着系统的外部环境。数据源采用他们习惯的名字,如”学生“,“管理员”。
分层数据流图。
画法:
第0层DFD称为系统基本模型,可以将整个软件系统表示为一个具有输入和输出的黑匣子。用一个圆圈表示。
上一层DFD中的每一个圆圈可以进一步扩展成一个独立的数据流图,以揭示系统中程序的细节部分。
这种循序渐进的习惯过程可以继续进行,直到最低层的图仅描述原子过程操作为止。
每一层数据流图必须与它上一层数据流图保持平衡和一致,因此,子图的所有输入输出流要与其父图相匹配。
概括的就是说:自外向内,自顶向下,逐层细化,完善求精。
确定系统的输入和输出,以反映系统关于外界环境的接口。第0层DFD将整个系统表述一个加工;它并未表达数据加工的要求,需要近一步细化。确定并标出主要的输入和输出,从输入端开始,根据业务工作流程,画出数据流经的个加工框,以反映数据的实际处理过程,逐步画出输出端,得到第一层数据流图。图中的加工分贝加以编号。细化每一个加工框。如果加工框内还有数据流,可将这个加工框再细分成为几个“子加工”并在各子加工框之间画出数据流。一次比一次细化加工。重复步骤,直到所有加工只重复一个简单的操作可以很容易的用程序来实现。
为了表达处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚和理解整个系统。
可以把系统分为三个子系统,一层 DFD/L1、 DFD/L2 、DFD/L3。再对第二层分层 DFD/1.1 DFD/1.2 ....等等。
这是以前画的图。首先说说这个图的缺点。一是,在这个图中没有画出数据存储的文件。二是,图中数据流起名有些问题吧。
下面是我曾经画过的餐厅点菜系统的DFD图。
还是在实践中学习吧,不断的改正和探索。