第三章 需求分析
软件需求分析的任务:深入描述软件的功能和性能
确认软件设计的约束和软件同其他系统元素的接口问题
定义软件的其他有效性需求
软件需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。
需求分析的过程
问题识别
分析与综合(面向数据流的结构化分析方法sa,面向数据结构的jackson方法jsd,结构化数据系统开发方法dssd,面向对象的分析方
法ooa等)
编制需求分析阶段文档(软件需求说明书,数据要求说明书,初步的用户手册,修改、完善与确定软件开发实施计划)
需求分析评审
需求分析的原则:需要能够表达和理解问题的信息域和功能域
要能以层次化的方式对问题进行分解和不断细化
指导性原则
在开始建立分析模型前,先理解问题
开发原型使得用户能够了解将如何发生人机交互
记录每个需求的起源及原因
使用多个需求视图
给需求赋予优先级
努力删除含糊性
需求分析的方法
大多数的需求分析方法是由数据驱动的,数据域具有三种属性:数据流、数据内容和数据结构。通常,一种需求分析方法总要利用一种或
几种属性。
需求分析方法具有一下的共性
支持数据域分析的机制
功能表示的方法
接口的定义
问题分解的机制以及对抽象的支持
逻辑视图和物理视图
系统抽象模型
问题分解的两种方式
横向分解 纵向分解
软件需求规格说明的原则
从现实中分离功能,即描述要做什么而不是怎样实现
要求使用面向处理的规格说明语言(或称系统定义语言)
结构化分析方法
面向数据流进行后需求分析的方法
结构化分析方法适合与数据处理类型软件的需求分析
数据流图:dfd
定义:从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的传输交换过程。数据流图是结构化系统分析的主要工具,他表示了系统内部信息的流向,并表示了系统的逻辑处理功能。
特性:抽象性 概括性 层次性
基本符号;
用途:系统分析员用这种工具可以自顶向下分析系统信息流程
可在图上画出需要计算机处理的部分
根据数据存储,进一步作数据分析,向数据库设计过渡
根据数据流向,定出存取方式
对应一个处理过程,用相应的语言、判定表等工具表达处理方法
优缺点:总体概念强,每一层都明确强调“干什么”,“需要什么”,“给出什么”
可以反应出数据的流向和处理过程
由于自顶向下分析,容易及早发现系统各部分的逻辑错误,也容易修正
不直观,一般都要在作业流程分析的基础上加以概括、抽象、修正来得到
如果没有计算机系统帮助的话,人工绘制太麻烦,工作量较大
与绘制其他流程图(系统流程图,程序流程图,程序结构图,控制流程图)的区别
数据流与数据加工之间的关系
数据流图层次结构
为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图
检查和修改数据流图的原则
不允许文件到文件,也不允许文件到数据源
数据流不是从加工出发,就是流向加工
不允许画控制流
不允许交叉、重叠
数据字典是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明,是数据流程图的补充工具。数据流图和数据字典共同
构成系统的逻辑模型
数据词典与数据流图配合,能清楚的表达数据处理的要求
数据字典内容:(数据流 数据项 数据结构 数据存储 处理逻辑 外部实体 )
用于书写加工逻辑说明的工具
结构化英语 判定表 判定树
从机器可读性来讲,判定表与结构化英语优于判定树
从描述的直观性来讲,判定树优于判定表和结构化英语
从逻辑验证和优化能力来讲,结构化英语优于判定表与判定树
原型化方法:
分类:探索型,实验型,进化型
使用策略:废弃策略,追加策略
开发优缺点:用户和设计人员接触比较密切。
提供了一种开发软件的方法
各个阶段的层次分得不是很清楚
可以容易的确定系统的性能
原型开发模型
模型的细化过程
最常用的动态分析方法
状态迁移图
优点:状态之间的关系能够直观的捕捉到
由于状态迁移图的单纯性,能够机械的分析许多情况,可很容易的建立分析工具
时序图
petri网
需求规格说明书
1、引言
编写目的 项目背景 定义 参考资料
2、任务概述
目标 运行环境 条件与限制
3、数据描述
静态数据 动态数据 数据库介绍 数据词典 数据采集
4、功能需求
功能划分 功能描述
5、性能需求
数据精确度 时间特性 适应性
6、运行需求
用户界面 硬件接口 软件接口 故障处理
7、其他需求