透过项目谈需求分析
2014-06-25 22:12
260 查看
背景
参与人事档案管理系统将近一年了,这一年中通过这个项目发现了许多问题,不管是在软件设计方面还是在团队合作方面以及在与用户交流获取需求的过程中暴露出了许多问题,也学到了许多东西,今天主要总结一下在需求分析上的问题与收获。供需交流困难
在软件生存周期中,其它四个阶段都是面向软件技术问题,只有需求分析阶段是面向用户的。需求分析是对用户的业务活动进行分析,明确在用户的业务环境中软件系统应该"做什么"。但是在开始的时候,我们和用户双方都不能准确地提出系统要"做什么?"。而我们又不是用户问题领域的专家,不熟悉用户的业务活动和业务环境,又不可能在短期内搞清楚;而用户不熟悉计算机应用的有关问题。因此双方互相不了解对方的工作,又缺乏共同语言,所以在交流时存在着隔阂。如何获取需求
需求分析是软件工程中很重要的一个环节,直接决定着项目的成败。需求分析是一项重要的工作,也是最难的工作。需求分析的方法有很多种,如面向过程(自上向下分解)、 信息工程(数据驱动)(数据流分析结构化分析方法)、 面向对象(对象驱动)。这些方法很实用对需求分析过程来说也很常用,但是对于我们这些完全不了解用户业务的开发人员来说再好的分析方法也用不上,不了解业务不知道如何将业务一层层分解、不能正确的把握数据的流向,更不用谈面向对象了。面对这样的情况,我们只能每次接受用户的一部分需求,然后做一个最基础的原型出来。这种原型要比需求分析方法中的原型方法复杂一点。需求分析的原型方法只要求我们用某些软件工具快速的建造一个原型系统,这个系统只是一个界面,然后听取用户的意见,改进这个原型。以后的目标系统就在原型系统的基础上开发。而现实中如果我们只做一个界面的话,一个没有数据的一个空壳子,对于不懂如何开发软件、不知道何为原型的用户来说,让他们从这样的原型上去提建议、提需求还是有些困难的。所以我们在原型方法的基础上将获得的原型功能全部实现了,以此作为一个原型再去进一步获取需求。
谈到原型方法就得必须谈谈原型方法的三种类型:探索型、实验型、进化型。
探索型:目的是要弄清楚对目标系统的要求,确定所希望的特性,并探讨多种方案的可行性。
实验型:用于大规模开发和实现前,考核方案是否合适,规格说明是否可靠。
进化型:目的不在于改进规格说明,而是将系统建造得易于变化,在改进原型的过程中,逐步将原型进化成最终系统。
我们主要以进化型为主以探索型为辅,探索用户目标需求最终确定一种可行性。这样迭代将每一种可行性在上一可行性的基础上叠加,走进化型路线,逐步将原型进化成最终的系统。