簡體   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