原型法工具使项目浴火重生
看着日渐走向失败的项目,一筹莫展的我心里是哪个的焦急。这时,一位资深的软件需求分析前辈提示我,为何不尝试一下原型法工具。后来,我在应用原型法进行需求分析后,项目才得以起死回生。真所谓是:山穷水复疑无路 柳暗花明又一村;不经一事,不长一智。
(1)什么是开发项目的需求分析?
软件开发中最为困难的是要准确知道应该要开发些什么。因为一旦需求分析做错了,不但会给系统功能带来极大的损害,并且不断的修改也会浪费资源。有资料表明,现在的软件项目中返工开销几乎占了总开发的一半,而导致返工的主要原因就是需求分析不明确。
软件需求分析(Software Requirement Analysis)是一个项目的开端,也是项目最重要的关键点。它的定义是指研究用户想要得到的东西,完全理解用户对软件需求的完整功能,确认用户软件功能需求,并建立可确认的、可验证的一个基本依据。曾有调查报告显示,软件产品存在不完整性、不正确性等问题,80%以上是由于需求分析错误所导致的,而且由于需求分析错误造成功能性问题尤为突出。所以,一个成功的需求分析是软件项目能否成功的关键一步。因此,在软件开发中产生了一个核心问题:如何在用户需求不明确的情况下进行系统开发?
(2)什么是原型法?
软件需求分析方法有很多,如传统方法、原型方法、模型驱动方法、结构化方法等。一般来说,选择那种方法要根据项目的具体情况和资源来选择,不能盲目套用。这里着重阐述原型法。
原型法(Prototyping)的理念是指在获取一组基本需求之后,快速地构造出一个能够反映用户需求的初始系统原型。让用户看到未来系统的概貌,以便判断哪些功能是符合要求的,哪些方面还需要改进,然后不断地对这些需求进一步补充、细化和修改。依次类推,反复进行,直到用户满意为止并由此开发出完整的系统。简单的说,原型法就是不断地运行系统的"原型"来进行揭示、判断、修改和完善需求的分析方法。
(3)原型需求分析法的特点
原型法是一种循环往复、螺旋式上升的工作方法,它更多地遵循了人们认识事物的规律,因而更容易被人们掌握和接受。原型法强调用户的参与,特别是对模型的描述和系统需求的检验。它强调了用户的主导作用,通过开发人员与用户之间的相互作用,使用户的要求得到较好的满足。不但能及时沟通双方的想法,缩短用户和开发人员的距离。而且能更及时、准确的反馈信息,使潜在问题能尽早发现并及时解决,增加了系统的可靠性和适用性。
简单的说,原型法是将系统调查、系统分析和系统设计合而为一,使用户一开始就能看到系统开发后是一个什么样子。而且用户参与了系统全过程的开发,知道哪些是有问题的,哪些是错误的,哪些需要改进等,就能消除用户的担心,并提高了用户参与开发的积极性。同时,用户由于参与了开发的过程将有利于系统的移交、运行和维护。
但需要注意的是,原型法的适用范围是比较有限的。它只对于小型、简单、处理过程比较明确、没有大量运算和逻辑处理过程的系统比较合适。它的局限性是对于大型的系统不太适合,因为对于需要大量的运算、逻辑性较强的程序模块,原型法是很难通过简单的了解就构造出一个合适的模型,供用户评价和提出修改建议。