本章共分为四个部分,一软件需求的任务和过程;二结构化分析方法;三,原型化方法四,动态分析方法。
本章学习的要点是1。了解软件需求分析的目标和任务;2.了解软件需求的获得方法;3.掌握结构化的分析方法;4.了解需求规格说明和需求评审的主要内容。
软件需求分析的主要任务 : 深入描述软件的功能和性能; 确定软件设计的约束和软件同其他系统元素的接口细节;定义软件的其他有效性需求。
需求分析书要求做到一致性、完整性、现实性、有效性、可验证性。
需求分析的过程共四个部分:
(1) 问题的识别
从系统的角度来理解软件并评审软件范围是否恰当;去诶大牛股对目标系统的综合要求,即软件的需求;提出这些需求实现条件,以及需求应达到的标准。
软件的需求包括:功能需求;性能需求;环境需求;可靠性需求;安全保密需求;用户界面需求;资源使用需求、成本消耗需求、开发进度需求;预先估计以后系统可能达到的目标。
问题识别的另一项工作是建立分析所需要的通信途径,以保证能顺利地对问题进行分析。
(2) 分析与综合
从信息流和信息饥饿哦故出发,逐步细化所有的软件功能找出相同各元素之间的联系、接口特性和设计上的约束,分析他们是否满足功能要求,是否合理。
常用的分析方法:面向数据流的结构化分析方法(SA面向数据流);面向数据结构的Jackson方法(JSD面向数据结构)、结构化数据系统开发方法(DSSD)、面向对象的分析方法(OOA)
(3)编制需求分析阶段的文档
软件需求说明书;数据要求说明书;、初步的用户手册;修改、完善与确定软件开发实施计划。
(4) 需求分析评审
相同定义的目标是否与用户的需求一致;系统需求分析阶段提供的文档资料是否齐全;文档中的所有描述是否完整、清晰、准确反映用户要求;与所有其他系统成分的重要接口是否都已经描述。
软件需求分析的原则;
需要能够表达和理解问题的信息域和功能域;要能以层次化得方式对问题进行分解和不断细化。
指导性原则:1。在开始建立分析模型前先理解问题2开发原型使得用户能够了解将如何发生人机交互 。3.记录每个需求的起源以及原因。4.使用多个需求视图5。给需求赋予优先级6.努力删除含糊性。
软件需求规格说明的原则:
从现实中分离功能,即描述要“要做什么“而不是”怎么样实现“;要求使用面向处理的规格说明语言(或称系统定义语言)
软件需求方法:需求分析方法由对软件问题的信息域(信息流、结构流、信息内容)和功能域的系统分析过程及表示方法组成;大多数的绣球分析方法是有信息驱动的
结构化分析方法:面向数据流进行需求分析方法;结构化分析方法适合于数据处理类型软件的需求分析。
检查和修改数据流图的原则
1. 数据流图上所有图形符号只限于前述四种基本图形元素;
2. .数据流图的主图必须包括前述四种基本元素。缺一不可
3. 每个加工至少有一个输入数据流和一个输出数据流
4. .在数据流图中,需按层给加工框编号,标号表明该加工所处层次及上下层的亲子关系。
5. 5.规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。
画数据流图的时候要注意的: 图上每个元素都必须有名字;数据流图中不可夹带控制流;出画时可以忽略琐碎的细节,以集中精力于主要数据流
数据字典:数据字典与数据流图配合,能清楚地表达数据处理的要求
词条描述--------对于在数据流图中每一个别命名的图形元素,均加以定义,其内容有:名字。别号或编号,分类,描述,定义,位置,其他等
用于写加工逻辑说明的工具:结构化英语、判定表、判定树。
结构化英语 的词汇表有 英语命令动词、数据词典中定义的名字、有限的自定义词、 逻辑关系词 IF -THEN -ELSE 、CASE- OF . WHILE-DO 等。
判定树也是用来表达加工逻辑的一种工具,用时候它比判定表更直观。
ipo 输入处理图
机器可读性 判定表和结构化英语 优于判定树
描述的直观性来讲 判定树好
逻辑验证和优化能力判断表优于判定树和结构化英语
原型化方法:
在开发初期,要想得到一个完整准确的规格说明不是一件容易的事。
用户往往对系统只有一个模糊的想法,很难完全准确地表达对系统的全面要求。
软件原型的分类
探索型 实验型 进化型
原型使用策略 : 废弃策略 追加策略
最常用的动态分析方法:状态迁移图、 时序图、 Petri网
圆圈表示可得到的系统中状态
箭头表示从一种状态向另一种状态的迁移。
状态迁移图的优点:
状态之间的关系能够直接地捕捉到
由于状态迁移图的单纯性,能够机械地分析许多情况,可恨容易地建立分析工具。
处理连两个进程的同步问题petri网
需要完成的一个文档:
需求规格说明书
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.其他需求(安全,保密等)
需求分析的任务不是确定系统如何完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。
在这个阶段结束时交出的文档中应该包括详细的数据流图(DFD),数据字典(DD)和一组简明的算法描述。
需求分析方法
大多数的需求分析方法时由数据驱动的,数据域具有三种属性:数据流
、数据内容和数据结构。
具有的一下的共性:
1.支持数据域 2.功能表示的方法 3.接口的定义 4.问题分解的机制以及对抽象的支持 5.逻辑视图和物理视图 6.系统抽象模型
结构化分析方法使用数据流图DFD与数据字典DD来描述。
数据流图的特性: 抽象性 概括性 层次性
数据流图的用途
数据流图的作用主要有以下几条;
(1)系统分析员用这种工具可以自顶向下分析系统信息流程
(2)可在图上画出需要计算机处理的部分
(3)根据数据存贮,进一步做数据分析,向数据库设计过度。
(4)根据数据流向,定出存取方式
(5) 对应一个处理过程,用相应的语言、判定表等工具表达处理方法。
5.数据流图的优缺点
(1)总体概念强,每一层都明确强调“干什么”“需要什么”,“给出什么”
(2)可以反映出数据的流向和处理过程
(3)由于自顶向下的分析,同意及早发现系统各部分的逻辑错误,也容易修正
(4)容易与计算机处理相对照
(5)不直观,一般都要在作业流程分析的基础上加以概括、抽象、修正
来得到。
(6)如果没有计算机系统帮助的话,人工绘制太麻烦,工作量较大。