需求分析传统结构化方法Word格式文档下载.doc
- 文档编号:1506849
- 上传时间:2023-04-30
- 格式:DOC
- 页数:15
- 大小:389KB
需求分析传统结构化方法Word格式文档下载.doc
《需求分析传统结构化方法Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《需求分析传统结构化方法Word格式文档下载.doc(15页珍藏版)》请在冰点文库上搜索。
为了使访谈有效,在进行访谈之前,开发人员要首先确定访谈的目的,进而准备一个问题列表,预先准备好希望通过访谈解决的问题。
在访谈的过程中,开发人员要注意态度诚恳,并保持虚心求教的姿态,同时还要对重点问题进行深入的讨论。
由于被访谈的用户身份可能多种多样,开发人员要根据用户的身份特点,进行提问,给予启发。
当然,进行详细的记录也是访谈过程中必不可少的工作。
访谈完成后,开发人员要对访谈的收获进行总结,澄清已解决的和有待进一步解决的问题。
关注用户的行为而不是他们的言语。
为了深入地了解用户需求,有时候开发人员还会以用户的身份直接参与到现有系统的使用过程中,在亲身实践的基础上,更直接地体会现有系统的弊端以及新系统应该解决的问题,这种需求获取方法就是实地操作。
通过实地操作得到的信息会更加准确和真实,但是这种方法会比较费时间。
当用户本身对需求的了解不太清晰的时候,开发人员通常采用建立原型系统的方法对用户需求进行挖掘。
原型系统就是目标系统的一个可操作的模型。
在初步获取需求后,开发人员会快速地开发一个原型系统。
通过对原型系统进行模拟操作,开发人员能及时获得用户的意见,从而对需求进行明确。
利用原型系统获取需求的方法的示意图如图2-4所示。
(点击查看大图)图2-4 利用原型系统获取需求
2.分析需求,建立目标系统的逻辑模型
在获得需求后,开发人员应该对问题进行分析抽象,并在此基础上从高层建立目标系统的逻辑模型。
模型是对事物高层次的抽象,通常由一组符号和组织这些符号的规则组成。
常用的模型图有数据流图、E-R图、用例图和状态转换图等,不同的模型从不同的角度或不同的侧重点描述目标系统。
绘制模型图的过程,既是开发人员进行逻辑思考的过程,也是开发人员更进一步认识目标系统的过程。
3.将需求文档化
获得需求后要将其描述出来,即将需求文档化。
对于大型的软件系统,需求阶段一般会输出三个文档:
系统定义文档(用户需求报告);
系统需求文档(系统需求规格说明书);
软件需求文档(软件需求规格说明书)。
对于简单的软件系统而言,需求阶段只需要输出软件需求文档(即软件需求规格说明书)就可以了。
软件需求规格说明书主要描述软件的需求,从开发人员的角度对目标系统的业务模型、功能模型和数据模型等内容进行描述。
作为后续的软件设计和测试的重要依据,需求阶段的输出文档应该具有清晰性、无二义性和准确性,并且能够全面和确切地描述用户需求。
4.需求验证
需求验证是对需求分析的成果进行评估和验证的过程。
为了确保需求分析的正确性、一致性、完整性和有效性,提高软件开发的效率,为后续的软件开发做好准备,需求验证的工作非常必要。
在需求验证的过程中,可以对需求阶段的输出文档进行多种检查,比如,一致性检查、完整性检查和有效性检查等。
同时,需求评审也是在这个阶段进行的。
2.3结构化需求分析的方法
结构化需求分析是20世纪70年代由Yourdon、Constaintine及DeMarco提出的一种面向数据流的需求分析方法。
它基于"
分解"
和"
抽象"
的基本思想,逐步建立目标系统的逻辑模型,进而描绘出满足用户要求的软件系统。
"
是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解为若干个小问题,然后再分别解决。
图2-5演示了对目标系统X进行自顶向下逐层分解的示意图。
(点击查看大图)图2-5 自顶向下逐层分解
最顶层描述了整个目标系统,中间层将目标系统划分为若干个模块,每个模块完成一定的功能,而最底层是对每个模块实现方法的细节性描述。
可见,在逐层分解的过程中,起初并不考虑细节性的问题,而是先关注问题最本质的属性,随着分解自顶向下进行,才逐渐考虑越来越具体的细节。
这种用最本质的属性表示一个软件系统的方法就是"
。
抽象是一种人类处理复杂问题的基本方法。
分解和抽象是结构化需求分析的基本指导思想。
在结构化需求分析的过程中,通常还需要借助数据流程图、数据字典、E-R图、结构化语言、判定表、判定树等工具。
接下来我们介绍数据流图、数据字典和E-R图的相关知识。
2.4 结构化需求分析的工具
2.4.1 数据流图
数据流图(DataFlowDiagram,DFD)是描述系统中数据流的图形工具,是一种用来表示信息流和信息变换过程的图解方法,可以标识一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理。
数据流图把软件系统看成是由数据流联系的各种功能的组合,在需求分析的过程中,可以用来建立目标系统的逻辑模型。
结构化需求分析采用的是"
自顶向下,由外到内,逐层分解"
的思想,开发人员要先画出系统顶层的数据流图,然后再逐层画出低层的数据流图。
顶层的数据流图要定义系统范围,并描述系统与外界的数据联系,它是对系统架构的高度概括和抽象。
底层的数据流图是对系统某个部分的精细描述。
数据流图的目的是在用户和系统开发人员之间提供语义的桥梁。
--KennethKozar
按照Gane-Sarson法,在绘制数据流图的过程中,主要用到了4个基本符号,如表2-1所示。
表2-1 数据流图的基本符号
1SA法概述
SA法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。
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数据词典),则子、父图平衡。
⑷合理使用文件
当文件作为某些加工之间的交界面时,文件必须画出来,一旦文件作为数据流图中的一个独立成份画出来了
为了对数据流图有更直观的认识,我们以一个考试成绩管理系统为例,介绍它的数据流图。
某单位进行招聘考试,应聘者报名后,单位的招聘委员会将每位应聘者的基本情况输入系统。
招聘考试结束后,招聘委员会需要将应聘者的成绩输入系统,并按照成绩对应聘者进行排序,将成绩单发放给每位应聘者,并发放录用通知书。
该考试成绩管理系统顶层和底层的数据流图分别如图2-6和图2-7所示。
(点击查看大图)图2-6 考试成绩管理系统顶层数据流图
(点击查看大图)图2-7 考试成绩管理系统底层数据流图
在绘制数据流图的过程中,要注意以下几点。
(1)数据的处理不一定是一个程序或一个模块,也可以是一个连贯的处理过程。
(2)数据存储是指输入或输出文件,但它不仅仅可以是文件,还可以是数据项或用来组织数据的中间数据。
(3)数据流和数据存储是不同状态的数据。
数据流是流动状态的数据,而数据存储是指处于静止状态的数据。
(4)当目标系统的规模较大时,为了描述的清晰和易于理解,通常采用逐层分解的方法,画出分层的数据流图。
在分解时,要考虑到自然性、均匀性和分解度几个概念。
自然性是指概念上要合理和清晰。
均匀性是指尽量将一个大问题分解为规模均匀的若干部分。
分解度是指分解的维度,一般每一个加工每次分解最多不宜超过7个子加工,应分解到基本的加工为止。
(5)数据流图分层细化时必须保持信息的连续性,即细化前后对应功能的输入和输出数据必须相同。
关于数据流图的详细绘制方法,本章的实践部分会详细介绍。
2.4.2 数据字典
用数据流图来表示系统的逻辑模型直观且形象,但是缺乏细节描述,也就是说它没有准确和完整地定义各个图元。
可以用数据字典(datadictionary,DD)来对数据流图做出补充和完善。
数据字典用于定义数据流图中各个图元的具体内容,为数据流图中出现的图形元素做出确切的解释。
数据字典包含4类条目:
数据流、数据存储、数据项和数据加工。
这些条目按照一定的规则组织起来便构成了数据字典。
定义规则时,常用的符号如表2-2所示。
表2-2 数据字典符号
符号
含义
示例
=
被定义为
+
与
X=a+b表示X由a和b组成
[…|…]
或
X=[a|b]表示X由a或b组成
m{…}n或
重复
X=2{a}6或表示重复2~6次a
{…}
X={a}表示X由0个或多个a组成
(…)
可选
X=(a)表示a在X中可能出现,
也可能不出现
“…”
基本数据元素
X=“a”表示X是取值为
字符a的数据元素
..
连接符
X=1..9表示X可取1到9中
的任意一个值
例如,数据流"
应聘者名单"
由若干应聘者姓名、性别、年龄、专业和联系电话等信息组成,那么"
可以表示为:
应聘者名单={应聘者姓名+性别+年龄+专业+联系电话}。
数据项考试成绩可以表示为:
考试成绩=0..100。
再如,某教务系统的学生成绩库文件的数据字典描述可以表示为以下形式。
文件名:
学生成绩库
记录定义:
学生成绩=学号+姓名+{课程代码+成绩+[必修|选修]}
学号:
由6位数字组成
姓名:
2~4个汉字
课程代码:
8位字符串
成绩:
1~3位十进制整数
文件组织:
以学号为关键字递增排列
2.4.3 E-R图
E-R图用于描述应用系统的概念结构数据模型,它是进行需求分析,并归纳、整理、表达和优化现实世界中数据及其联系的重要工具。
在建模的过程中,E-R图以实体、联系和属性三个基本概念概括数据的基本结构。
实体就是现实世界中的事物,多用矩形框来表示,框内含有相应的实体名称。
比如,在一个教务系统中,"
学生"
就是一个实体,如图2-8所示。
图2-8 学生实体
属性多用椭圆形表示,并用无向边与相应的实体联系起来,表示该属性归某实体所有。
可以说,实体是由若干个属性组成的,每个属性都代表了实体的某些特征。
学生实体的属性如图2-9所示。
(点击查看大图)图2-9 学生实体的属性
联系用菱形表示,并用无向边分别与有关实体连接起来,以此描述实体之间的关系。
实体之间存在着三种联系类型,分别是一对一、一对多、多对多,它们反映到E-R图中就为相应的联系类型,即1:
1、1:
n和m:
n。
(1)一对一联系是指甲实体的任何一个实例只能对应到乙实体的一个实例,并且乙实体的任何一个实例只能对应到甲实体的一个实例。
比如,在一个座位分配系统中,"
实体和"
座位"
实体之间的关系就是一对一的,如图2-10所示。
(2)一对多联系是指甲实体的任何一个实例能够对应到乙实体的多个实例,而乙实体的任何一个实例只能对应到甲实体的一个实例。
比如,在一个住宿管理系统中,一个"
只能分配到一间"
宿舍"
,而一间"
可以容纳多个"
,如图2-11所示。
(点击查看大图)图2-10 一对一联系
(点击查看大图)图2-11 一对多联系
(3)多对多联系是指甲实体的任何一个实例能够对应到乙实体的若干个实例,而乙实体的任何一个实例也可以对应到甲实体的若干个实例。
比如,在一个选课系统中,一个"
可以选修若干门"
课程"
,同时一门"
也可以被若干个"
选修,如图2-12所示。
(点击查看大图)图2-12 多对多联系
需要指出的是,同一个系统的E-R图不具有唯一性,即不同的软件开发人员所设计出来的E-R图可能不同。
2.5 利用Visio绘制网上书店系统的数据流图
(1)
网上书店是一种新型的书店模式,它不仅是传统销售渠道的发展和补充,也是未来图书销售的发展方向。
目前,我国运作和销售较好的大型网上书店有很多,如当当、卓越亚马逊等,其中当当网上书店在价格和品种方面的优势众所周知;
卓越亚马逊网上书店创造流行的能力比较强。
国外影响较大的网上书店有美国的亚马逊、德国的贝塔斯曼等,其中亚马逊网上书店在1998年拥有450万名顾客,而到2002年就有将近32亿人网上购书,销售额达到了78亿美元。
网上售书将成为图书销售的主要渠道。
下面我们将以一个小型的"
网上书店系统"
为例,对软件工程开发实践方法和相关工具的使用进行介绍。
该网上书店系统旨在实现图书销售的电子商务模式并满足经销商和用户进行电子交易的需求,从而充分发挥网上交易的优势。
它的目标是保证经销商和用户之间快速的信息交流。
本节主要是实践利用Visio2007来绘制网上书店系统的数据流图。
利用Visio2007创建Gane-Sarson数据流图,可以选择"
软件和数据库"
模板,然后再选择"
数据流模型图"
,创建之后可以看到Gane-Sarson有4种基本符号,如表2-1所示。
在绘制系统数据流图的过程中,结构化需求分析方法通常强调"
自顶向下,逐层分析"
的思想。
对于大规模的软件系统而言,需要采用多层的数据流图才能将问题描述清楚,而对于中等规模或小型的软件系统而言,采用三层的数据流图就可以了。
在三层的数据流图中,顶层数据流图主要描述目标系统作为一个整体与外部用户或数据之间的交互;
中层数据流图是对顶层数据流图的细化,描述系统的主要功能模块,以及数据在功能模块之间的流动关系;
底层数据流图是对中层数据流图的进一步细化,它更关注于功能模块内部的数据处理细节。
绘制目标系统的顶层数据流图时,关键在于分析系统有哪些外部用户及与该系统进行交互的数据源点或终点。
例如,对于这里的网上书店系统,其外部用户主要有游客、会员和管理员。
其中,游客进行注册后,可以成为系统的会员,会员享有订购图书及订单和书籍等信息查询的功能,管理员可对系统的各种信息进行管理和维护。
根据上述分析,可以得到网上书店系统的顶层数据流图,如图2-17所示。
(点击查看大图)图2-17 网上书店系统的顶层数据流图
中层数据流图是对顶层数据流图的细化,它把目标系统主要的功能模块细分为不同的加工,并对数据在不同加工之间的流动关系进行描述。
按照结构化
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 需求 分析 传统 结构 方法