需求分析(软件工程第三章)

时间:2022-07-13 03:24:56
 

基本任务:对目标系统提出完整、准确、清晰、具体的要求,即准确的回答“系统必须做什么?”这个问题。

为什么需要需求分析:

因为在可行性研究阶段,我们是以最小的代码和最短的时间内确定是否存在可行的解法方法,忽略了很多细节,在这个阶段需要详细描述。

分析方法必须遵守的准则:

(1)       必须理解并描述问题的信息领域,根据这条准则应该建立数据模型

(2)       必须定义软件完成的功能,根据这条准则应该建立功能模型

(3)       必须描述作为外部事件结果的软件行为,要求建立行为模型

(4)       必须对描述信息,功能和行为的模型进行分解,用层次的方式展示细节。

需求分析的任务

综合要求:

1. 功能需求

指定系统必须完成的服务

2. 性能需求

指定系统必须满足的定时约束或容量约束等约束。

3. 可靠性和可用性需求

定量的指定系统的可靠性

4. 出错处理需求

说明系统对环境错误应该怎样处理

5. 接口需求

描述应用系统与它环境通信的格式

6. 约束

描述在设计或实现应用系统时应遵守的限制条件(用户或环境强加给项目的限制条件)

7. 逆向需求

说明系统不应该做什么

8. 将来可能提出的要求

列出那些不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。目的是为了对系统将来可能的扩充和修改预做准备。

数据要求:

数据可以全面准确地定义数据,数据字典的缺点是不够形象直观,为了提高可理解性,常加入图形工具辅助描绘数据结构。

为了减少数据冗余、避免出现插入异常或删除异常,简化修改数据的过程,通常要把数据结构规范化。

导出系统的逻辑模型:

综合以上两个要求,导出系统的详细的逻辑模型,常用数据流图、ER图、状态转换图、数据字典和主要的处理算法描述这个模型。

修正系统开发计划:

获得更深入的了解,比较准确的估计系统的成本和进度,修正以前制定的开发计划。

与用户沟通获得需求的方法:

(1)       访谈(包括调查表)

(2)       情景分析

(3)       从输出回溯输入,利用已有的数据流图、数据字典和IPO图,然后再与用户一步步讨论数据处理流程,进一步了解详细需求

基于团队的需求收集法:

(1)       首先进行初步的访谈(双方都分别写一份产品需求),会前列一份列表,说明系统环境组成部分的对象、系统将产生的对象以前系统为了完成功能将使用的对象。

(2)       会议开始后,讨论的第一个问题是,是否需要这个新的产品,一旦大家都同意确实需要这个新产品,则可以把会前准备好的列表展示出来供大家讨论。

(3)       针对完每个列表之后,合并成一张组合列表,加入展示过程中产生的新想法。

(4)       分组,为每张列表中的项目制定小型规模说明(对列表中包含的单词或短语的准确说明)

(5)       每个小组向全体成员展示他们制定的小型规格说明,供大家,会后做进一步精化工作。

(6)       起草完整的需求说明书。

快速建立软件原型:

最准确、最有效、最强大的需求分析技术

任务:快速地为用户提供一个展示其功能的目标系统的模型(可运行的软件原型,只演示其将有的功能,而不是实现其功能)

E-R

包含三种信息:数据对象、对象属性和对象关系

符号:矩形代表对象,菱形代表关系,椭圆或圆角矩形代表属性。

数据规范化

第一范式:指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性,否则不是关系数据模型. 简而言之,第一范式就是无重复的列

第二范式:除了要满足第一范式,还要保证每个非关键字属性值完全依赖于关键字。

第三范式:符合第二范式,同时每个非关键字属性不能传递依赖于其他的非关键字属性。要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。

BC范式:符合第一范式,且每个属性不传递依赖于R的任何键。

第四范式:R<UF>1NF,如果对于R的每个非平凡多值依赖X→→YY  X),X都含有候选码

状态转换图

状态:代表任何可以被观察到的系统的一种行为模式。

状态有:初态、终态和中间状态。

初态只有一个,终态可有多个。

事件:引起系统做动作或转换状态的控制信息。

符号:圆解矩形,可以用直线分格

事件表达式:事件说明[守卫条件]/动作表达式

事件说明的语法:事件名(参数表)

动作表达式:是一个过程表达式,当状态转换开始时执行该表达式。

其它图形工具

层次方框图:从顶往下,一层层往下精细化,直到确定数据结构的全部细节为止。

符号:矩形框(数据子集)

Warnier图:在一个花括号内的所有名字都属于同一类信息。有点类似树结构。

IPO图:是输入、处理、输出图的简称。

验证需求

从四个方面验证:

(1)       一致性:任何一条需求不能和其他需求互相矛盾。

(2)       完整性:需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。

(3)       现实性:指定的需求应该用现有的硬件技术和软件技术基本上可以实现的。

(4)       有效性:必须证明需求是正确有效的,确实能解决用户面对的问题。