需求的提出
软件需求是以一定的业务需要与(成本/技术)可行性分析为基准的。因此,每提出一个新的需求应首先从如下
几个方面进行完善:
1. 为什么提出这个需求?
2. 有没有更好的解决方案?
3. 涉及哪些软件/功能变更?

需求文档的建立
对于敏捷而言,弄清上述问题之后就可以产出用户故事。其书写格式较为随意,只屑标明“作为(什么角色),
想要(怎么样),从而达到(什么目的)”,甚至可在故事卡背面写上注释、疑问或者界面原形图
至于CMMI,则要在需求文档的相应模板中明确定义入口准则、处理过程、输入信息、输出信息、出口准则、以
及相关文档和产品(功能点)的版本号及编号等

需求的分析
在完成需求文档(用户故事/需求规格说明书)之后,可通过需求评审(正式评审与非正式评审)和需求测试来
检查需求的正确性,核实要点如下:
1. 功能点覆盖
2. 功能点处理逻辑、数据处理规则
3. 功能点前置条件(功能点依赖、数据依赖、软硬件配置、时区换算等等)
4. 界面要求
5. 性能要求(包括:内存、硬盘空间、高的交易率)
6. 安装条件

需求的管理
需求分析之后,仍须对其进行完善和跟踪,此时任务如下:
1. 明确需求并达成共识(对于分歧项进一步跟踪)
2. 建立需求与功能点的关联(便于进度及任务管理)
3. 根据具体需求设计相应解决方案
4. 进行系统优化(功能层面)
5  提出设计方案(包括:架构等)
6. 监控和解决可能出现的问题以及需要做出的改变(风险管理的提出)
7. 控制不同开发任务的开展(进度管理)
8. 对最终产品做出评测
9. 监控可能出现的重复开发
10.提出项目实施时间表(包括:项目进度计划表、产品发布计划表等)
11.确定最终用户界面