需求工程——功能与需求之区别【原创】

     我们做软件是需要有个较规范的流程的,即是是一个小软件(除非只是一个小功能)也是需要的,如果没有流程,随便搞的话,就会出现很多预期不到的问题。
在软件流程前期有个需求阶段,在需求阶段,很多朋友常常搞不清或者容易把功能和需求给混淆了。那么接下来我们谈谈功能和需求的区别,以及关系吧。

     下面这些定义是需求工程领域中常见术语的定义。
软件需求包括三个不同的层次:业务需求、用户需求和功能需求(也包括非功能需求)。
1.业务需求(business requirement)反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。
2.用户需求(user requirement) 文档描述了用户使用产品必须要完成的任务,这在使用实例(use case)文档或方案脚本说明中予以说明。
3.功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。

     下面以一个单人卧室的布置为例来说明需求和功能的概念区别。一个单人卧室的布置,它需要被完成的就是提供一个可以舒适休息的环境,平时休息可能需要一张沙发,晚上睡觉还需要一张床,还有需要书桌和书架用来学习等。

     接下来就平时休息而言,我们在做需求分析的时候,就会想到,沙发。
那么我们从软件需求定义的概念中看,业务需求可能是:“需要休息”,这是一个大的,高层次的目标性需求。
而真正的需求就是,用户需求:“我需要一个舒适的可以满足平时休息的一个工具。”
功能需求,即功能:提供一个沙发。

     仔细分析我们就会发现,用户需求就是我们在做需求工程中所理解的需求,它所要关注的是充分说明用户究竟想做什么,想得到什么效果。
而功能不是,功能就是定义中的功能需求,它是用来描述具体功能的,它所关注的是提供沙发,将沙发看做一个功能,然而,你可以想也许座椅也可以实现用户需求。

从以上定义可以发现,需求并未包括设计细节、实现细节、项目计划信息或测试信息。需求与这些没有关系,它关注的是充分说明你究竟想开发什么。

posted @ 2009-09-27 14:31  翔宇编程  阅读(1608)  评论(6编辑  收藏  举报
51CTO