软件工程-------第三章 需求分析
(1)需求分析的定义
需求分析是软件定义的最后一个阶段,它的基本任务是准确地回答“系统必须做什么”这个问题
在需求分析结束之前系统分析员应该写出软件需求规格说明书 ,以书面的形式准确地描述软件的需求
(2)需求分析的任务
功能需求
性能需求
出错处理需求
接口需求
约束
逆向需求
将来可能提出的要求
可靠性和可用性需求
(3)与用户沟通获取需求的方法
访谈
访谈有两种基本形式:正式和非正式的访谈
正式的访谈是系统分析员将提出一些事先准备好的一些具体问题。
非正式访谈,分析员会提出一些用户可以自由回答的开放性问题。
面向数据自顶向下求精
软件系统本质上是信息处理系统,而任何信息处理系统都是输入数据转变成需要的输出信息。数据决定了需要的处理和算法,看来数据显然是需求分析的出发点。
结构化分析方法就是面向数据流自顶向下逐步求;
可行性研究产生的是高层数据流图,许多具体的细节没有包括在里面
简易的应用规格说明技术
一种面向团队的需求收集法。
过程:
首先进行初步的访谈,通过用户对基本问题的回答初步决定待解决问题的范围和解决方案
要求每位与会者在开会的的前几天认真审查产品的需求,并且列出作为系统环境组成部分的对象。
快速建立软件模型
快速建立软件模型是最有效、最强大的需求分析技术,快速原型就是快速建立起来的旨在演示目标系统主要功能的可运行的程序。
(4)实体-联系图(E-R图)
为了把用户的数据要求清楚、准确的描绘出来,系统分析员常常会建立一个数据模型(也称为信息模型)概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型于在软件系统中的实现方法无关。
数据模型包括3种相互关联的信息:数据对象、数据对象的属性、数据对象彼此间相互连接的关系。具体分析介绍如下:
数据对象:
数据对象是对软件必须理解的复合信息的抽象。所谓复合信息是指具体一系列不同性质或属性的事物,仅有单个值的事物不是数据对象。
数据对象只封装了数据而没有对施加于数据上的操作的引用,这是数据对象与面向对象范型。
属性
属性定义了数据对象的性质。必须把一个或多个属性定义为“标识符”,也就是说,当人们希望找到数据对象的一个实例时,用标识符属性作为“关键字”
联系
数据对象彼此之间相互连接的方式称为联系,也称为关系,分为以下三种
一对一联系(1:1)
一对多联系(1:N)
多对多联系(M:N)
E-R 图包含了实体即数据对象、关系、属性这三个概念,通常用矩形框代表实体,用连接相关实体的菱形框表示关系
(5)数据规范性
第一范式
第二范式
第三范式