精确定位缺失要求的基本技术?

Vla*_*dim 7 specifications

需求规范的初稿已经完成,现在是时候评估需求,审查规范.此过程的一部分是确保规范中没有相当大的差距.毋庸置疑,这些差距导致了高度不准确的估计,不可避免的范围在项目后期蔓延,并最终导致死亡进程.

有哪些优秀,有效的技术可以精确定位缺失和隐含的要求?

  • 这个问题是关于实用技术,而不是一般建议,原则或指导方针.
  • 缺少要求对于产品或服务的完整性至关重要,但没有考虑或遗忘,
  • 用户或客户自然认为隐含要求将成为软件的标准部分,而无需明确要求.

我很高兴重新访问已接受的答案,只要有人提交更好,更全面的解决方案.

Gal*_*ian 10

就我而言,与客户的持续,频繁,坦率和双向沟通使我成为主要的"技术".


Ste*_*owe 2

相对于通用/整体模型评估模型元素的生命周期,例如

acquisition --> stewardship --> disposal
Run Code Online (Sandbox Code Playgroud)
  • 您知道每个实体来自哪里以及如何将其放入您的系统中吗?
  • 你知道每个实体一旦获得就会驻留在哪里以及持续多久吗?
  • 当不再需要每个实体时,您知道如何处理它吗?

为了对规范中实体的生命周期进行更细粒度的分析,请为需求中的主要实体制作一个粗略矩阵;这是一个矩阵,其中操作/应用程序作为行,实体作为列。在每个单元格中,如果应用程序创建实体,则放置 C,R 表示读取,U 表示更新,D 表示删除,或 E 表示“编辑”;“E”包含 C、R、U 和 D(大多数“主表维护”应用程序将是 E)。然后检查每一列的 C、R、U 和 D(或 E);如果缺少一项(E 除外),请判断是否需要它。矩阵的行和列可以重新排列(手动或使用亲和力分析)以形成通常对应于子系统的有凝聚力的实体和应用程序组;这可能有助于稍后的物理系统分配。

将“用户”实体列添加到 CRUDE 矩阵并指定每个应用程序(或功能或功能区域或任何您想要调用的需求的处理/行为方面)是否接受来自用户的输入也很有用,为用户生成输出,或与用户交互(我为此使用 I、O 和 N,并且始终将用户设置为第一列)。这有助于确定哪里需要用于数据输入和报告的用户界面。

目标是检查规范的完整性;上述技术可用于检查实体的生命周期是否相对于所识别的实体和应用程序是“封闭的”