知识卡片
领域建模促进用户沟通的两个层面
内容
需求分析中”用户参与不够”这个常见困难,拆开看其实是两个不同层面的问题,而领域建模恰好能分别对症下药。第一个层面是用户参与不够多:用户往往认为”需求很明白”,不理解开发方为什么要投入这么多精力做需求捕获和分析,但在真正使用软件系统一段时间之前,用户其实并不确切知道自己需要什么;更深层的原因是语言差异——领域专家对技术行话理解有限、却用自己领域的行话,开发人员则用描述性功能术语讨论系统或建立自己的抽象结构,双方各说各话,只能对彼此的意图含糊理解。解决办法是让用户代表或领域专家深入参与领域建模活动,因为领域模型”穿透”了用户想要的功能表象,专注于分析问题领域本身、挖掘业务领域概念及其关系——开发方和用户在领域模型上达成的共识,比在”功能需求”上达成的共识”更深一级”,因此也更加稳固,能避免需求分析员的理解一直停留在假设层面、直到软件做出来才被用户发现问题的尴尬局面。第二个层面是用户参与不够深入:解决方式是和用户一起做领域建模讨论、领域模型评审——领域模型规定的重要领域词汇经过严格筛选、大家共同认可,因此可以成为团队交流的基础;当开发人员向用户刨根问底讨教需求、和系统分析员争论需求文档、和测试人员争论”那是不是Bug”时,用领域模型规定的领域词汇进行沟通,能大幅减少歧义——团队不同成员之间的共识越多,合作就越顺畅。
参考来源
- 位置:《软件架构设计:程序员向架构师转型必备》第7章《领域建模》"7.2.2 沟通不足"节(源文件:_epub-src/OEBPS/text00010.html)
- 结论依据:原文说明"开发方和用户在'领域模型'上达成的共识,往往比在'功能需求'上达成的共识'更深一级',从而也更加稳固",并指出"领域模型规定的重要的领域词汇,是经过严格筛选的、大家共同认可的,所以可以成为团队交流的基础",直接支撑本卡片对两个层面沟通问题及其解法的概括。
- 原始内容:由于这种语言上的差异,领域专家对他们所需要的只能含糊地进行描述。开发人员费力地去理解领域中对他们来说陌生的东西,也只能含糊地理解领域专家的思想……用领域模型规定的"领域词汇",进行不易产生歧义的有效沟通。