我正在嘗試爲TomCat作爲本地主機運行的基於Web的應用程序創建序列圖。基本的基於Web的應用程序的序列圖
該應用程序使用戶能夠在文本框中輸入文本並將其保存到TomCat中的目錄中。
我在爲此定義對象時遇到問題。
到目前爲止,我有「演員CreateText.jsp,應用程序服務器」
事件的順序如下:
- 用戶負載應用
- 用戶選擇創建文本按鈕
- 創建文本網頁返回給演員
- 用戶輸入文本並按下「保存」文本文件
- 文件保存到應用服務器
- 確認信息返回給演員
如何在序列圖上顯示這個呢?
我正在嘗試爲TomCat作爲本地主機運行的基於Web的應用程序創建序列圖。基本的基於Web的應用程序的序列圖
該應用程序使用戶能夠在文本框中輸入文本並將其保存到TomCat中的目錄中。
我在爲此定義對象時遇到問題。
到目前爲止,我有「演員CreateText.jsp,應用程序服務器」
事件的順序如下:
如何在序列圖上顯示這個呢?
在定義「演員」你應該知道,定義
的演員模型通過與 交互主體的實體中發揮了類型的角色(例如,通過交換信號和數據) ,但是在主體外部(即,參與者的實例不是其相應主題的實例的一部分)的意義上,其爲 。演員可能代表人類用戶,外部硬件, 或其他主題扮演的角色。注意,參與者不一定代表特定的物理實體,而僅代表某個實體的特定方面(即「角色」) ,其與其關聯的 用例的規範相關。因此,單個物理實例可以起到 幾個不同參與者的作用,相反,一個給定的演員可以由多個不同的實例
在你的系統上播放 ,我們可以說,演員都是(User, Web browser, Web server (Application, Content database))
。
我們下一步將定義「致電消息」和我們的參與者之間的「返回消息」。
甲消息限定 相互作用的生命線之間的特定通信。
根據您提到的事件,我們會盡量將其分解,以更好地解釋它們。
- 用戶負載應用程序。
- [用戶] ---- 「RequestResource()」 ---> [Web瀏覽器]
- [Web瀏覽器] ----- 「RequestAccessForUser()」 ---> [Web服務器]
- [Web服務器] ------「CheckUserExists()」-----> [內容數據庫]
- [內容數據庫] ---「Exists Return Message」----> [Web服務器] - 繼續向用戶返回響應,並在您的瀏覽器上加載您的頁面。
在這裏您可以找到有該用戶未註冊的概率,再有就是一些所謂的「另類路徑」。
當然,您可以通過減少演員數量來最小化步驟,但爲了學習和簡單起見,這將是一個非常好的解決方案。下面是一些例子,教程肯定會有所幫助。
Visual Paradigm introduction to write your first Sequence Diagram
隨着web應用程序使用HTTP請求/響應對建成,我覺得這樣有助於在序列圖中捕捉到這一點。它還有助於考慮您爲每個請求發出的HTTP命令的類型 - GET,POST等,以及哪些請求需要身份驗證或狀態。如果應用程序使用狀態碼 - 例如「重定向」或「需要身份驗證」,我也喜歡這些。
我通常不會在這個過程中對用戶進行建模 - 這一點通常不是模擬用戶交互(他們點擊哪些按鈕等);但是,我確實包含了在瀏覽器中執行的相關JavaScript函數(例如「WaitForInput()」)。
所以,你的例子,它可能是這樣的:如果當時else語句
Browser: GET index.jsp -> ServletContainer
ServletContainer: 200: index.jsp ->Browser
Browser: GET enterText.jsp -> ServletContainer
ServletContainer: 200: enterText.jsp -> Browser
Browser: POST: enterText.jsp(text) -> ServletContainer
ServletContainer: validateEntry() -> ServletContainer
if(valid)
ServletContainer: 200: success.jsp(fileName) -> Browser
else
ServletContainer: 501: fail.jsp(reason)
endif
的序列圖應該有一個像所有可能的路徑。因此,一定要描述故障情況,以及在這些情況下應用程序流應該如何以及如何。通常情況下,一個序列圖將有一個開始和一個停止,所以映射從應用程序加載到完成過程的路徑,包括所有與快樂路徑的偏差。 – dinukadev