作者介紹

邱郁惠

研究UML/OOAD十餘年,創辦UML Blog(www.umltw.com)推廣UML,出版多本UML/OOAD專業書籍,擁有OCUP/UML三級認證、PMP、ITIL、OOAD認證。目前為自由工作者,專職於企業內訓、專案輔導、自辦課程、專欄寫作。
施奇宏

投身軟體開發領域逾15年,任職於金融產業,有豐富金融IT實戰開發經驗。對於Java、.NET、C++等都有涉獵。最近著迷於軟體工程,尤其是測試驅動開發(TDD)及領域驅動設計(DDD)。


利用UML技術,可以繪製出衝刺期間的每一項待辦項目的使用案例圖,將產品待辦任務清單視覺化。另外也使用類別圖表達系統關係,以利後續用循序圖來表達子系統之間的互動狀況。

上一回文章中,我們已經示範了「查詢基金公司基本資料」待辦項目在設計階段和分析階段的差異,這一回,我們繼續來看更多的例子。

任務:編寫程式碼(新增)
接下來,我們繼續來比較新增基金公司基本資料的循序圖,圖1是分析階段的循序圖,而圖2則是設計階段的循序圖。此外,還是列出了兩者的訊息對應表,如表1所示。

圖1 新增基金公司基本資料[分析階段的循序圖]

圖2 新增基金公司基本資料[設計階段的循序圖]

表1 訊息的對應

分析 設計
  1. //新增基金公司()
  2. //輸入資料()
1. //新增基金公司() 3. //儲存()
2. //新增基金公司(基金公司) 4. AddCompany(Company)
5. <>
3. isExist:=//查詢基金公司(公司編號) 6. isExist:=Find(companyID)
4. <> N/A
5. //新增基金公司(基金公司) 7. Create(Company)
6. //取得基金公司基本資料() N/A


相較於分析階段和設計階段的循序圖,主要的變動之處在於:增刪改查基金公司UCO不再需要新增基金公司實體物件,而是由前端的增刪改查基金公司UI直接產生一個基金公司實體物件,一旦確定資料庫中沒有這筆基金公司的資料,就直接呼叫基金公司DAO新增。

因此,原先分析階段的循序圖中,4號訊息和6號訊息可以刪去,如圖3所示。此處,我們同步回頭過去修改分析階段的循序圖,如圖4所示。

圖3 新增基金公司基本資料[變更]

圖4 新增基金公司基本資料[修改過的分析圖]


任務:編寫程式碼(刪除)
接著,我們繼續看到刪除基金公司基本資料的循序圖,分析階段與設計階段的圖,分別如圖5和圖6所示。至於,對應的訊息,記錄在表2中。

圖5 刪除基金公司基本資料[分析階段的循序圖]

圖6 刪除基金公司基本資料[設計階段的循序圖]

表2 訊息的對應

分析 設計
1. //刪除基金公司() 1. //刪除基金公司()
2. //刪除基金公司(公司編號) 2. DeleteCompany(companyID)
3. //刪除基金公司(公司編號) 3. <<create>>
4. Delete(companyID)
4. <<destroy>> 5. <<destroy>>

任務:編寫程式碼(修改)
最後,請你看到修改基金公司基本資料的循序圖,分析階段與設計階段的圖,分別如圖7和圖8所示。還有,對應的訊息,則放置在表3中。

圖7 修改基金公司基本資料[分析階段的循序圖]

圖8 修改基金公司基本資料[設計階段的循序圖]

表3 訊息的對應

分析 設計
1. //修改基金公司() 1. //修改基金公司()
2. //修改基金公司(公司編號) 2. UpdateCompany(Company)
3. //設定基金公司基本資料() N/A
4. //修改基金公司(基金公司) 3. <<create>
4. Update(Company)



在修改基金公司基本資料的部份,比較大的變動在於:增刪改查基金公司UCO並不需要修改已經存在的基金公司實體物件,而是直接由前端的增刪改查基金公司UI傳來更新的基金公司實體物件,然後請基金公司DAO進行更新。

因此,原先分析階段的循序圖中,3號訊息可以刪去,如圖9所示。此處,我們同步回頭過去修改分析階段的循序圖,如圖10所示。

圖9 修改基金公司基本資料[變更]

圖10 修改基金公司基本資料[修改過的分析圖]


編寫單元測試不是這一回文章的重點,所以我們就省略,不加以描述了。程式設計師:麥克(Michael)在寫完程式之後,自行測試程式,認為一切功能皆符合設計。同時,麥克(Michael)還認為目前程式還很簡單,並沒有需要重構程式的地方,所以此項任務實際上並沒有花費任何工時。

至於,展示準備(含測試)的部份,同樣也非這系列文章的重點,所以此處我們僅示範性地列出簡單的測試案例(test case)和基本資料畫面,如表4所示。

表4 測試案例

測試案例 結果 錯誤說明
1. 點選【增刪改查基金公司基本資料】選單,顯示所有基金公司基金資料,並且以公司編號排序,參考圖11的畫面。 □ 正確
□ 錯誤
 
2. 點選基金公司左方的【修改鍵】,被點選的基金公司資料顯示於上方各欄位內,而且公司編號欄位變為不可修改的反白狀態(disable),其餘欄位為可以修改的正常狀態(enable),參考圖11的畫面。 □ 正確
□ 錯誤
 
3. 修改公司名稱,並按下【儲存鍵】,下方表格內該公司的名稱需更新,參考圖11的畫面。 □ 正確
□ 錯誤
 
4.(略)    


圖11 增刪改查基金公司基本資料畫面


示範了基金公司基本資料的「查詢」、「新增」、「修改」等待辦項目,其實不同任務的循序圖也有類似之處,例如要繪製更新基金基本資料的循序圖時,其實一開始可以模仿前面的循序圖,如圖12所示。當然,還需要進步針對不一樣的地方再修改。

圖12 模仿


同樣情況,「查詢基金基本資料」的使用案例擁有雙介面,我們要針對這兩個不同的介面,繪製出兩張循序圖時,同樣可以參考先前查詢基金公司的循序圖,依樣畫葫蘆繪製出2張不同介面的循序圖。

其實,模仿前頭的循序圖,我個人認為有三個好處,分別條列如下:

1. 容易下手:從0到1是最難的,先模仿、再修改,這樣比較容易下手,工作效率更高。

2. 風格一致:因為模仿前面的設計,所以前後的設計風格,不會差異太大,容易趨向一致。

3. 再次檢驗:也就是因為要模仿前面的設計,所以有機會再一次檢驗前頭的設計,這樣可以讓設計的品質愈來愈高。

我自己有個快速繪製循序圖的口訣:一仿(模仿)、二修(修改)、三加參(加參數)。前面,我們已經執行了一仿、二修,接著可以在自己腦袋中開始「執行」,看看是否還需要加上什麼樣的參數。

熱門新聞

Advertisement