一、概念
(1)需求分析是面向问题的,通过对用户的业务流程进行分析。明确用户
业务中,系统应该做什么。然后通过规格说明书把它表达出来。 定义问题,即系统做什么。
目的:澄清用户的各种需求。
基本任务:用户和开发人员共同来理解用户的需求,并把双方的理解表
达出一份书面文档----需求说明书。
(2)用户要求:功能要求(数据要求和加工要求)、性能要求、安全要求、
可靠性、开发费用、开发周期、软硬资源的使用。
(3)需求说明书的作用:
1)为用户和软件人员相互了解提供基础。
2)反映出问题的结构,为软件人员进行设计和编码的基础。 3)作为验收的依据,可为选取用例和验收提供依据。
需求说明书应该完整、一致、精确、无二义性、简单、易懂、易维护的特点。 (4)分析员 具有的能力: 1) 熟悉计算机技术
2) 了解用户业务领域的相关知识。
3) 能在用户和软件人员之间借助数据处理的概念进行交流。 责任:做为用户的翻译,但不能代表用户提出要求。
二、结构化分析方法(SA)
1、思想:由顶向下逐层分解。把大问题分解成许多小问题,然后逐个
解决。 分为三层
顶层图:只有一个,用来抽象的描述整个系统。定义系统的边界。 中间层:从抽象到具体的逐步过渡。描述了加工的分解。从0开始编号。 底层:具体画出系统的每个细节。由一些不必再分解的加工组成,这些加工比较简单,叫基本加工。 优点:
2、描述方式
SA方法用介于形式语言和自然语言的描述。 包含三部分:
1)分层的数据流图:描述系统的分解,系统由哪几个部分组成,各部分之间有什么联系。
2)数据字典:描述系统中的每一个数据。 3)小说明。描述系统中的每一个加工。
3、数据流图
1)组成
数据流:由一组固定成分的数据组成。在数据字典中包含数据项条目和
数据流条目。
流向:原点---加工,加工----终点,加工----文件,文件---加工,加工
---加工。
注描述的是数据流而不是控制流。
加工:对数据进行操作。在数据字典中包含基本加工条目。
每个加工有一个编号,这个编号表示在层次分解中的位置。
文件:暂时存储的数据。在数据字典中包含文件条目。
源点和终点:数据的来源和去向。通常存在于系统之外的人员和组织。
外部实体 加工 数据流 文件
2)由外向里画数据流图
画法:
画出系统的输入输出数据流:即确定系统的范围,然后考虑系统内部。
画系统内部:逐步将系统的输入输出数据流用一连串的加工连接起来。
在数据流的组成或值发生改变变化的地方应画一个加工,它的作用就是实现这种变化的。
画加工的内部:如果加工内部还有一些数据流,则可以将这些加工用几
个子加工代替,并在子加工之间画出这些数据流。
编号规则:
子图的编号就是父图中相应加工的编号。
子图中的加工编号由子图号、小数点局部号连接而成。
父图与子图的平衡:子图的所有数据输入流必须是父图中相应加工的输
入,子图的所有数据输出流必须是父图中相应加工的输出。
局部文件:在画父图时,只需画出加工和加工之间的联系,而不必画出
加工内部的细节。
分解的程度:一个加工最多分解成7个子加工。
4、数据字典
(1)数据流图中的条目 1)数据项条目
所谓数据项是指不可再分解的数据单位,数据项条目给出某个数据项的定义。数据项条目包含数据项标识和数据项属性描述两部分。 名称: 别名: 简述: 数据组成: 数据类型: 长度:
取值范围:00.00~99.99 备注: 2)数据流条目
数据流条目给出数据流程图中某个数据流的定义。它通常包括:
数据流标识(名字)、数据流的数据组成和它的流动属性描述三 部分。 名称: 简述: 数据流来源: 数据流去向: 数据流量: 高峰期流量: 组成: 备注: 3)文件条目
文件条目是对某个文件的定义,文件条目包含文件标识、文件的记录组成。 名称: 简述: 输入: 输出: 组成: 备注:
4)加工条目
加工条目给出数据流程图中所有基本加工的说明,内容包括:加工的标识、处理逻辑、激发条件、执行频率、出错处理等。 名称: 编号: 输入: 输出: 激发条件: 执行频率: 处理逻辑: 备注:
(2) 数据组成的定义方法
定义任何复杂的事物都是用该事物的基本成分的某种组合来表示。在数据定义中把这样的基本成分称为数据元素。
1)由数据元素组合成数据的方式有三种基本类型: 顺序:以确定的次序连接两个或多个数据分量。 选择:从两个或多个可能的分量中选取一个。 重复:重复指定的分量零次或多次。
2)在数据词典中通常采用下面的几种符号来描述数据的组成: =:表示定义为。 +:表示顺序连接。
[分量1|分量2|…|分量n]:表示选择其中某个分量。
{分量}:表示重复花括号内的分量若干次,重复次数的上下限可在花括号边上标出。当上下限相同时表示重复固定的次数。
重复次数的上下限分别为1和0时,表示该数据分量可有可无,可使用一种简单的符号来表示,该符号为:(分量) (3)处理逻辑的描述方法 1)结构化语言
结构化语言是一种介于自然语言和形式语言之间的一种语言。之所以称为结构化语言,是因为它是受结构化程序设计思想的启发而发展的。采用结构化语言既避免了形式语言(如程序设计语言)无法被普通用户理解的问题,又避免了自然语言不严格、具有二义性等缺点。
三种基本控制结构来描述处理逻辑:即顺序结构、选择结构和重复结构。它不同于程序设计语言之处在于它没有严格的语法限制。
结构化语言的结构可分为外层结构和内层结构,外层语言构成了描述处理逻辑的框架,由上述三种基本结构构成,可以相互嵌套。内层使用灵活的、有限的自然语言词汇。
(1) 顺序语句:它是一组祈使语句(内层语句)、选择语句和重复语句的顺序排列。
(2) 选择语句:它的一般形式为 如果 条件
那么 动作1
否则 动作2
每一个动作都可以是一个内层语句或顺序语句、选择语句和重复语句。这种语句相当于程序设计语言中的条件语句,有些教材中采用英文if…then…else…来表示该结构。 (3) 重复语句:它的一般形式为
自然语言:对 条件或多个相同事物中的每一个 做 某动作 如果采用英文来表示,其形式为
foreach <条件> do <动作>
结构化语言没有确定的语法公式,也没有保留字,外层结构中的一些词汇在实际工作中也可以使用其它一些类似的词语来替代。 2)判定表
判定表是另一种常用的描述工具,它适合于处理需要根据多个条件的多种组合决定采取何种目标动作的情况。
条件定义动作定义条件取值选定的动作绘制判定表的步骤介绍如下:
第一步:提取问题中的条件,这个问题中的条件有两个,即提货单的金额和期限。
第二步:标示出每个条件的取值。为便于绘制判定表,可用符号来代替条件的取值。
第三步:计算所有条件的组合数N。
第四步:提取目标动作。不发批准单和提货单、发批准单和提货单、发通知单。
第五步:绘制判定表
因篇幅问题不能全部显示,请点此查看更多更全内容