需求工程师

需求阶段的错误在后期的纠错成本,远高于软件设计和实现阶段的错误的纠错成本,因此需求工程是软件工程领域非常关键的分支之一。

软件⼯程师、计算机科学家与数学家的 cold joke

一天,软件工程师、计算机科学家和数学家在圆明园相遇,他们看 到湖面上游来一只黑天鹅,于是不约而同地使用各自领域的建模方法描述这只黑天鹅:

  • 在软件工程师的模型中,将天鹅建模为黑色的:
  • 计算机科学家的模型中,仅将一部分天鹅建模为黑色的:
  • 数学家的模型则是:在圆明园,有一个湖上,存在至少一只天鹅,它的一面是黑色的… :

软件工程师做出尽可能简化问题复杂度的假设,计算机科学家要找出不失一般性的解决方法,数学家追求对问题描述的精确性。

什么是合格的需求工程师?

现代需求工程师应当具备这些能力:

  • 分析问题和解决问题的能力
  • 人际沟通及交流能力
  • 软件工程知识和技能
  • 应用领域有关知识
  • 书面语言组织和表达能力

优秀需求工程师应当追求这些目标:

  1. 对环境或系统的错误假设,
  2. 确保描述的一致性,
  3. 提升对标准和规范的依从性,
  4. 减少团队和个人间的误解,
  5. 提高支持人员的反应速度和效率,
  6. 提升客户满意程度,
  7. 撰写优质的需求文档

需求定义

需求是对外可见的系统特征,关注的是系统的特征描述。

需求的类型

需求工程过程

需求的主要来源

需求获取技术

撰写需求文档