I am having issues identifying whether the database is a controller or boundary (view) in a sequence diagram. I have drawn the following sequence diagram for 'call queueing'. Is it correct? enter image description here

推荐答案

简言之

该数据库将是control个数据库的一部分.然而,该控件用于高级用例逻辑/协调,而数据库是该控件的低级实现.在同一个图上混合不同级别的抽象并不一定有帮助.

论据

Entity Control Boundary分解基于用例模型.

如果数据库系统是一个参与者,那么与外部数据库相关的对象就是一个边界.但这可能会产生误导:数据库系统是系统的实现细节.即使数据库在多个应用程序之间共享,如果没有使用其内容的应用程序,它也不是一个有任何用途的自治系统.所以:not a boundary.

如果数据库不是参与者,那么它就是"系统"的一个组件(系统由应用程序和数据库组成).它不能是边界(见上文).它也不能是实体,因为用户不关心数据库.因此,它只能是a control.

控件更多地用于用例逻辑(实现用例,协调实体和边界).所以数据库充其量只是控件的一部分(但控件原型是正确的).

此外,一些体系 struct 模式(例如"活动记录")将在实体级别使用数据库.如果它真的是一个实体(用户不在乎),或者它仍然是一个被驱逐的控件,那么它就不明确了.实际上,在确定之前,您需要知道在设计中管理持久对象所要采用的方法.

我个人建议不要混淆抽象的层次,因为这会使图表更难理解,也不太有用.

Database相关问答推荐

如何在mongodb数据库中设置导入的CSV文件的字段之间的关系

如何使用 SQL Server 中的round方法将浮点数转换为 int?

按纬度/经度进行半径搜索

苹果 ios 购买收据数据的可能最大长度是多少?

是否有任何用于 NoSQL 数据库架构迁移的工具?

为什么 MySQL 连接被许多连接错误阻止?

Oracle在哪些情况下会自动创建索引?

应用程序用户应该是数据库用户吗?

ORA-00060: deadlock detected while waiting for resource

SQLite3 不支持外键约束吗?

在 Heroku 生产站点上清除 Rails 应用程序数据库

判断Android中的应用程序数据库中是否存在列

存储并仍然索引加密客户数据的最佳方式是什么?

在 Firestore 中使用嵌套的单个查询

PostgreSQL 哈希索引

如何在 Windows 中将用户添加到 PostgreSQL?

用 SQL 进行条件插入?

标准化人类皮肤 colored颜色 以进行用户交互

与 IntelliJ IDEA 相比,DataGrip 附加值

用于 sql 表中的状态列的类型