前言
软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。通过对应用问题及环境的理解与分析,为问题涉及的信息、功能及系统的行为建立模型,将用户的需求精确化、完全化,最终形成需求规格说明,这一系列的活动即构成软件开发生命周期的需求分析阶段。
软件需求分析的任务
*深入描述软件的功能和性能
*确定软件设计的约束和软件同其他系统元素的接口细节
*定义软件的其他有效性需求
*借助当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。
软件分析过程
软件的需求包括(综合要求):
功能需求,性能需求,环境需求,可靠性需求,安全保密要求,用户界面需求,资源使用需求,成本消耗需求,开发进度需求,预先估计以后系统可能达到的目标。
软件需求方法
需求分析方法由对软件问题的信息域和功能域的系统分析过程及其表示方法组成,大多数的需求分析方法是由信息驱动的。
结构化分析方法
1、数据流图
(1)数据流图中的主要图形元素
(2)数据流图的特性
抽象性:数据流图中只有4个基本符号组成,没有任何具体的物理部件,只能描绘数据在软件中的流动和被处理的逻辑过程,是系统逻辑功能的表示,这种抽象性有助于系统的功能分析和进一步的总体设计。
概括性:数据流图作为信息交流工具,由简单的符号组成,不包括任何物理实现的细节,便于用户理解和评价它。
层次性:数据流图可以按照功能分解的方法逐层来画,从整个系统的基本模型开始,逐步的分解,每分解一次,系统的处理就增多一些,每个处理的功能也更加具体。
(3)画数据流图的基本步骤概括地说,就是自外向内,自顶向下,逐层细化,完善求精。检查和修改的原则为:
*数据流图上只限用4中基本符号表示
*顶层数据流图上的数据必须封闭在外部实体之间
*每个加工至少有一个输入数据流和一个输出数据流
*在数据流图中,需按层给加工框编号,编号表明该加工框处于哪一层,以及上下层的父图和子图的对应关系
*规定任何一个数据流子图必须与它的上一层的一个加工对应,两者的输入数据流和输出数据流必须一致,父子图平衡
*图中的每一个元素都必须有名字
*数据流图中不可夹带控制流
*初画时可以忽略琐碎的细节,以集中精力于主要数据流
2、数据字典
数据字典与数据流图配合,能清楚地表达数据处理的求;词条描述——对于在数据流图中每一个被命名的图形元素,均加以定义,其内容有:名字,别名或编号,分类,描述,定义,位置,其它等。
(1)数据结构的描述
3、结构化英语
(1)结构化英语的词汇表由
*英语命令动词
*数据字典中定义的名字
*有限的自定义词
*逻辑关系词 IF_THEN_ELSE、CASE_OF、WHILE_DO、REPEAT_UNTIL等组成。
(2)是一种介于自然语言和形式语言之间的语言
(3)语言的正文用基本控制结构进行分割,加工中的操作用自然语言短语来表示
(4)基本控制结构有三种
*简单陈述句结构
*重复结构
*判定结构
4、判定表
如果数据流图的加工需要依赖于多个逻辑条件的取值,使用判定表来描述比较合适
5、判定树
判定树也是用来表达加工逻辑的一种工具。又时候它比判定表更直观。
软件过程中的原型开发
(1)why?
在开发初期,要想得到一个完整准确的规格说明不是一件容易的事,用户往往对系统只有一个模糊的想法,很难完全准确的表达对系统的全面要求。
(2)过程
(3)软件原型的分类
在软件开发中,原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性。分为探索型,实验型,进化型
(4)软件开发的过程就是基于原型开发,也就是说在软件开发的每一个阶段我们都可以进入原型开发。
需求规格说明书
1、引言
1.1编写目的
1.2项目背景
1.3定义
1.4参考资料
2.任务概述
2.1目标
2.2运行环境
2.3条件与限制
3.数据描述
3.1静态数据
3.2动态数据
3.3数据库介绍
3.4数据字典
3.5数据采集
4.功能需求
4.1功能划分
4.2功能描述
5.性能需求
5.1数据精确度
5.2时间特性
5.3适应性
6.运行需求
6.1用户界面
6.2硬件接口
6.3软件接口
6.4故障处理
7.其他需求