软件需求分析

来源:互联网 发布:获取网页源码 编辑:程序博客网 时间:2024/06/05 10:31

在系统的开发阶段,软件需求是一个非常重要的阶段。换句话说,就是一个良好的需求分析活动,可以让我们避免早期开发阶段犯的错误,进而提高软件开发效率和改进软件开发质量。

下面这张大图,是软件需求分析阶段的一个大概图,里面涉及到了需求分析的任务,原则,过程以及需求分析所用到的方法。


一,需求分析任务:

需求分析任务主要是借助于当前系统的逻辑模型导出目标系统的逻辑模型,换句话说就是解决目标系统“做什么”的问题!如下图虚线框中的内容:



二、软件需求分析过程

该过程主要包括:问题识别、分析与综合、编制需求分析阶段的文档和需求分析评审四个部分。



1.问题识别包括功能需求,性能需求,环境需求,可靠性需求、安全保密要求,用户界面需求等,换句话说问题识别阶段,给我们的开发系统提出了一个综合的要求,以及提出了达到这个要求,我们应该具备什么条件。其中问题识别还有另一项工作就是建立通信途径,以保证能顺利的对问题进行分析。

2.分析与综合:从信息流和信息结构出发,逐步细化所有的软件的功能,找出系统各元素之间的联系,接口特性和设计上的约束,然后分析他们是否满足功能需求,最后再综合成系统的解决方案。其实,在分析与综合阶段,主要就是我们根据分析得到具体的问题,然后根据这些问题找出具体的解决方案。

3.编制需求分析文档:需求分析阶段最后是形成需求规格说明书。

4.评审:不仅对文档资料和接口等进行评估,对开发风险也要进行评估(例如技术、进度等风险)。


三、需求分析方法

1.结构化分析方法,是一种面向数据流自顶向下,逐步求精的需求方法。换句话说,结构化分析方法利用图形的方式来表达用户的需求,常用到的工具有:数据流图、数据字典、结构化英语、判定树以及判定表等。


下面我们来重点介绍数据流图

数据流图,是一种图形工具。用来描述数据输入输出的一个过程。所以要了解它的画法,先来了解一下它相关的画法:



分层数据流图:




注意的是:父图和子图之间的平衡,即父图中的某个加工的输入输出数据流应该同相应的子图的输入输出相同。


数据流图当中涉及到了一些原则是我们应该要注意的:1.数据流图上所有的图形符号只限于数据加工、数据源和终点、数据流和数据存储文件四个基本元素,缺一不可。2.数据流图的主图也必须包括这四个基本元素。3.每个加工至少有一个输入数据流和一个输出数据流。3.在数据流图中,需按层给加工编号。4.任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。5.每个元素都必须有名字。6.数据流图中不可夹带控制流。6.初画时可以忽略琐碎的细节,以集中精力于主要数据流。


2.原型化分析方法:在开发的初期,我们很难得到一个完整和准确的规格说明书,用户对系统也只是一个很模糊的想法。所以我们在开发的初期可以构造一个原型,然后在这个原型的基础上,不断的进行改进,使之与我们的目标系统越来越接近。

原型化方法在前面的软件生存周期模型那篇文章中,就曾涉及到,它最大的优点就是避免了瀑布模型的缺点,原型化方法中用户人员和设计人员始终在一起,这样就可以使开发人员能及时的了解到用户需求的变更,从而减少了由于软件需求不明确而带来的开发风险。





3.动态分析方法:包括状态迁移图、时序图和Petri网。

状态迁移图是描述系统的状态如何相应外部的信号进行推移的一种图形表示。

例如,下面的例子:


根据上面的图,我们可以看的出来状态迁移图可以直观的表达各状态之间的关系,而且它可以分析出多种情况,所以我们就能很容易的建立分析工具。


Petri网:简称(PNG),它适用于描述与分析相互独立、协同操作的处理系统,也就是并发执行的处理系统。


最后一个阶段是形成需求规格说明书。


其实,在开发系统时最困难的部分就是准确说明开发什么。需求分析阶段,就是研究我们开发系统要开发的是什么和开发系统需要些什么条件,也就是解决我们在开发系统阶段“做什么”的问题。一个好的需求分析,在系统开发过程当中是必不可少的!

原创粉丝点击