需求 : 我們希望開發一個提供學校學生可以在網路上選課的系統。
(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,很類似做資料塑模。
應該怎麼做呢? 部分的類別圖大致如下 (還要思考修正的地方應該還不少)
以下是思考學生、課程、老師的關係畫出來的類別圖
請參考 :
實體關係模型(Entity-relationship model)
0 留言