需求工程阶段
- 起始
在项目起始阶段,要建立基本的理解,包括存在的问题、谁需要解决方案、所期望解决方案的性质、与项目利益相关者和开发人员之间达成初步交流合作的效果。
- 获取
询问客户、用户和其他人:系统或产品的目标是什么,想要实现什么,系统和产品如何满足业务的要求,最终系统或产品如何用于日常工作。
- 细化
在起始和获取阶段获得的信息将在细化阶段进行扩展和提炼。该任务的核心是开发一个精确的需求模型,用以说明软件的功能、特征和信息的各个方面。
- 协商
需求工程师必须通过协商过程来调解需求冲突。应该让客户、用户和其他利益相关者对各自的需求排序,然后按优先级讨论冲突。使用迭代的方法给需求排序,评估每项需求的成本和风险,处理内部冲突,删除、组合或修改需求,以便参与各方均能达到一定的满意度。
- 规格说明
规格说明可以是一份写好的文档、一套图形化的模型、一个形式化的数学模型、一组使用场景、一个原型或上述各项的任意组合。
- 确认
在确认这一步将对需求工程的工作产品进行质量评估。需求确认要检查规格说明R以保证:已无歧义地说明了所有的系统需求;已检测出不一致性、疏忽和错误并予以纠正;工作产品符合为过程、项目和产品建立的标准。
- 需求管理
对于基于计算机的系统,其需求会变更,而且变更的要求贯穿于系统的整个生命周期。需求管理是用于帮助项目组在项目进展中标识、控制和跟踪需求以及需求变更的一组活动。
建立根基
-
确认利益相关者
- 利益相关者:直接或间接地从正在开发的系统中获益的人
- 识别多重观点
- 多角度收集信息
- 把所有利益相关者提供的信息分类
-
协同合作
- 标识公共区域和矛盾区域
-
首次提问
- 与环境无关的提问
- 集中于客户和其他利益相关者以及整体目标和收益
-
非功能需求
- 质量属性、性能属性、安全属性或系统中的常规限制
-
可追溯性
- 可追溯矩阵表达需求和其他软件工程产品间的相互关系
获取需求
- 协作收集需求
- 质量功能部署
- 将客户要求转化为软件技术需求
- 使用场景
- 获取工作产品
- 敏捷需求获取
- 生成用户故事
- 面向服务的方法