Chapter 8 理解需求

需求工程阶段

  • 起始

在项目起始阶段,要建立基本的理解,包括存在的问题、谁需要解决方案、所期望解决方案的性质、与项目利益相关者和开发人员之间达成初步交流合作的效果。

  • 获取

询问客户、用户和其他人:系统或产品的目标是什么,想要实现什么,系统和产品如何满足业务的要求,最终系统或产品如何用于日常工作。

  • 细化

在起始和获取阶段获得的信息将在细化阶段进行扩展和提炼。该任务的核心是开发一个精确的需求模型,用以说明软件的功能、特征和信息的各个方面。

  • 协商

需求工程师必须通过协商过程来调解需求冲突。应该让客户、用户和其他利益相关者对各自的需求排序,然后按优先级讨论冲突。使用迭代的方法给需求排序,评估每项需求的成本和风险,处理内部冲突,删除、组合或修改需求,以便参与各方均能达到一定的满意度。

  • 规格说明

规格说明可以是一份写好的文档、一套图形化的模型、一个形式化的数学模型、一组使用场景、一个原型或上述各项的任意组合。

  • 确认

在确认这一步将对需求工程的工作产品进行质量评估。需求确认要检查规格说明R以保证:已无歧义地说明了所有的系统需求;已检测出不一致性、疏忽和错误并予以纠正;工作产品符合为过程、项目和产品建立的标准。

  • 需求管理

对于基于计算机的系统,其需求会变更,而且变更的要求贯穿于系统的整个生命周期。需求管理是用于帮助项目组在项目进展中标识、控制和跟踪需求以及需求变更的一组活动。

建立根基

  • 确认利益相关者
    • 利益相关者:直接或间接地从正在开发的系统中获益的人
  • 识别多重观点
    • 多角度收集信息
    • 把所有利益相关者提供的信息分类
  • 协同合作
    • 标识公共区域和矛盾区域
  • 首次提问
    • 与环境无关的提问
    • 集中于客户和其他利益相关者以及整体目标和收益
  • 非功能需求
    • 质量属性、性能属性、安全属性或系统中的常规限制
  • 可追溯性
    • 可追溯矩阵表达需求和其他软件工程产品间的相互关系

获取需求

  • 协作收集需求
  • 质量功能部署
    • 将客户要求转化为软件技术需求
  • 使用场景
  • 获取工作产品
  • 敏捷需求获取
    • 生成用户故事
  • 面向服务的方法

开发用例

用例模板

上一篇:实验四 继承


下一篇:实验四