繁体   English   中英

数据库是序列图中的控制器还是边界?

[英]Is database a controller or boundary in a sequence diagram?

我在识别数据库是序列图中的控制器还是边界(视图)时遇到问题。 我为“呼叫队列”绘制了以下序列图。 这是对的吗? 在此处输入图像描述

简而言之

数据库将是控件的一部分。 但是,控件用于高级用例逻辑/协调,而数据库是控件的低级实现。 在同一张图上混合不同层次的抽象不一定有帮助。

论据

实体控制边界分解基于用例模型。

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

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

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

此外,一些架构模式(例如“主动记录”)将在实体级别使用数据库。 如果它真的是一个实体(用户不在乎)或者它仍然是一个被驱逐的控件,那么它是模棱两可的。 实际上,在确定之前,您需要知道要在设计中管理持久对象的方法。

我个人建议不要混合抽象级别,因为这会使图表更难以理解并且不太有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM