UML的使用案例圖、活動圖、類別圖練習 ~ 以網路選課為例

需求 : 我們希望開發一個提供學校學生可以在網路上選課的系統。

(1) 首先把需求畫成「使用案例圖 Use Case Diagram」。

使用案例圖的相關資訊,可以參考 :

https://www.lucidchart.com/pages/uml-use-case-diagram

網路選課系統的使用案例圖如下 :


使用案例圖主要是描述WHAT,網路選課最主要的就是「選課」,然後其他的案例就由「選課」這個主軸長出來。為了不要太複雜,這邊只先呈現學生的主要情境,省略了其他角色。

如上圖

「加選」「退選」都算是「選課」,所以用一般化的表示方式連到「選課」。

然後當學生要進行「選課」,一定要「登入」,所以「選課」以<<include>>連到「登入」。

但是「登入」時,有時因為忘記密碼,就需要「重置密碼」,所以「重置密碼」以<<extend>>連到「登入」。

而當學生要「加選」時,一定需要「瀏覽課程」,所以「加選」以<<include>>連到「瀏覽課程」。

而當學生要「退選」時,一定需要「瀏覽選課單」,所以「退選」以<<include>>連到「瀏覽選課單」。

當「瀏覽選課單」時,有可能會需要「列印選課單」,所以「列印選課單」以<<extend>>連到「瀏覽選課單」。


(2) 然後把使用案例圖要表現的活動圖 Activity Diagram畫出來。

活動圖的相關資訊,可以參考 :

https://www.lucidchart.com/pages/uml-activity-diagram

活動圖很類似流程圖,表示如下 :



學生一開始,可以選擇三個路徑之一 :

(a) 登入

如果不知道密碼,可以先重置密碼,如果知道,就登入。但是登入時,如果密碼沒有錯誤,就轉換為登入狀態,如果密碼錯誤,就顯示錯誤訊息。不管錯誤或正確,都回去原點。所以選擇登入這個路徑,最後的結果,就是變成登入 (密碼正確) 或未登入 (密碼錯誤)。

(b) 瀏覽課程

選擇這個路徑,就是看有無想加選的課程,因此進來之後,如果看到想要的課程,可以進行加選。如果沒有,就繼續瀏覽課程,或是選擇其他路徑。如果加選了,就轉換到瀏覽選課單這個活動。但是,加選前要確定是登入狀態。

(c) 瀏覽選課單

選擇這個路徑,就是想看選課單,進入前要確定是登入狀態。

如果看到要退選的課程,就進入退選活動。如果沒有就選擇其他路徑。


(3) 再來畫類別圖 Class Diagram,很類似做資料塑模。

應該怎麼做呢? 部分的類別圖大致如下 (還要思考修正的地方應該還不少)



以下是思考學生、課程、老師的關係畫出來的類別圖



請參考 :

【UML】Class Diagram 類別圖

實體關係模型(Entity-relationship model)

從ER Model到資料庫的實作練習




張貼留言

0 留言