需求分析过程
为了建立一个真正满足客户需求的系统,我们首先必须确定系统要解决的问题。然后,团队必须确定涉众,从中获得业务和用户需要,对其进行描述,并区分它们的优先级。从这一组高层期望或需求出发,对产品或系统特性集达成一致意见。而后,由产品特性来抽取软件需求,在需求管理中,软件需求是以用例模型的方式来描述。从测试的角度来看,测试项一定来自于软件需求,即软件需求中确定了哪些需求项,测试就要根据这些需求项来制定和实现。
软件开发项目中,没有正确的客户需求比没有需求更可怕。需求分析不仅仅是单方面记录用户的需求,而是通过与用户通力合作,与客户一起探索需求,并达成对问题的共识,以及合作探索出最佳解决方案。
需求分析过程包括需求开发和需求管理(包括变更管理)两个方面,如下图所示:
需求开发
需求开发是一个不断反复的过程。传统的软件开发方法假设可以一次性得到完全正确的需求,长期的开发实践证明该假设过于理想化,在实际工作中 是不成立的。现在的软件开发实践表明,很难一次性得到完全正确的需求,项目的开发总是伴随着不完全正确的需求而进行的,关键在于如何有效降低需求不确定性 的风险。
一个行之有效的方法就是不断反复地进行需求的开发与验证。典型的过程如下:
需求管理
由于需求是正在构建的系统必须遵照和符合的,而且是否符合需求决定了项目的成败,因此找出需求是什么,将它们记下来,进行组织,并在发生变化时对它们进行追踪,这些活动是非常有意义的,这个过程就是需求管理。
需求在整个开发周期中所承担的角色,如下图所示: