浅谈需求分析中的一些方法

来源:互联网 发布:破坏电力设备罪 知乎 编辑:程序博客网 时间:2024/05/17 04:20

需求分析是软件开发过程的一个重要阶段。在传统的瀑布开发模型中,需求分析位于“项目启动”之后,“系统设计”之前。而从相关的统计数据可以得知,由于需求分析的不完善而导致项目最终失败的例子比比皆是。所以,如何处理需求分析,将直接影响项目的未来。当然,面对目前越来越复杂的系统,瀑布开发模型已经不再适用,因为需求根本不可能在展开设计之前完全到位。因此,各种新的开发模型应运而生,像增量迭代开发、螺旋模型、原型法、 RUP 、极限编程……各种方法都是围绕一个核心问题:如何在用户需求不明确的情况下进行系统开发?

    最近几个月的项目经历,使我加深了对原型法的认识。原型法,又称快速原型法,我个人认为,是一种典型的需求驱动开发的方法。其适用的场合是:客户对软件开发过程不熟悉,对自己的需求表达不清楚,开发人员对客户业务流程也不熟悉。在这种场合下,开发人员如果单单通过问 / 答的方式,或者更恶劣一点——只听不问的方式,是无法获取到真正需求的,因为实际上连客户自己有时候也不清楚自己想要的是什么。但需求总是要提的,那客户也就只好提出:需要一个系统,减少组织管理开销。如此而已。

    面对如此简陋的需求陈述,开发人员应如何处理?我们应该从分析原因着手,是什么导致客户无法提出具体的需求?是客户对软件本身的不了解!开发人员提出的专业术语对客户来说太陌生了,太抽象了,客户需要的是一个实实在在的系统,是一个可以提供一定用户体验的系统。

    这时候,原型法很自然地派上用场,它的宗旨在于,基于客户初步的需求开发系统的原型,然后通过这一原型继续与客户探讨需求,随后再修改原型,直到所有基本需求都被提炼出来为止。简单地说,就是向客户提供一个用户界面和一些主要功能的模拟。通过这些实实在在的东西,客户就会有一个具体的感受,在原型上作修改来间接提出需求,就会更加容易。这样做导致的结果是,需求在原型的一次次修改当中得到不断完善。这就是原型法的基本用法。

    最后,总结一下原型法的分类。

    按照原型表现系统的程度,分为以下两类。

   1 )水平原型。不深入到体系结构的所有层次或细节,而主要描述了用户界面的一部分。

   2 )垂直原型。在整个技术服务层上实现应用程序用户界面的一部分功能。

    按照原型的最终走向,分为以下两类。

   1 )废弃型原型。打算在原型达到预期目的之后将它废弃。

   2 )演化型原型。增量地构建成最终产品。