需求工程活动分为需求获取和需求分析、需求规格说明、需求验证、需求管理。需求获取是从人、文档或环境中获取需求的过程,需求工程师必须要利用各种方法和技术来“发现”需求。需求开发的过程包含有学习和认知的过程,而学习和认知的过程是递进的,因此需求获取和分析是交织在一起的,需求工程师需要获取一些信息,随即进行分析和整理,理解、认知到一定程度后在确定要进一步获取内容。在需求获取中,需求工程师需要执行任务包括收集背景资料、获取问题与目标,定义项目前景与范围,识别涉众,选择信息的来源,选择获取方法,执行获取,获取功能与非功能需求,记录获取结果。需求分析阶段,需求工程师主要任务包括
1背景分析
2问题分析、目标分析、业务分析、确定系统边界
3软件需求建模
4细化需求
5确定优先级
6需求协商。
获取的需求下需要编写成文档,业务需求被写入项目前景和范围文档,用户需求被写入用户需求文档(或用例文档),系统级需求被写入需求规格说明。需求工程师在这个阶段主要工作包括定制文档模板好编写文档。需求验证主要任务包括执行验证、问题修正。
需求管理主要任务包括
1建立和维护需求基线集
2建立需求跟踪信息
3进行变更控制。需求开发过程是迭代的和并发的,而且它的两个重要活动-需求获取与需求分析-还是交织的,共同构成一个学习过程。相比与编程,需求是众多因素影响的不确定性,是实践与理论并用。