- 本文原创作者:谷哥的小弟
- 作者博客地址:http://blog.csdn.net/lfdfhl
- 本文参考资料:电子工业出版社《软件文档写作教程》 马平,黄冬梅编著
需求分析定义
需求分析的基本任务是要准确地定义新系统的目标,为了满足用户需求,回答系统必须“做什么”的问题。获得需求规格说明书。
为了更加准确地描述需求分析的任务,Boehm给出软件需求的定义:研究一种无二义性的表达工具,它能为用户和软件人员双方都接受,并能够把“需求”严格地、形式地表达出来。
对于大中型的软件系统,很难直接对它进行分析设计,人们经常借助模型来分析设计系统。模型是现实世界中的某些事物的一种抽象表示,抽象的含义是抽取事物的本质特性,忽略事物的其他次要因素。因此,模型既反映事物的原型,又不等于该原型。模型是理解、分析、开发或改造事物原型的一种常用手段。例如,建造大楼前常先做大楼的模型,以便在大楼动工前就能使人们对未来的大楼有一个十分清晰的感性认识,显然,大楼模型还可以用来改进大楼的设计方案。
需求分析一般步骤
由于需求分析方法不同,描述形式也不同。需求分析一般的实现步骤如下所述。
(1)获得当前系统的物理模型
物理模型是对当前系统的真实写照,可能是一个由人工操作的过程,也可能是一个已有的但需要改进的计算机系统。首先是要对现行系统进行分析和理解,了解它的组织情况,数据流向,输入输出,资源利用情况等,在分析的基础上画出它的物理模型。
(2)抽象出当前系统的逻辑模型
逻辑模型是在物理模型的基础上,去掉一些次要的因素,建立起反映系统本质的逻辑模型。
(3)速立目标系统的逻辑模型
在分析目标系统与当前系统在逻辑上的区别,建立符合用户需求的目标系统的逻辑模型。
(4)补充目标系统的逻辑模型
对目标系统进行补充完善,将一些次要的因素补充进去,例如出错处理。
需求分析具体任务
根据上述分析得知,需求分析的具体任务如下所述。
(1)确定系统的综合要求
确定系统功能要求是最主要的需求,确定系统必须完成的所有功能。确定系统性能要求应就具体系统而定,例如可靠性,联机系统的响应时间,存储容量,安全性能等。确定系统运行要求主要是对系统运行时的环境要求,如系统软件,数据库管理系统,外存和数据通信接口等。将来可能提出的要求对将来可能提出的扩充及修改做预准备。
(2)分析系统的数据要求
软件系统本质上是信息处理系统,因此,必须考虑数据(需要哪些数据,数据间联系,数据性质,结构),数据处理(处理的类型,处理的逻辑功能)。
(3)导出系统的逻辑模型
通常系统的逻辑模型用DFD图来描述。
(4)修正系统的开发计划
通过需求对系统的成本及进度有了更精确的估算,可进一步修改开发计划。
需求分析书的编制目标
软件驱动着计算机硬件帮助人们完成一个又一个功能,软件没有思想不会思考却能很好地执行人类下达的命令。所以,软件能够做到的事,完全在人类的计划之中,是人类希望借助软件完成功能。于是,一个软件系统最终能给用户提供什么功能,是由软件的开发商决定的。由于将要开发的软件能提供的所有功能被记录在需求分析书中,所以需求分析书的编制目标可以总结为以下3点。
1 .限定软件的功能需求
随着软件用途的扩大,现今人们开发出来的无论是通用软件还是特定领域的专业软件,其功能越来越强大,一般不存在只完成一个简单功能的小软件了,这些简单而单一功能往往由模块或者组件来实现,再将这些实现各种功能的模块或组件集成在一个系统中,团结协作共同完成人们希望实现的功能。软件应该具备什么样的功能,会根据各软件开发的目的不同而有所不同,所以首先应该明确的就是客户为什么要开发该系统,紧接着要确定客户为了达到这些目的希望计算机软件做什么。希望软件做的事就成为了客户的需求,客户的所有需求都应该被明确的记录,不能因为有些功能过于简单或者认为某些需求是理所当然的就不被记入需求说明书中。建房屋需要规划用地,做软件也需要明确功能边界。
2 .明确开发目标
一个人在一大片空地上想走出一条直线是相当困难的,但是,如果空地上有棵树,以该树为目标径直走过去的话,也许中途会走歪,但是从整体来看,路是直的。软件开发的整个过程中,如果经常拿需求作为目标进行比较,到项目最后结束的时候就会发现,做出来的软件并没有太多的偏离原始要求。开发的过程中也不会因为目标不明确而任意发挥,而盲目乱做会导致开发过程受阻或者不断返工。
3 .提供系统评价标准
软件工程当中有一句很经典的话:“是否做了客户希望你做的事,是否用正确的方法做了客户希望你撤的事”,需求分析书恰恰是检验“是否做了客户希望你做的事”最好的方法,系统交付给客户的时候,拿出之前落到纸上的需求分析书,对照其中的每点要求逐条验收,这样就可以检查该系统是否是客户最初设想的系统。