码迷,mamicode.com
首页 > 其他好文 > 详细

软件评测师笔记_结构化需求分析法20161019

时间:2016-11-18 11:54:35      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:适合   目标   工位   包括   细节   不能   概念   技术   数据流图   

需求分析

需求分析的任务不是具体地解决问题,而是要准确地确定目标系统必须做什么。

用户了解他们所面对的问题,知道必须做什么,但通常不能完整准确地表达出他们的要求,也不知道计算机软件可以解决他们的哪些问题;软件开发人员知道软件可以做什么,但并不完全清楚特定用户的具体需求。系统分析员在需求分析阶段必须和用户充分交流,密切配合,以便得出一个能够真实反应用户要求的“需求分析模型”或“软件需求说明书”,这个模型或说明书将作为软件系统设计的依据。

需求分析模型通常使用UML中的用例图和类图等图形工具来表示,软件需求说明书一般可用数据流图、数据字典和自然语言书写。

 

面向对象方法已取代结构化方法成为软件方法学的主流。但对于一些功能需求非常明确而且不会轻易改变的软件系统,结构化方法仍然是比较有效的。

1.结构化分析

结构化分析(structured analysis,SA)方法是一种面向数据流的需求分析方法。它的基本思想是自顶向下逐层分解,把一个大问题分解成若干个小问题,每个小问题再分解成若干个更小的问题。经过逐层分解,每个最低层的问题都是足够简单、容易解决的,于是复杂的问题也就迎刃而解了。

数据流图(DFD)、数据字典(DD)、实体-关系图(E-R图),以及描述加工处理的结构化语言是结构化分析的常见工具,软件需求说明书是需求分析阶段的最后成果。

1)数据流图

数据流图(data flow diagram,DFD)是一种图形化技术,用来描述数据从输入到输出的变换流程。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。设计数据流图时只需考虑系统必须完成的基本逻辑功能,完全不需要考虑怎样具体地实现这些功能。

①DFD的基本成分

数据流图主要由4种成分组成,如表6-7所示。

表6-7 DFD的基本成分

 

(1)数据流(data flow):由一组固定成分的数据组成,表示数据的流向。它可以从源、文件流向加工,也可以从加工流向文件和宿,还可以从一个加工流向另一个加工。通常每个数据流必须有一个合适的名字,一方面是为了区别,另一方面也给人一个直观的印像,使人容易理解这个数据流的含义。但流向文件或从文件流出的数据流不必命名,因为这种数据流的组成部分就是相应文件的组成部分。

(2)加工(process):描述了输入数据流到输出数据流之间的变换,也就是输入数据流做了什么处理后变成了输出数据流。每个加工有一个名字和一个编号。编号反映了该加工位于分层DFD的哪个层次和哪张图中,以及它是哪个加工分解出来的子加工。

(3)文件(file):可以表示数据文件,也可以表示一个数据记录。流向文件的数据流表示写文件,流出文件的数据流表示读文件,双向箭头表示对文件既读又写。每个文件都有一个文件名。

(4)源/宿(source/sink):源是指系统所需数据的发源地,宿(也称为数据池)是指系统所产生的数据的归宿地。无论源或宿,均对应于外部实体,在框内应加注实体的名字。在一个软件系统中,有些源和宿可以是同一外部实体。

②分层数据流图

对于一个大型系统,如果在一张数据流图上画出所有的数据流和加工,则会使得数据流图复杂并难以理解。为了控制复杂性,结构化分析方法采用了数据流图分层技术。不是在一个数据流图中一次引入太多的细节,而是有控制地逐步增加细节,实现从抽象到具体的逐步过渡。

一套分层的数据流图由顶层、底层和中间层组成。顶层图说明了系统的边界,底层图由一些不必分解的基本加工组成。中间层的数据流图描述了某个加工的分解,而它的组成部分又要进一步被分解。在分层数据流图中,处于上层的图称为父图,处于下层的图称为子图。

③基本原则与注意事项

(1)自外向内,自顶向下,逐层细化,完善求精。

(2)保持父图与子图的平衡。也就是说,父图中某加工的输入/输出数据流必须与它的子图的输入/输出数据流在数量和名字上相同。

(3)保持数据守恒。也就是说,一个加工所有输出数据流中的数据必须能从该加工的输入数据流中直接获得,或者是通过该加工能产生的数据。

(4)加工细节隐蔽。根据抽象原则,在画父图时,只需画出加工和加工之间的关系,而不必画出各个加工内部的细节。

(5)简化加工间关系。在数据流图中,加工间的数据流越少,各个加工就越相对独立,所以应尽量减少加工间输入/输出数据流的数目。

(6)均匀分解。应该使一个数据流中的各个加工分解层次大致相同。

(7)适当地为数据流、加工、文件、源/宿命名,名字应反映该成分的实际意义,避免空洞的名字。

(8)忽略枝节。应集中精力于主要的数据流,而暂不考虑一些例外情况、出错处理等枝节性的问题。

(9)表现的是数据流而不是控制流。数据流图与传统的程序流程图不同,数据流图是从数据的角度描述一个系统,而流程图则是从对数据加工的角度来描述系统。数据流图中的箭头是数据流,而流程图中的箭头则是控制流,它表达的是程序执行的次序。数据流图适合于宏观地分析一个组织的业务概况,而程序流程图只适合于描述系统中某个加工的执行细节。

(10)每个加工必须既有输入数据流,又有输出数据流;在整套数据流图中,每个文件必须既有读文件的数据流,又有写文件的数据流,但在某一张子图中可能只有读没有写或者只有写没有读。

2)数据字典

数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

数据流图和数据字典共同构成系统的逻辑模型。没有数据流图,数据字典难以发挥作用;没有数据字典,数据流图就不严格。只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。

数据字典中有4种类型的条目。

①数据项条目

数据项条目给出某个数据单项的定义,通常为数据项的值类型、允许的取值范围等。

②数据流条目

数据流条目给出某个数据流的定义,它通常是列出该数据流的各组成数据项。有些数据流的组成比较复杂,可以采用自顶向下分解的方式将它表示成更低层次的组合,一直分解到每个与项目有关的人都清楚其准确含义时为止。

由低的数据元素(或称分量),组成更复杂的数据的方式有:

(1)顺序,即以确定次序连接两个或多个分量;

(2)选择,即从两个或多个可能的元素中选取一个;

(3)重复,即把指定的分量重复0次或多次;

(4)可选,即一个分量是可有可无的(重复0次或多次)。

③文件条目

文件条目给出某个文件的定义,通常也是列出其记录的组成数据项。此外,还可以指出文件的组织方式,如按单号递增次序排列等。

④加工条目

加工条目是对数据流图中每一个不能再分解的基本加工的精确说明。

说明中应精确描述用户要求某个加工做什么,包括加工的激发条件、加工逻辑、优先级、执行频率和出错处理等。其中加工逻辑是最基本的部分,它描述了输入数据流、输入文件与输出数据流、输出文件之间的逻辑关系。常用的加工逻辑描述方法有三种:结构化语言、判定表和判定树。

3)结构化语言

用自然语言描述加工逻辑是最方便的,但是自然语言往往不够精确,它可能存在二义性,而且难以用计算机处理。而形式化语言能够严格精确地描述事物,且易于被计算机处理,但不易被用户理解。采用一种介于自然语言和形式化语言之间的结构化语言来描述加工逻辑,可以较好地解决这一矛盾。

结构化语言实际上是一种半形式化语言,它的结构通常可分为内外两层。外层接近于形式化语言,而内层近似于自然语言的描述。

4)实体—关系图

实体—关系图(Entity-Relationship Diagram)简称E-R图,包含实体、关系和属性等3种基本成分。通常用矩形框代表实体,用连接相关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,并用直线把实体(或关系)与其属性连接起来。

人们通常就是用实体、关系和属性这三个概念来理解现实问题的,E-R图比较接近人的习惯思维方式。此外,E-R图使用简单的图形符号表达系统分析员对问题域的理解,不熟悉计算机技术的用户也能理解它,E-R图可以作为用户与系统分析员之间有效的交流工具。

E-R图通常用于数据库应用系统。

软件评测师笔记_结构化需求分析法20161019

标签:适合   目标   工位   包括   细节   不能   概念   技术   数据流图   

原文地址:http://www.cnblogs.com/Btest/p/6076892.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!