uml - 我如何设计一个演员不相互干扰的序列图?
问题描述
我一直在尝试为商店中的存储系统设计序列图。
有 3 个演员(老板、员工和供应商)可以在系统上做不同的工作。
例如,供应商只能通知系统新到货。员工只能查看产品是否有库存。老板可以查看库存产品,获取有关产品的信息等。
这里的问题是演员之间不会互相干扰。我应该设计 3 个不同的图表,还是应该只设计一个图表,其中 3 个演员彼此相邻但一个不影响另一个?
任何帮助都是有价值的。
解决方案
序列图旨在表示交互场景。
您当然可以表示几个不相关的交互孤岛(例如供应商/产品/库存和员工/库存/产品)。但这会使图表显得不必要地复杂而没有增加价值。
结论:如果交互是不相关的,你最好用 3 个单独的图表来表示它们,每个图表看起来都很容易理解并专注于一个逻辑顺序。
提示:让你的图表尽可能简单,但不要更简单。
为什么?任何超过 6-7 个元素的图表对于普通读者来说似乎都难以理解。这是赫伯特西蒙在 70 年代的短期大脑记忆实验中证明的结果。有经验的读者可以理解更复杂的图表,因为他们使用能够组合在一起的大块元素(模式),并且他们可以像处理单个元素一样在心理上处理该组。因此,保持图表简单有助于大多数读者专注于重要的元素,制作更多图表有助于掌握复杂系统,而无需将元素分块。
推荐阅读
- python - 仅在之前未出现时才将值附加到列表中
- office365 - Office 365 图形 API 报告 getOneDriveActivityFileCounts 或 GetEmailActivityCounts 给出错误
- reactjs - 我将如何键入此函数调用?
- sql - BigQuery 查询以获取 Stack Overflow 上任何标签的中位时间第一个答案的图表?
- bash - Git Clean 删除整个功能分支
- authentication - curl 如何根据本地 gcloud 的 CLI 身份验证向 Google Cloud 进行身份验证?
- swift - Swift REPL 和 swiftc 编译器如何以不同的方式解释语言?
- sql - 在枚举数据类型的数据库列中保存数据时出现问题
- android - 当用户访问选项卡时,Flutter 将时间保存到变量中
- mysql - 如何模仿 pgsql row_to_array()