跳到主要內容

評 “寫給 SA 的 UML / UseCase 實務手冊”

3936532-big34 我是不喜歡用”評”這個字來評論一本書的(這在我的blog也是頭一遭),一來好看的就好看,不好看的頂多說這是一本地雷書就算了,二來有的領域自己又不頂擅長,沒事寫個”評”字,還要引起筆戰的可能,麻煩事我多不想沾的。

但凡事總有例外,“寫給 SA 的 UML / UseCase 實務手冊”為什麼會成為例外?

因為期待造成了我內心小小地傷害。(嘆口氣先~)

還記得邱老師的"寫給SA的UML/MDA實務手冊",我也曾讚揚過這本書,想說好歹國內終於有人往這塊領域發展了,值得鼓勵;後來也都有追蹤邱老師的書,只是多引不起較大的興趣,但其發表的一些文章,卻還是引起我的注意,像是ICONIX這塊 / Color UML 這些 (這是國內少有人注意的)。

於是看到“寫給 SA 的 UML / UseCase 實務手冊”這本,想說邱老師神功大進,於是連書都沒翻過,就直接先上網訂了。

可惜~ 真的可惜。
期望與失望的程度是成正比的。

簡單說,這本書的消化不夠。 (我個人認為若引用Use Case Driven Object Modeling with UML來說的話,邱老師的這本書沒有顧全到大局。)

若說要實用,也僅能用於小系統。

首先,對話式的內容,在第一章中顯得有些糟,一般對話的方式都有引導的含意在裡面,但遺憾的是,這章說故事的技巧很不高明。(不過,這是小事。)

再來,沒有教導所謂的Use Case Descrption文法,除了S+V+O之外,像 if / while / for 這樣的描述方式,不是只有替代流程就能涵蓋的,這是初學UC的人一定會遇到的撰寫問題,但作者沒有好好地歸納出文法問題。

接著,多數的Use Case內容多顯冗長。

Use Case Description最多寫幾條?寫幾頁?
作者應該要給經驗建議值才是,超過了就要切割,否則就會造成閱讀困難。

寫的人花了1小時寫一個UC,看的人需要花多久才看得懂?

我的實際經驗是,寫得又臭又長時,客戶完全不想看。那多長才不臭?

這會牽扯到另一個問題:動作複雜的敘述,是否適合使用UC?

假設替代流程過多時(有好多個選項)該怎麼辦?一條條寫必定造成閱讀人的障礙。

2 
還有,實際專案中,一頁表單可能有20-30個的欄位需選擇,這時難道要在UC一個個填寫所需的欄位名稱嗎?
(在保險、銀行、醫療的系統中,比比皆是。)

ICONIX中教的Domain model的好處在此才會顯現,可是作者沒有提。

另外,商業規則太多時,一併放在UC中也是會造成閱讀跟撰寫的困難。
1 12

使用案例可以幫我們連接許多其他需求細節。它提供我們當腳架的材料,以連接需求中不同部分的資訊,幫助我們連接使用者相關說明資訊、企業規則與資料格式等需求。

第四章算是比較有提較少書會講的東西。就像"Writing Effective Use Case"說的:

想寫出好的使用案例,其中的最大困難可能是如何管理跳蚤的跳蚤『使用案例中的子子目標』。

不過呈現的方式,建議可以參考"Use Case Modeling"(Kurt Bittner, Ian Spence 2002)一書。

"Use Case Modeling"中所的UseCase Life Cycle也應一併參考:

1

不是所有的Use Case 顆粒度都應該一致,專案執行時,我們沒那麼多巴西時間。

像登入、CRUD等類的,有些可以不用寫成UC的,採用segment寫法就可了。
(理由是:Use Case 的重點在產生的價值,很明顯,本書的UC所採取的價值……很不理想)

失敗路線的著重,這也是沒有好好發揮的地方。
為了讓使用案例能夠成為好的系統行為描述、很棒的功能需求,我們應該要把焦點放在目標失敗情況與系統對失敗的回應方式。
目標失敗情況與系統對失敗的回應方式是使用案例對他們最有幫助的地方。

第五章原本也是我期待的內容,可惜著墨太少,這邊補上工具(EA)其實可以幫忙計算。ea_uc_matrix01

最後,Use Case是Test Case的前身,以書名來看,第六章應該也要提如何將 Use Case轉成 Test Case的技巧,可惜完全沒提。

SA的書不好寫,但看完這本真的覺得內容沒有好好地消化過就寫出來,有點像是看了其他書之後的讀書心得加上過去經驗,像五六章特別明顯,其他章節對話中也太多無謂的對白;我心疼的不是書錢,而是看這本書有沒有好好地獲得什麼。

邱老師,不可以為了奶粉錢,就匆忙出書喔。
批評,是因為有所期待。

(相信我,我不是來砸場的,我只是希望能夠看到更好的有關SA的書而已。像”寫給SA的UML/MDA實務手冊”我就會介紹給同事或學生看,但這一本……加油!好嗎!)

留言

Unknown寫道…
謝謝您的評論,可以讓我引用這篇文章嗎?
krilo寫道…
呃,若你不棄嫌的話......就請引用吧!(我已經有要被砸雞蛋的覺悟了~)
Unknown寫道…
不會啦,我昨晚看了您的這篇評價,反省了好一陣子,寫了篇心情(http://www.umltw.com/2009/08/saumlusecase_3336.html)。不過,後來被打斷了,所以沒繼續寫下去...orz

謝謝您!
krilo寫道…
因為邱老師的書,銷售都不差,所以對IT產業有著不少的影響;也就是因為這樣,我才要跳出來"評"這本書。
我相信邱老師是"絞盡腦汁"寫出這本書的,不過書中這樣的UC寫法是不是真的有在中型以上的專案用過?是不是有業界朋友這樣用過?

若認真的在專案中使用過UC,評論中的問題其實都會出現,(還有很多實戰問題,有機會再討論)。

雖然Jacobson或是Cockburn這兩派在UC使用上有不同手法,但各有其優缺點,老師又是否有好好消化參考ㄋ?
(第六章中的sequence採用cockburn的SSD手法,但在複雜系統中robustness diagram是比較好的誘導手法)

糟糕,連意見都越寫越多了......
我想說的只是"絞盡腦汁"前,可以先補充別人的腦汁。

請老師不要灰心,我衷心期盼邱老師能夠寫出更好的給SA看的書,盼之深,責之切,我滿懷期待老師的下一本作品。
Unknown寫道…
我知道您的期盼,也會認真思考您的意見,沒有誤會喔,我會繼續努力啦!
winyeh表示…
我也買過這本書...不能同意你更多...
匿名表示…
請問有推薦的 UML 或系統分析與設計的相關書籍嗎?

這個網誌中的熱門文章

GLOOMY BEAR 暴力熊

Gloomy Bear身世背景: Gloomy是一隻在路邊被遺棄的粉紅色小熊 , 被小朋友Pity發現,並將牠帶回家中收養, 並為小熊取名為Gloomy。 可惜.....Gloomy外表可愛,但因為被拋棄的緣故~卻有著一般熊的暴力性格, 長大長出爪子後就時常向主人用暴力招數打招呼, 而Pity就慘被Gloomy日日夜夜地欺負!悲慘ㄉ人生就這樣子開始囉!! 暴力熊喜好~咬主人頭, 而牠的主人,復原能力極高...打不死喔~厲害厲害! 暴力熊顏色:粉紅色,金色,銀色,紅色,藍色,黃色,還有罕見的綠色與混色。 粉紅色暴力熊性別:女 頭大身細,眼珠黑色,爪白色兼尖利,具有殺傷力,她多數用口爪殺人,殺完人後喜歡在街上徘徊。 小主人每次都被暴力熊揍得半死兼頭破血流, 但仍然不離不棄地緊緊抱住這隻血腥的寵物; Pity就算受到傷害亦要讓開心的回憶遮掩,然後繼續微笑期待小熊再次跟他一起溫習/做功課/看書;相信等待他的會是小熊的溫柔而非暴力傷害; 暴力熊和他小主人之間微妙的情感讓人感動又心酸; 這次轉輪科技所推出的暴力熊,內容包含小男孩Pity與粉紅熊Gloomy兩支一組。造形上善用Gloomy胖胖的軀體,將轉輪關節隱藏其中,全身有14處可動。可替換配件包含小男孩被打的表情,還有防止熊熊咬人的口罩以及牠嘴角流下來的血,原型制作為山口勝久。

明天是晴天嗎(明日晴れるかな)

因為最近的日劇:求婚大作戰,才聽到這首歌的。 桑田佳祐的"明日晴れるかな"。 歌詞的內容跟劇情還蠻貼切,求婚大作戰就劇情而言不是頂好的,但題材相當有趣,令人反省的地方也頗多。 很多時候很多事,如果再來一次,我們會怎麼選擇怎麼做? 這MV不同於日劇的片尾MV: 中文歌詞如下: 明天是晴天嗎 作詞:桑田佳祐  作曲:桑田佳祐  編曲:桑田佳祐 島健 炙熱的淚呼喚著愛 曾經閃爍的歲月 也迷失了方向 明天我依舊徘徊在街頭 沒有回頭路可走 側耳傾聽 心靈深處是什麼在私語 獨自躲在昏暗的街頭 回首當日的天空  上帝賜予我們孤獨與試煉 想哭就要放聲大哭 難道是命中注定 叫人不敢面對 日覆一日 不可思議 Oh baby No maybe 愛已走遠 情已不再 我只能佯裝嘆息 將怨恨拋給這世界 Oh baby you are maybe 憂喜交織 幸福的feeling 抱緊我 one more time 珍惜曾經的我 讓回憶刻骨銘心 往事已經隨風 人生路還漫長 只為見證夢想 誰來開啟奇跡之扉? 多想再一次觸碰你的笑顏 不知你是否發現命運的鑰匙 就握在你手中 Why baby? Oh tell me 愛恨纏綿 假裝視而不見 只為能守護在愛人身邊 Oh baby you are maybe 距離勝負僅一步之遙 站在崩潰邊緣的feeling 我想穿越 one more chance I talk to myself Oh baby No maybe 愛已走遠 情已不再 輕輕的嘆息背後 只留下深深的悔恨 Oh baby Smile baby 生命轉瞬即逝 每個人都在心中默默祈禱 明天是晴天嗎 在那遙遠的天空下 這些是有趣的文章: 釋日劇《求婚大作戰》中的「哈利路亞」 劇情解釋

不服從的領導學:不聽話的員工,反而有機會成為將才

這本書,清楚介紹了 計畫 - 行動 - 成果 的思考方式,尤其是「校準」的觀念。 也詳細指出了 領導 、 管理 與 指導 間的不同。 非常好的一本管理/領導者要看的書。強推。 執行的方法創造出奇蹟,執行的方法才是我們應該敬佩的地方。 在戰爭中,「事情不會像上好油的機器那樣運轉順暢;事實上,機器從開始運轉就會產生阻力,需要領導者極大的意志力才能克服。」在戰爭裡,「所有事情都很簡單,但連最簡單的事都很困難......在戰爭中展開行動,就像在阻力重重的介質裡移動。」 克勞塞維茨想將這樣的戰爭實況形成一種觀念,他找到「摩擦」這個詞。 摩擦就是一切「不確定性、錯誤、意外、技術上的困難、無法預見的事物及其對決策造成的影響、士氣與行動」的總合。 摩擦的存在,恰恰說明了為什麼軍隊需要軍官、企業需要主管的存在。也因此,預測與處理摩擦,就成了管理的核心工作。 一個由不同的個人組成的組績,不論紀律多麼嚴明,想要追求共同的目標,都會像在開車時踩煞車一樣,一定會造成摩擦。 我們只能取得部分資訊,又只能交給處在高壓狀態下的人、進行有瑕疵的處理。 我們之所以會遇到摩擦,是因為人類認知上的限制;我們對現在所知有限、而未來根本就不可知。 線性思維有兩個特徵:一是按照比例,也就是投入多少就產出多少;二是相加特性,亦即整體是各部分相加的總和。但非線性系統卻完全不是這樣,克勞塞維茨在當時就很清楚戰爭是非線性系統,只是無法形成具體概念,只能借用摩擦、偶發事件、不可預測性等概念來說明。 管理的課題:如何對付有資訊的有限、如何相互傳遞我們確實擁有的資訊,以及我們最終應該如何行動。 克勞塞維茨用兩種落差來描述摩擦的影響。一是我們試圖在不可預測的外部環境採取行動,但我們一直沒意識到這點,因而產生了「預期成果」與「實際成果」之間的落差。二是內部的摩擦,導致組織的「計畫」與「行動」之間出現落差。這種落差來自資訊在取得、傳輸和處理的過程中,涉及許多獨立自主的媒介。三是是行動與實際成果之間的落差(或是”計畫跟預期成果之間的落差”)。 實際採取的行動和應該採取的行動,是不同的。會出現這種狀況,可能是錯誤的行動計畫造成的,或是 我們雖然策畫了正確行動,但執行者沒有照計畫去做。 計畫不完美,是因為我們缺乏「知識」。我們可能沒蒐集到足夠的資訊,或是對資訊的詮釋有...