《软件工程》-需求分析

【前言】
在需求分析中我们需要了解以下几点:
软件需求分析的任务和过程、结构化分析方法、原型化方法、动态分析方法,最后形成需求规格说明书。
【内容】
1.软件需求分析的任务
需求分析的基本任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的“做什么”的问题。软件需求分析要做的任务:
深入描述软件的功能和性能、确定软件设计的约束和软件;
同其它系统元素的接口细节、定义软件的其它有效性需求。
在这里插入图片描述
2.需求分析的过程
(1)问题识别
—从系统的角度来理解软件并评审软件范围是否恰当;
—确定对目标系统的综合要求,即软件的需求;
—提出这些需求实现条件,以及需求应达到的标准。
其中,软件的需求包括:
功能需求、性能需求、环境需求、可靠性需求、安全保密要求、用户界面需求、资源使用需求、成本消耗需求、开发进度需求、预先估计以后系统可能达到的目标。
—问题识别的另一项工作是建立分析所需要的通信途径,以保证能顺利地对问题进行分析。
在这里插入图片描述
(2)分析与综合
从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的约束,分析它们是否满足功能要求,是否合理。
常用的分析方法:
面向数据流的结构化分析方法(SA)
面向数据结构的Jackson方法(JSD)
结构化数据系统开发方法(DSSD)
面向对象的分析方法(OOA)等
(3)编制需求分析阶段的文档
软件需求说明书、数据要求说明书、初步的用户手册、
修改、完善与确定软件开发实施计划。
(4)需求分析评审
系统定义的目标是否与用户的要求一致;
系统需求分析阶段提供的文档资料是否齐全;
文档中的所有描述是否完整、清晰、准确反映用户要求;
与所有其它系统成分的重要接口是否都已经描述。

3.原则和方法介绍
(1)软件需求分析的原则
需要能够表达和理解问题的信息域和功能域;
要能以层次化的方式对问题进行分解和不断细化。
(2)软件需求规格说明的原则
从现实中分离功能,即描述要“做什么”而不是“怎样实现”;
要求使用面向处理的规格说明语言(或称系统定义语言)。
(3)软件需求方法
需求分析方法由对软件问题的信息域和功能域的系统分析的过程及其表示方法组成;大多数的需求分析方法是由信息驱动的。
(4)结构化分析方法
面向数据流进行需求分析的方法;
结构化分析方法适合于数据处理类型软件的需求分析。
4.需求分析流程
(1)DFD图:数据流图
在这里插入图片描述
(2)数据流图元素
在这里插入图片描述
(3)数据流与数据加工之间的关系
在这里插入图片描述
(4)数据流图的层次结构
为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。
在这里插入图片描述
(5)检查和修改数据流图的原则
数据流图上所有图形符号只限于前述四种基本图形元素;
数据流图的主图必须包括前述四种基本元素,缺一不可;
每个加工至少有一个输入数据流和一个输出数据流;
在数据流程图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系。
规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。

(6)数据流程图注意事项
图上每个元素都必须有名字;
数据流图中不可夹带控制流;
初画时可以忽略琐碎的细节,以集中精力于主要数据流.
(7)数据字典
数据字典与数据流图配合,能清楚地表达数据处理的要求。
词条描述-对于在数据流图中每一个被命名的图形元素,均加以定义,其内容有:名字,别名或编号,分类,描述,定义,位置,其它等。
在这里插入图片描述
(8)用于写加工逻辑说明的工具
—结构化英语
结构化英语是一种介于自然语言和形式化语言之间的语言,语言的正文用基本控制结构进行分割,加工中的操作用自然语言短语来表示。其基本控制结构有三种:简单陈述句结构、重复结构、判定结构。
结构化英语的词汇表由英语命令动词;数据词典中定义的名字;有限的自定义词;逻辑关系词IF_THEN_ELSE、CASE_OF、WHILE_DO、REPEAT_UNTIL等组成。
—判定表
如果数据流图的加工需要依赖于多个逻辑条件的取值,使用判定表来描述比较合适。
—判定树
判定树也是用来表达加工逻辑的一种工具。有时候它比判定表更直观。
举例说明:
在这里插入图片描述
5.原型化方法
在开发初期,要想得到一个完整准确地规格说明不是一件容易的事,用户往往对系统只有一个模糊的想法,很难完全准确地表达对系统的全面要求。
5.1软件原型的分类
在软件开发中,原型是软件的一个早期可运行的版本,它反映最终系统的部分重要特性:探索型、实验型、进化型.
5.2原型使用策略
废弃策略
追加策略
5.3原型开发模型
在这里插入图片描述
软件开发模型
在这里插入图片描述
6.动态分析方法
6.1状态迁移图
状态迁移图是描述系统的状态如何相应外部的信号进行推移的一种图形表示。
圆圈“O”表示可得到的系统状态
箭头“——>”表示从一种状态向另一种状态的迁移。
在这里插入图片描述
可得到的状态=就绪,运行,等待
生成的事件=t1,t2,t3,t4
t1——中断事件
t2——中断已处理
t3——分配CPU
t4——用完CPU时间

状态迁移图的优点
(1)状态之间的关系能够直观地捕捉到;
(2)由于状态迁移图的单纯性,能够机械地分析许多情况,可很容易地建立分析工具。
6.2时序图
是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,其中的每条消息对应一个类操作或状态机中引起转换的触发事件。
6.3Petri网
Petri网,简称PNG(Petri Net Graph),已广泛地应用于硬件与软件系统的开发中,它适用于描述与分析相互独立、协同操作的处理系统,也就是并发执行的处理系统。有两种结点:
位置:符号为“O”,它用来表示系统的状态。
转移:符号额为“?”,它用来表示系统中的事件。
图中的有向边表示对转移的输入,或由转移的输出。
在这里插入图片描述
示例
在这里插入图片描述
7.需求规格说明书
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.其它需求
安全性,保密性,维护性等

猜你喜欢

转载自blog.csdn.net/frj0260/article/details/84931783
今日推荐