结构化需求分析方法.docx

上传人:b****5 文档编号:28922296 上传时间:2023-07-20 格式:DOCX 页数:13 大小:279.41KB
下载 相关 举报
结构化需求分析方法.docx_第1页
第1页 / 共13页
结构化需求分析方法.docx_第2页
第2页 / 共13页
结构化需求分析方法.docx_第3页
第3页 / 共13页
结构化需求分析方法.docx_第4页
第4页 / 共13页
结构化需求分析方法.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

结构化需求分析方法.docx

《结构化需求分析方法.docx》由会员分享,可在线阅读,更多相关《结构化需求分析方法.docx(13页珍藏版)》请在冰豆网上搜索。

结构化需求分析方法.docx

结构化需求分析方法

结构化分析(SA)方法

结构化开发方法(StructuredDevelopingMethod)是现有的软件开发方法

中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。

结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD法)及结构化程序设计方法(SP法)构成的。

结构化分析(StructuredAnalysis,简称SA法)方法是面向数据流的需求分析方法,是70年代末由Yourdon,Constaintine及DeMarco等人提出和

发展,并得到广泛的应用。

它适合于分析大型的数据处理系统,特别是企事业管理系统。

SA法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。

1SA法概述

1.SA法的基本思想

结构化分析(StructuredAnalysis,简称SA法)是面向数据流的需求分析方法,是70年代由Yourdon,Constaintine及DeMarco等人提出和发展,并得到广泛的应用。

结构化分析方法的基本思想是“分解”和“抽象”

分解:

是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。

图4是自顶向下逐层分解的示意图。

顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。

抽象:

分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就是“抽象”。

图I贞向卜•逐层分解

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图

1]^2」圏HVt

潮$耐阊

在画分层数据流图时,首先遇到的问题就是应该如何分解?

不能够一下子把

一个加工分解成它所有的基本加工,一张图中画出过多的加工是使人难以理解

的,但是如果每次只是将一个加工分解成两个或三个加工,又可能需要分解过多的层次,也会影响系统的可理解性。

一个加工每次分解成多少个子加工才合适呢?

根据经验最多不要超过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数据词典),则子、父图平衡

⑷合理使用文件

当文件作为某些加工之间的交界面时,文件必须画出来,一旦文件作为数

据流图中的一个独立成份画出来了,那么它同其它成份之间的联系也应同时表达出来

理解一个问题总要经过从不正确到正确,从不确切到确切的过程,需求分析的过程总是要不断反复的,一次就成功的可能性是很小的,对复杂的系统尤其如此,因此,系统分析员应随时准备对数据流图进行修改和完善,与用户取得共识,获得无二义性的需求,才能获得更正确清晰的需求说明,使得设计、编程等阶段能够顺利进行,这样做是必须和值得的。

3.分层DFD图的改进

DFD图必须经过反复修改,才能获得最终的目标系统的逻辑(目标系统的DFD图)。

改进的原则与画分层DFD图的基本原则是一致的,可从以下方面考虑DFD图的改进:

⑴检查数据流的正确性

1数据守恒

2子图、父图的平衡

3文件使用是否合理。

特别注意输入/出文件的数据流。

⑵改进DFD图的易理解性

1简化加工之间的联系(加工间的数据流越少,独立性越强,易理解性越好)。

2改进分解的均匀性。

3适当命名(各成分名称无二义性,准确、具体)。

4.数据词典

分层数据流图只是表达了系统的分解”为了完整地描述这个系统,还需

借助数据词典”(datadictionary)小说明”对图中的每个数据和加工给出解释。

对数据流图中包含的所有元素的定义的集合构成了数据词典。

它有四类条目:

数据流、数据项、文件及基本加工。

在定义数据流或文件时,使用表2-1给出的符号。

将这些条目按照一定的规则组织起来,构成数据词典。

AM金證畫出慣的症丽川用齡机

警号

債戲说明

X-a-b也小掘相却乳说

Aft-s]

列上云工:

;1E或b朮锻

X!

f0巧卜JI肌犠

|"1"宀a

■1'U

戈■比陌诜X■同:

A斤怖

I■讨占比卜丄」巴-也叫彳詡1哩

X-a呢1;議DK仇対®打的:

佛;”卜

«■-

X-I-3左:

逼门门悄创鸽山

1.数据流条目

给出了DFD中数据流的定义,通常对数据流的简单描述为列出该数据流

的各组成数据项。

例:

数据流乘客名单”由若干乘客姓名”单位名”和等级”组成,则词典

中的乘客名单”条目是:

乘客名单={乘客姓名+单位名+等级}

又如:

报名单=姓名+单位名+年龄+性别+课程名

也可以对数据流进行较详细的描述,如下例:

例:

某查询系统中,有个名为查询”的数据流,目前查询”有三种类型,

即顾客状况查询”、存货查询”和发票存根查询”,预计至1990年底还将增加3至4种其他类型的查询。

系统每天约需处理2000次查询,每天上午

9:

00—10:

00是查询的高峰,此时约有1000次查询。

上述信息都是用户要

求”的一部分,在分析阶段应该认真收集,并记录在词典的有关条目中,所以

查询”条目描述如下。

数据流名:

查询

简述:

系统处理的一个命令

别名:

组成:

[顾客状况查询|存货查询|发票存根查询]

数据量:

2000次/天

峰值:

每天上午9:

00—10:

00有1000次

注释:

至1990年底还将增加3至4种查询

2.文件条目

给出某个文件的定义,文件的定义通常是列出文件记录的组成数据流,还可指出文件的组织方式。

例:

某销售系统的订单文件:

订单文件=订单编号+顾客名称+产品名称+订货数量+交货日期

3.数据项条目

给出某个数据单项的定义,通常是该数据项的值类型、允许值等。

例如:

帐号=00000~99999;存款期=[1|3|5](单位:

年)4•加工条目加工条目就是加工小说明”由于加工”是DFD图的重要组成部分,一般应单独进行说明。

因此,数据词典是对数据流图中所包含的各种元素定义的集合。

它对的4类条目:

数据流、数据项、文件及基本加工进行了描述,是对DFD图的补充。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1