定义:需求(requirement)就是系统(更广义的说法是项目)必须提供的能力和必须遵从的条件。
UP提出了一系列的最佳实践,其中的需求管理(manager requirement)。需求管理不主张采用瀑布的观点,即在编程之前的第一阶段就试图完全定义和固化需求,而是采用迭代巧妙地进行需求分析。
需求分析的最大挑战是寻找,沟通和记住(通常是指记录)什么是真正需要的,并能够清楚地讲解给客户和开发团队的成员。
进化式需求和瀑布式需求
在UP的需求管理定义中使用了“不断变更”一词。UP能够包容需求中的变更,并将其作为项目的基本驱动力。这一点极为重要,也是迭代和进化式思想与瀑布思想的核心差异。
寻找需求可以采用的方法
一种系统的方法来寻找,记录,组织和跟踪系统不断变更的需求。
需求的类型和种类
在统一过程中,需求按照“FURPS+”模型进行分类,这是一种有效的记忆方法。其含义如下:
1.功能性(Functional):特性,功能,安全性。
2.可用性(Usability):人性化因素,帮助,文档。
3.可靠性(Reliability):故障频率,可恢复性,可预测性。
4.性能(Performance):响应时间,吞吐量,准确性,有效性,资源利用率。
5.可支持性(Supportability):适应性,可维护性,国际化,可配置性。
“FURPS+”中的“+”是一些辅助性的和次要的因素,比如:
实现(Implementation):资源限制,语言和工具,硬件等。
接口(Interface):强加于外部系统接口之上的约束。
操作(Operation):对其操作设置的系统管理。
包装(Packaging):例如物理的包装盒。
授权(Legal):许可证或其他方式。
在一般使用中,需求按照功能性(行为的)和非功能性(其他所有的行为)来分类。