知识卡片

鲁棒图的增量建模技巧

普通读书笔记卡

内容

画[[鲁棒图作为从功能需求到设计的桥梁]]的关键技巧是”增量建模”——很多人训练前会感叹”建模难”,但专门训练增量建模技巧之后往往会发现,建模能力的提升核心在于掌握符合思维规律的方法,而不是掌握某种一步到位的标准流程。增量建模的第一步是识别最”明显”的职责——不要认为设计和建模有严格的标准答案,先凭直觉找出自己认为最重要的那几个职责。以”按作者名搜索图书”功能为例:首先识别出搜索功能最终要在”结果界面”这个边界对象上显示”Search Result信息”,”获得搜索结果”是最重要的控制对象,输入是”作者名字”实体对象,输出是”Search Result信息”实体对象。第二步开始考虑职责间的关系、并发现新职责:”获得搜索结果”要生成”Search Result信息”,光有”作者名字”还不够,需要引入”图书信息”实体对象,或者把”书目信息”和”图书详细信息”拆分开(前者结构专为快速检索设计以提升性能)。第三步继续同样的思维方式,引入”显示搜索结果”控制对象,让顾客能真正从边界对象”结果界面”上看到结果。这个过程是靠设计者不断问自己问题来驱动的:”作者名字从何而来?”“用户的输入要不要做合法性检查?”“三个空格算不算合法的作者名字输入?”——每问出一个问题、给出一个答案,就可能发现一个此前遗漏的边界对象或控制对象(比如”Search界面”边界对象、”获得搜索条件”和”检查输入合法性”控制对象),模型逐渐从粗略走向完善。这个技巧还揭示了一条实践要领——”初步设计不应关注细节”:鲁棒图中不关心”活期账户销户界面”具体是对话框还是Web页面、不关心实体对象要不要持久化、不识别对象的属性和方法、也不标识控制流的严格顺序,这些细节都留给后续更细化的设计阶段处理,增量建模阶段只专注于发现职责本身。

参考来源

- 位置:《软件架构设计:程序员向架构师转型必备》第9章《概念架构设计》"9.3.4 鲁棒图'怎么画'"节(源文件:_epub-src/OEBPS/text00012.html) - 结论依据:原文完整演示"按作者名搜索图书"功能从"识别最明显职责"到"考虑职责间关系发现新职责"再到"不断完善直到模型比较完善"的增量建模过程,并说明"'不断完善'是靠设计者问自己问题来驱动的",直接支撑本卡片结论。 - 原始内容:画鲁棒图的一个关键技巧是"增量建模"……首先,识别最"明显"的职责……接下来,开始考虑职责间的关系,并发现新职责……"你"又问自己:根据作者名字搜到了结果,但作者名字从何而来?