需求分析是软件定义时期的最后一个阶段,它的基本任务是准确回答“系统必须做什么”
需求分析的主要过程:获取需求->需求分析->需求规格说明->需求验证
一、需求分析的任务
~需求分析的主要任务~:回答“系统必须做什么”的问题,也就是要明确系统功能,对目标系统提出完整、准确、清晰、具体的要求。
~需求分析的指导方法~:结构化分析方法SA(即面向数据流的分析方法
自顶向下,逐层分解, 抽象 和 分解 是结构化分析方法采用的两个基本手段。
常见模型表达工具: ER图,数据流图DFD,数据字典,状态图,层次方框图
二、‼️需求获取
- 访谈
- 🔺面向数据流自顶向下求精(数据是需求分析的出发点,需求分析的目标之一就是把数据流和数据存储定义到元素级)
- 🔺简易的应用规格说明技术(即面向团队的需求收集法;首先进行初步访谈,通过用户对基本问题的回答初步确定待解决问题的范围和方案,然后开发者和用户分别写出产品需求,目的为得出一张意见一致的列表,每个小组根据列表创建出小型规格说明;完成小型规格说明之后,每个参会者都制定出产品的一套确认标准;最后由一名或多名参与会议者根据会议成果起草完整的软件需求规格说明书。
- 快速建立软件原型
三、分析建模
需求分析过程应该建立3种模型,分别为数据模型、功能模型、行为模型
- 数据模型(ER图-----描绘数据对象及数据对象间的关系
- 功能模型(数据流图+数据字典)
- 行为模型(状态转换图-----描绘系统的各种行为模式和在不同状态间转换的方式
1、实体联系图ER (一般建立的是一个概念性的数据模型,也称信息模型
概念性的数据模型是一种面向问题的数据模型,是按照用户观点对数据建立的模型。
数据模型包含三种相互关联的信息:数据对象、数据对象的属性、数据对象彼此间相互连接的关系
1)数据对象
是复合信息的抽象,所谓复合信息是指具有一系列不同性质或属性的事物。
例如 事物(报表)、行为(打电话)、事件(响警报)、角色(教师,医生)、单位(会计科)、地点(仓库)等
2)属性
例如 描述汽车的属性为生产厂家、品牌、型号等
3)联系
教师与课程存在“教”的联系
联系分为三种类型:一对一、一对多、多对多
4)符号表示
矩形 代表 实体,菱形 代表 联系 ,椭圆形或者圆角矩形 代表 属性
2、数据流图DFD ➕ 数据字典
描述系统功能
数据字典是针对DFD中数据流、数据存储等作出的解释说明
3、状态转换图(状态图
描绘系统(系统中实体/单个事件)的状态以及引起状态转换的事件来表示系统的行为
四、‼️验证软件需求
四个方面验证软件需求:
- 一致性(所有需求必须一致,任何一条需求不能和其他需求矛盾
- 完整性(需求必须是完整的,规格说明书应该包含用户需要的每一个功能
- 现实性(指定的的需求应该是现有的硬件与软件技术基本上可以实现的
- 有效性(需求必须正确有效,确实能解决用户面对的问题
验证软件需求的方法:
- 验证需求一致性
- 验证需求现实性
- 验证需求完整性和有效性