结构化需求分析
一、需求分析重要性
对软件需求深入理解是开发成功的前提和关键。
开发软件系统最困难的部分就是准确说明开发什么,最困难的概念性工作是编写出详细需求,包括所有面向用户、面向机器和其他软件系统的接口
此工作一旦做错,将会给系统带来极大损害,并且以后对它修改也极为困难。
二、结构化分析核心思想
分解化简问题
物理与逻辑表示分开
进行数据与逻辑抽象
三、结构化分析具体步骤
发现需求
与用户交谈,向用户提问题;
参观用户的工作流程,观察用户的操作;
向用户群体发调查问卷;
与同行、专家交谈,听取他们的意见;
分析已经存在的同类软件产品,提取需求;
从行业标准、规则中提取需求;
从Internet上搜查相关资料等。
求精
对初步需求反复求精多次细化。
建模
建立模型,用图形符号和组织规则书面描述事物。
模型核心:数据字典
描述软件使用和产生的所有数据对象
数据模型:实体关系图(E-R图)表达
描述数据对象间关系
图中数据对象属性用“数据对象描述”表达
功能模型:DFD表达
描绘数据在软件中移动,变换及相应功能
图中功能用“处理规格说明”表达
行为模型:状态转换图
描绘系统状态和在不同状态间转换方式
图中软件控制附加信息用“控制规格说明”表达
规格说明
书写软件需求规格说明,作为分析阶段最终成果
复审
3.1 数据模型
数据模型组成
数据对象
软件必须理解的复合信息表示,复合信息是具有一系列不同性质或属性的事物。
事务(报表)、地点(仓库)、角色(教师、学生)、单位(会计科)、行为(打电话)等
数据对象间关系
对象彼此间相互连接方式,也称联系。
分三类: 1:1 1:N M:N
属性
定义数据对象性质。
数据对象学生的属性可为学号、姓名、班级等。
实体关系图