使用案例(Use Case)是由Jacobson在易利信開發電信系統時,所發明的一種描述系統行為的工具,隨著UML規格的制訂,已成為捕捉需求最關鍵的技術。
使用案例可說是軟體界這十年來最了不起的創見,因為簡單。使用案例圖中,利用棒型人偶(參與者),表達系統的使用者與系統需要外部系統的支援服務,而橢圓形的使用案例,即是表達系統所提供的功能服務;再以純文字寫作,描述每一個使用案例的需求陳述,可說是參與者與系統之間的互動對話,卻又不致於牽涉到系統的實作面。簡單的圖形,加上文字敘述,建構出從使用者觀點看系統功能的模型。
不過,使用案例易學難精,如果沒有把握基本精要與原則,很難把圖給畫好(不容易界定出系統範圍),更何況是用純文字寫出需求陳述。
我對使用案例的技術相當著迷,但學習的前兩年完全無法體會它的本質精髓,直到閱讀了《Use Case Requirements in Context》,以及本文要介紹的《Writing Effective Use Cases》,才慢慢打開心眼。
腦力激盪的最佳工具──記錄需求、發掘需求
本書內容分為3大部分:使用案例的主體、相關議題的討論、寫作提示等。一開始閱讀會有些吃力,我建議要隨時翻閱目錄,了解自己在閱讀時的主題與焦點所在,若當下無法體會該章內容,其實跳過去也無妨。
本書第一部分讓你了解使用案例的本質,以及使用案例的寫作格式。作者Cockburn提供多種格式,如單欄/兩欄/RUP,甚至利用Occam程式語言、圖形呈現的另類寫作風格。另外,作者自創的三個目標等級──白雲、海平面、海平面下,說明使用案例的精確程度,以及適合的目標層級對象,是該書第一部分最有價值的內容。
第2部分屬於FAQ性質的主題性討論。例如常見的CRUD(Create、Read、Update、 Delete)與可參數化的使用案例該如何描述比較恰當;開發流程中,使用案例所扮演的角色與其它製程產出的關連性;撰寫使用案例常見錯誤……等,對於實務上已經在運用使用案例的開發人員來說,相當具有參考價值。
第3部分是全書最實用的內容,第20章列出的使用案例相關寫作提示,就足以讓分析人員受用無窮。我看過多位系統分析師所寫的使用案例中常犯的錯誤,在本章都有提到。只要依循本章所列出的11個提示,寫出中規中矩的案例敘述,也就不難。
即使你寫的是中等程度的使用案例,本書仍然有相當的參考價值,事實上,只要使用案例具備可讀性,對整個專案就會有相當程度的貢獻;再者,使用案例不僅僅只是記錄需求的工具而已,它更可以成為專案成員的腦力激盪工具,發掘新的或潛在性的需求,這部分更是價值斐然。
順應國內短線專案型態──Use Case First
事實上,臺灣95%以上的專案都是功能導向的開發方式,至於系統內部的結構分析設計,由於時程壓縮,以及抽象基礎的素養不足,往往無法做好。
功能直接影響到專案能否被「做出來」;結構則是影響系統的彈性與穩定度。所以我主張應該「務實一點」,先順應國內短線的專案生態,利用使用案例,快速地對應到實作面。
在實際經驗中,這樣的效果與接受度相當高,雖然「Quick」,但可不「Dirty」。另外,有兩個配套措施是一定要做的:「測試案例到測試程式」,以隨時驗證功能的正確性;「分析類別的規畫」,以符合3-tier 的MVC(Model-View-Control)框架。
在此之後,系統做得出來、開發能力顯著提升,老闆也就比較願意投入更多資源,再施以結構重整,慢慢萃取出系統最穩定、共用的部分。有了使用案例後,我似乎再也沒擔心過能否「做」得出來,因為那根本不是問題。
此書在Amazon是評價四顆半星的好書,猜猜中譯本賣多少錢?你可以在某書局以99元的價格購買!建議身為需求分析人員的你,用一到兩次便當錢的代價,買本可以讓你工作上獲益良多的好書。
使用案例寫作實務(Writing Effective Use Cases)
Alistair Cockburn/著
趙光正/譯
碁峰出版
售價:650元
《作者簡介》
王克明
台北工專五專部電子科畢業。現於HSDc軟體設計顧問團隊擔任架構師/顧問/講師。興趣為整體架構性的思考與學習、期貨投機操作與閱讀。
相關閱讀:
軟體設計必讀經典(1)以簡約之道介紹UML最實用的部分
軟體設計必讀經典(2)物件導向分析與設計入門
軟體設計必讀經典(4)知易行難的極致軟體製程
軟體設計必讀經典(5)用科學化方式搞懂設計模式
軟體設計必讀經典(6)RUP活用,也可以是敏捷開發
軟體設計必讀經典(7)重構讓程式回到應有位置
軟體設計必讀經典(8)由生活出發,輕鬆領會物件導向
軟體設計必讀經典(9)優質使用者介面,源自好的狀態圖設計
軟體設計必讀經典(10)幫助SA紮穩UML底子的實務手冊
軟體設計必讀經典(11)反覆測試與修正,讓錯誤消失
熱門新聞
2024-11-29
2024-12-19
2024-11-20
2024-11-15
2024-11-15