知识卡片

二维需求观与ADMEMS矩阵

普通读书笔记卡

内容

从程序员转型为架构师,一个必须突破的观念误区是把需求当成一份扁平的”需求列表”——程序员习惯了项目经理打开Excel按Feature List分配任务这种场景,容易误以为需求就是一个清单;但架构师必须建立”二维需求观”,才不会因为缺少需求大局观而造成遗漏。第一维是层次:需求按”不同层次涉众提出需求所站的不同立场”分为三层——组织级需求(客户或出资者要达到的业务目标、预期投资、工期要求、要符合的标准、要整合的遗留系统等约束条件)、用户级需求(用户用系统辅助完成什么工作、对质量有何要求、用户群及使用环境有何特殊要求)、开发级需求(开发人员需要实现什么、开发和维护期间有何质量考虑、开发团队情况会如何反过来影响架构)。第二维是方面:需求按”直接目标还是间接限制”分为三类——功能需求(体现各级直接目标要求,如”浏览书目”“下订单”)、质量属性(运行期质量+开发期质量,如互操作性、安全性)、约束需求(业务/使用/构建/技术环境因素,如”必须运行于Linux平台”)。忽视质量属性和约束性需求,是架构设计最终失败的常见原因——层次和方面两个维度交叉组合,就构成了ADMEMS矩阵(需求层次-需求方面矩阵),它用一种直观易行的”Checklist思维”帮助设计人员系统地梳理和评价需求是否全面、有无遗漏,而不是凭感觉判断”需求好像挺全的”。

参考来源

- 位置:《软件架构设计:程序员向架构师转型必备》第5章《需求分析》"5.3.1 二维需求观与ADMEMS矩阵"节(源文件:_epub-src/OEBPS/text00008.html) - 结论依据:原文说明"我们是根据'不同层次的涉众提出需求所站的不同立场',将需求划分为三个层次"(组织级/用户级/开发级),并指出"从'直接目标还是间接限制'的角度把需求分为三类"(功能/质量/约束),进而说明"ADMEMS矩阵……可以作为需求梳理和需求评审的工具",直接支撑本卡片结论。 - 原始内容:组织级需求。包含客户或出资者要达到的业务目标、预期投资、工期要求,以及要符合哪些标准、对哪些遗留系统进行整合等约束条件……《一线架构师实践指南》一书提出的ADMEMS矩阵(又称"需求层次-需求方面矩阵")可以作为需求梳理和需求评审的工具。