IT项目需求分析与管理之结构化分析方法(一)作者:雪影发表于2012年5月5日分类:软件架构|暂无评论1、概述结构化开发方法是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。结构化开发方法包含三部分:结构化分析方法(SA法):结构化分析方法是面向数据流进行需求分析的方法,适合于数据处理类型软件的需求分析。结构化设计方法(SD法)结构化程序设计方法(SP法)SA法建模就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件模型为止。结构化分析方法是传统软件工程中公认的技术成熟和使用广泛的需求分析方法。它主要借助于分层数据流图和数据字典等图形及半形式化的工具表达系统的需求。结构化分析方法结构化分析方法(StructuredAnalysis,简称SA法)是面向数据流的需求分析方法,是70年代末由Yourdon,Constaintine及DeMarco等人提出和发展,并得到广泛的应用。它适合于分析大型的数据处理系统,特别是企事业管理系统。主要应用技术和工具:数据流图(DFD);数据字典(DD);加工说明(PESPEC);实体关系图(E-R);状态变迁图(STD)等SA法的基本思想结构化分析的基本思想:“分解”和“抽象”分解:把系统的复杂性降低到可以掌握的程度,把大问题分解成若干小问题,然后分别解决。抽象:即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容。自顶向下逐层分解,顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。SA法的步骤1⑴建立当前系统的“物理模型”;系统的“物理模型”就是现实环境的忠实写照,即将当前系统用DFD图描述出来。这样的表达与当前系统完全对应,因此用户容易理解。SA法的步骤2⑵抽象出当前系统的逻辑模型;分析系统的“物理模型”,抽象出其本质的因素,排除次要因素,获得用DFD图描述的当前系统的“逻辑模型”。SA法的步骤3⑶建立目标系统的逻辑模型;分析目标系统与当前系统逻辑上的差别,从而进一步明确目标系统“做什么”,建立目标系统的“逻辑模型”(修改后的DFD图)。SA法的步骤4⑷为了对目标系统作完整的描述,还需要考虑人机界面和其它一些问题。想要保存喜欢过的文章吗?立即关联或创建无觅帐号?不再提示!结构化开发方法(StructuredDevelopingMethod)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD法)及结构化程序设计方法(SP法)构成的。结构化分析(StructuredAnalysis,简称SA法)方法是面向数据流的需求分析方法,是70年代末由Yourdon,Constaintine及DeMarco等人提出和发展,并得到广泛的应用。它适合于分析大型的数据处理系统,特别是企事业管理系统。SA法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。1SA法概述1.SA法的基本思想结构化分析(StructuredAnalysis,简称SA法)是面向数据流的需求分析方法,是70年代由Yourdon,Constaintine及DeMarco等人提出和发展,并得到广泛的应用。结构化分析方法的基本思想是“分解”和“抽象”。分解:是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。图4是自顶向下逐层分解的示意图。顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就是“抽象”。2.SA法的步骤⑴建立当前系统的“具体模型”;系统的“具体模型”就是现实环境的忠实写照,即将当前系统用DFD图描述出来。这样的表达与当前系统完全对应,因此用户容易理解。⑵抽象出当前系统的逻辑模型;分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得用DFD图描述的当前系统的“逻辑模型”。⑶建立目标系统的逻辑模型;分析目标系统与当前系统逻辑上的差别,从而进一步明确目标系统“做什么”,建立目标系统的“逻辑模型”(修改后的DFD图)。⑷为了对目标系统作完整的描述,还需要考虑人机界面和其它一些问题。3.SA法的描述工具⑴分层的数据流图⑵数据词典⑶描述加工逻辑的结构化语言、判定表或判定树。2数据流图数据流图(DataFlowDiagram,简称DFD)是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换逻辑输出所需的加工处理。1.数据流图的图符数据流图有以下4种基本图形符号:箭头表示数据流,圆或椭圆表示加工。双杠或者单杠表示数据存储,矩形框表示数据的源点或终点,即外部实体。⑴数据流是数据在系统内传播的路径,由一组成固定的数据项组成。除了与数据存储(文件)之间的数据流不用命名外,其余数据流都应该用名词或名词短语命名。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,也可以从源点流向加工或从加工流向终点。⑵加工也称为数据处理,它对数据流进行某些操作或变换。每个加工也要有名字,通常是动词短语,简明地描述完成什么加工。在分层的数据流图中,加工还应有编号。⑶数据存储指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。流向数据存储的数据流可理解为写入文件,或查询文件,从数据存储流出的数据可理解为从文件读数据或得到查询结果。⑷数据源点和终点是软件系统外部环境中的实体(包括人员、组织或其他软件系统),统称为外部实体。一般只出现在数据流图的顶层图中。还有一些辅助的图例:例1:画出图书预定系统的DFD图。现有一图书预定系统,接收由顾客发来的订单,并对订单进行验证,验证过程是根据图书目录检查订单的正确性,同时根据顾客档案确定是新顾客还是老顾客,是否有信誉。经过验证的正确订单,暂存放在待处理的订单文件中。对订单进行成批处理,根据出版社档案,将订单按照出版社进行分类汇总,并保存订单存根,然后将汇总订单发往各出版社。画图步骤是:⑴首先确定外部实体(顾客、出版社)及输入、输出数据流(订单、出版社订单)。⑵再分解顶层的加工(验证订单、汇总订单)。⑶确定所使用的文件(图书目录文件、顾客档案等5个文件)。⑷用数据流将各部分连接起来,形成数据封闭。特别要注意的是:数据流图不是传统的流程图或框图,数据流也不是控制流。数据流图是从数据的角度来描述一个系统,而框图则是从对数据进行加工的工作人员的角度来描述系统。数据流图中的箭头是数据流,而框图中的箭头则是控制流,控制流表达的是程序执行的次序。下图是培训中心管理系统的数据流图,由于只有一层,因此分解的加工较多不易理解,而且如果其中某个加工较复杂,例如编号为3的加工“付款”和编号为7的加工“复审”仍很复杂,一时难以理解,如果不继续分解下去,直到每个加工都足够简单易于理解为止,则会影响需求分析结果的可读性。1.画分层DFD图的方法如图2.8所示,如果系统规模较大,仅用一个DFD图难以描述,会使得系统变得复杂,且难以理解。为了降低系统的复杂性,采取“逐层分解”的技术,画分层的DFD图。画分层DFD图的一般原则是:“先全局后局部,先整体后细节,先抽象后具体”。通常将这种分层的DFD图,分为顶层、中间层、底层。顶层图说明了系统的边界,即系统的输入和输出数据流,顶层图只有一张。底层图由一些不能再分解的加工组成,这些加工都已足够简单,称为基本加工。在顶层和底层之间的是中间层。中间层的数据流图描述了某个加工的分解,而它的组成部分又要进一步分解。画各层DFD图时,应“由外向内”。画分层DFD图的具体步骤:⑴先确定系统范围,画出顶层的DFD图。⑵逐层分解顶层DFD图,获得若干中间层DFD图。⑶画出底层的DFD图。在画分层数据流图时,首先遇到的问题就是应该如何分解?不能够一下子把一个加工分解成它所有的基本加工,一张图中画出过多的加工是使人难以理解的,但是如果每次只是将一个加工分解成两个或三个加工,又可能需要分解过多的层次,也会影响系统的可理解性。一个加工每次分解成多少个子加工才合适呢?根据经验“最多不要超过7个”。统计结果证明,人们能有效地同时处理7个或7个以下的问题,但当问题多于7个时,处理效果就会下降。当然也不能机械地应用,关键是要使数据流图易于理解。同时还有几条原则可供参考:分解应自然,概念上要合理、清晰。只要不影响数据流图的“易理解性”,可以适当地多分解成几部分,这样分层图的层数就可少些。一般来说,在上层可以分解得快些,而在中、下层则应分解得慢些,因为上层是一些综合性的描述,“易理解性”相对地说不太重要。下节我们以一个实例来说明画分层DFD图的方法。2分层DFD图的改进分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的总貌,底层画出了系统所有的细部,而中间层则给出了从抽象到具体的逐步过渡。1.画分层DFD图的基本原则⑴.数据守恒与数据封闭原则所谓数据守恒是指加工的输入输出数据流是否匹配,即每一个加工既有输入数据流又有输出数据流。或者说一个加工至少有一个输入数据流,一个输出数据流。⑵加工分解的原则自然性:概念上合理、清晰;均匀性:理想的分解是将一个问题分解成大小均匀的几个部分;分解度:一般每一个加工每次分解最多不要超过7个子加工,应分解到基本加工为止。⑶子图与父图的“平衡”父图中某个加工的输入输出数据流应该同相应的子图的输入输出相同(相对应),分层数据流图的这种特点称为子图与父图“平衡”。例1考察下图中子父图的平衡显然,图2.13中子图与父图不平衡。子图是父图中加工2的分解,加工2有输入数据流R和M,输出数据流T,而子图则只有一个输入数据流N,却有两个输出数据流T与S。图2.14中,子图是父图中加工4的分解,虽然表面上加工4只有一个输入数据流“订货单”,而子图却有三个输入数据流,但是如果“订货单”是由“客户”、“帐号”和“数量”三部分组成,即有如下数据条目:订货单=客户+帐号+数量(2.2.5数据词典),则子、父图平衡。⑷合理使用文件当文件作为某些加工之间的交界面时,文件必须画出来,一旦文件作为数据流图中的一个独立成份画出来了