软件需求分析 本章共分为四个部分,一软件需求的任务和过程;二结构化分析方法;三,原型化方法四,动态分析方法。 本章学习的要点是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)如果没有计算机系统帮助的话,人工绘制太麻烦,工作量较大。
|
|