顯示 2009.06之後最新的 28 篇文章 (共 35 篇)。顯示較舊文章
顯示 2009.06之後最新的 28 篇文章 (共 35 篇)。顯示較舊文章

2009/6/29

UML風格::易讀(二)

--------------------
3. 避免對角線或曲線(Avoid Diagonal or Curved Lines)
--------------------

眼睛追隨著直線或橫線比較容易,所以避免使用像圖10的對角線或曲線。很多UML工具都有提供簡單的線條風格,供使用者選擇,比方我慣用的免費工具—StarUML,就可以讓使用者選擇使用直線或是斜線兩種不同的線條風格,如圖11所示。


圖10: 對角線及曲線


圖11: 線條風格

繪圖時,可以假想圖面上有一個棋盤式的格線,將節點擺放在格線交錯點上,讓線段沿著格線或直或橫,避免使用對角線或曲線,如圖12所示。


圖12: 把節點放置格線交錯點上

<上一篇><下一篇>

貝親黃色小花





(小滷蛋2009/6/29的照片)

今天拿貝親的黃色小花給小滷蛋玩,果然受歡迎,她啃的口水直流。不過,有時候小滷蛋會把小花甩到旁邊去,然後照舊啃起她的最愛 ><

2009/6/26

UML風格::易讀(一)

以下這十三條指南,都是為了讓我們可以輕易閱讀圖面上的資訊,降低誤判或不易閱讀的可能性。

--------------------
1. 避免交錯線(Avoid Crossing Lines)
2. 使用「跳躍」來描繪交錯線(Depict Crossing Lines as a Jump)
--------------------

上述第一和二條指南的意思是說,避免使用像圖4的交錯線,因為誤判。如果真的無法避免交錯線的話,請採用如圖5的跳躍線來表示。


圖4: 交錯線


圖5: 跳躍線

像是在UML活動圖中,複雜一些的流程,就很可能出現交錯線的情況,如圖6所示。


圖6: 活動圖的交錯線

其實,圖6的情況很常見,我是認為也不會真的嚴重到造成什麼誤判啦,只是圖面上看起來比較醜些。簡單一點的圖,可以調整成圖7的樣子,去掉動線交錯的情況。


圖7: 去掉交錯線

可是,我們來想像一下,如果出現如圖8,甚至於更複雜的情況時,很可能會有線段跨越整張活動圖。


圖8: 跨越整張活動圖

為了處理這種圖面上交錯線或橫跨線的表達問題,我們也可以在活動圖中使用「連接器」(connector),如圖9所示。連接器的圖示是成對的小圓,小圓內部標示出連接器的名稱,或者使用簡單的代碼也可以,比方說圖9中的連接器就簡單使用"A"代碼。圖8和圖9兩張圖同義,只不過圖9使用A連接器,把原先跨越整張活動圖的線段切斷了,再透過成對的A連接器標示出連接點。


圖9: 圓形連接器

<上一篇><下一篇>

2009/6/25

UML風格::一般製圖指南

顧名思義,一般製圖指南就是所有圖的通則,無論是否為UML圖,洋洋灑灑一共有二十六條之多。原著作者將這二十六條指南分為四大類,接下來我就依循這四類區分成四個次小節一一說明之。

<上一篇><下一篇>

唱山歌


(小滷蛋2009/6/7的照片)

老媽和老姐說,小滷蛋這幾天心情大好,天天自顧自地唱山歌,咿咿嗚嗚的 ^^

2009/6/24

UML風格::章節結構

這是一本200頁的小書,正文大約170頁,保證讀得完!讀小書其實很能建立信心,認真一點讀,總是讀得完。大書就不一定了,從書櫃拿下來就手軟,翻了兩頁就頭昏,電子辭典不離身,每本都讀不完,買了既傷荷包又傷心。

再者,小書也比較有詮釋與想像的空間,有留白的美感,容易引發讀者的思考;大書就不是這樣了,大書作者通常叨叨絮絮,什麼繁瑣細節都說光了,確實描寫的一清二楚,只不過少了可以讓讀者寫下感受的空間吧!這是我個人的體驗啦,所以我喜歡讀小書,當然很多時候不免還是得讀讀既傷荷包又傷眼的大書。

不過,這本書雖然篇幅少,章節可不少,共分為十七章。全書大抵可分為三個部份:前三章包含簡介、一般製圖指南及通用的UML元素指南;第四到十六章共十三章分別說明UML2的十三款圖;最後的第十七章簡單提到了敏捷建模(agile modeling)。

看完章節之後,我預計會挑讀前三章,至於第四到十七章,我只挑讀使用案例圖(use case diagram)、類別圖(class diagram)和循序圖(sequence diagram)這三章,理由很簡單,實務上用到最多的是這三款圖,其餘圖款即便我現在讀了,也會因為實務上用不到而忘記,倒不如等專案有用到時再回頭來讀。

真要開始動手整理這一條一條的指南,倒是讓我猶豫了一會兒。我私下在閱讀原文書時,會針對某些我覺得重要的句子在書頁的空白處隨手寫下簡單的、也恐怕只有自己看得懂的翻譯。現在真想把選讀的指南原文一一列出,也順便配上自己簡單的中譯時,不免猶豫了起來,雖然指南的原文句子都很簡潔,不過還是對自己上不了臺面的英文能力感到退卻。

總之,我還是會將選讀的指南原文一一列出,也嘗試著配上自己肉腳的中譯,一切只希望有助於您的閱讀。但是,也有很多條指南,我沒有按字面中譯,而是參照原文書中的說明,點出它們的重點。此外,指南前面的編號與Scott W. Ambler書上的編號相同,日後您若有興趣找原文書來閱讀的話,方便參照。

<上一篇><下一篇>

2009/6/23

UML風格::憶往

重讀這本書讓我回憶起一個專案,不過也不能算是重讀這本書,因為在此之前,我其實讀的是第一本2002年版的書,這次則是讀第二本2005年版的書。

岔題了,回頭來說我多年前輔導的UML/OOAD專案,在那個專案中,我帶領了一個六人的系統分析師團隊,其中絕大部分的人都是生手,聽過UML/OOAD但是沒有實際應用在專案中。這個專案後來夭折了,中途砍掉專案的原因當然很多,不過我倒是憶起當時我們大約每兩天就要開一次會議,一邊檢視我們的產出,一邊統一彼此的產出風格。

團隊成員會決定花時間統一產出的風格,並不是毫無緣由的。當時,一方面考量日後會加新人進團隊,有一致的風格會讓新進成員有跡可循,另一方面也考量當時訂下的風格可以成為公司正式的文件,以後公司所有的UML/OOAD專案無論是委外開發或是自行開發產出的文件內容都有一致的風格,不僅可以節省訂定統一風格的探索時間,也可以提高產出的效能和品質。

現在回想起來,如果當年大家都讀過Scott W. Ambler的書的話,應該可以節省不少開會時間吧!

不過,當時出錢的大老闆並不欣賞我們的做法,看團隊成員三天兩頭關在會議室熱烈地開著會,覺得我們在浪費時間,主事者的急功近利、眼光短淺其實是這個專案中途腰斬的最大原因。

統一風格當然是有好處的,不過這就像是建設下水道工程一般,建設平凡老百姓看不到的地方,很難爭取到選票,如同當時雖然團隊成員上下一心且投入極大的熱情,但是產出的東西還是很難說服主事者繼續掏出口袋裡的鈔票!

許多學者專家已經證明過,在專案進行中,貿然加入新的團隊成員,通常會拖慢專案進度,而非理想中的加快專案進度。當然,這個問題要認真討論起來,又要花上一大堆的篇幅了。

但是,統一風格卻是對團隊成員的擴充有幫助的。怎麼說?我想很多人都有中途加入專案的經歷,總是焦頭爛額地想在極短的時間內搞清楚產出的文件、搞清楚現在專案的進度及程序、搞清楚自己該產出什麼樣的文件、搞清楚自己該如何以最快的速度融入團隊!如果您沒有這樣會使人壓力大到胃潰瘍的經驗的話,恭喜您,不過請您現在想像一下這樣的場景。

所以說,倘若之前團隊產出的文件都有統一的風格的話,因為容易解釋與理解,所以方便現有的團隊成員解釋給新進的團隊成員聽,通常是一敎就懂。如果UML/OOAD文件雜亂無章、毫無風格的話,新進成員腦袋裡會有一堆的問號,像無頭蒼蠅般纏著現有成員不放,不僅無法盡速投入工作,還會擾亂現有成員的工作進度與心情。

總之,簡單來說,有統一風格的產出文件,能夠讓UML圖更簡明且容易了解,也能夠讓UML圖更行得通且有效能。看了Scott W. Ambler的書後,認真地調整一下專案文件的風格,這可是提升產能的第一步喔,好比許多名人懷孕前喜歡找中醫抓藥調整體質一般,調整調整之後,總是很快就聽到懷孕的好消息了。

<上一篇><下一篇>

2009/6/22

生活::為愛朗讀



週六晚上,跟我老公跑去三重幸福戲院看「為愛朗讀」二輪片。離開電影院時,已經接近晚上12點了,走著電影院的安全梯下樓,回想起當年看鐵達尼號也是這樣,擦著眼淚走安全梯下樓。唉,女主角凱特溫絲蕾演的真好,讓我哭了好幾回。

除了電影讓我動容外,也興起想去找原著小說來看的念頭。這類的小說家真是令我佩服;只談愛情太過淺膚,光談戰爭、人性或生活也不免過於沉重或嚴肅,兩者混在一起,閱讀起來,就趣味橫生了。包裹了糖衣的藥,再苦,都吞得下…

這部片有很多面向值得探討,不過我不擅長,所以也不談太多,要是有人帶領討論這部片,倒是很值得去參與。

2009/6/19

UML風格::書籍資料


圖1: UML風格的書籍封面

《The Elements of UML 2.0 Style》一書封面如圖1所示,我在Amazon.com節錄了這本書的基本資料及評價,條列如下:
  • 書名:《The Elements of UML 2.0 Style》
  • 作者:Scott W. Ambler
  • 頁數:200頁
  • 出版社:Cambridge University Press
  • 出版日期:May 9, 2005
  • ISBN-10:0521616786
  • ISBN-13:978-0521616782
  • 14位讀者的平均評價為:★★★★☆
    ★★★★★:7位
    ★★★★☆:4位
    ★★★☆☆:1位
    ★★☆☆☆:1位
    ★☆☆☆☆:1位
Scott W. Ambler 在2005年出版的第二本書是針對UML2,因為UML2一共有十三款圖,比起UML1的九款圖,多了四款。不過,Scott W. Ambler早在2002年就已經針對UML1的九款圖出版了《The Elements of UML Style》一書,封面如圖2所示,讀者對這本書的評價甚至高達五顆星。


圖2: 舊版UML風格的書籍封面

大陸清華大學出版社有出版第一本2002年版的翻譯書,書名叫做《UML風格:口袋裡的236條UML實作準則》,如圖3所示;這是我在網路上查到的資料,倒是沒買來看。到目前為止,也沒查到大陸出版社有繼續出版第二本2005年版的書,至於台灣就沒見到有譯者翻譯這兩本書了。


圖3: 舊版UML風格的簡體版書籍封面

同樣,這是我節錄自Amazon.com的書籍資料及評價,條列如下:

  • 書名:《The Elements of UML Style》
  • 作者:Scott W. Ambler
  • 頁數:160頁
  • 出版社:Cambridge University Press
  • 出版日期:November 18, 2002
  • ISBN-10:0521525470
  • ISBN-13:978-0521525473
  • 9位讀者的平均評價為:★★★★★
    ★★★★★:5位
    ★★★★☆:4位
    ★★★☆☆:0位
    ★★☆☆☆:0位
    ★☆☆☆☆:0位
<上一本書><下一篇>

2009/6/18

貝親綠色小花




(小滷蛋2009/6/8的照片)

小滷蛋太愛吃手指頭了,上網查到許多媽媽會買固齒器給寶寶咬,讓寶寶少吃手指頭。最受寶寶喜愛的就是貝親的綠色小花了,如圖1所示。我昨天花了一整晚在找貝親的綠色小花,有人稱它為「杯型固齒器」,正式的名稱是「嘴唇訓練器」。

不過,日本製的綠色小花已經停產了,現在商店賣的多半是圖2的黃色小花,大陸製。由於,這是給寶寶咬的東西,所以許多媽媽還是建議買日本製的綠色小花比較妥當,可惜已經停產,聽說得去進貨較慢的商家詢問,看看是否還有庫存的綠色小花。


圖1:日本製的綠色小花已經停產了


圖2:大陸製的黃色小花是新款

-----
<嬰兒吮手指是智力發育信號,家長不要打攪孩子的快樂>
新華網天津2月25日電(趙津、張建新)

很多寶寶出生兩三個月,最愛做的事情是“吃手”,專家說,嬰兒與幼兒吮吸手指的意義是不同的。嬰兒時期吮吸手指是嬰兒智力發展的一個信號,是嬰兒進入手指功能分化和手眼協調準備階段的標誌之一。家長不要輕易打攪孩子的快樂。

天津市婦女兒童保健中心主任醫師李義民說,通常新生兒只會雙手握拳,胡亂揮舞,其大腦尚不能指揮把自己的手放入嘴中。到2個月至3個月時,隨著大腦的發育,嬰兒逐步學會兩個動作:一個是用眼睛盯著自己的手看,另一個便是吮吸自己的手指。對於他們來說,吮指是一種學習和玩耍。起初他們只是將整個手放到嘴裏,接著是吮吸兩三個手指,最後發展到只吮吸1個手指,從笨拙地吮吸整只手,發展到靈巧地吮吸某一個手指,這說明嬰兒支配自己行為的能力大有提高。吮吸手指動作,促使嬰兒手、眼協調行動,為5個月左右學會準確抓握玩具打下了堅實的基礎。另外,這一時期的嬰兒主要是通過嘴來了解外界,嬰兒認為手也是外界的東西,所以總愛將它塞進嘴裏吮吸感知。

李義民說,通常情況下,隨著嬰兒動作的迅速發展,他們逐步學會自由地坐、爬、站等,手指的動作也愈加精細,當長到能單獨玩玩具的時候,孩子吮吸手指的現象自然會大大減少。此外,細心的父母可以發現,孩子在吮吸手指的時候,通常是非常安靜,不哭也不鬧。實際上,有時嬰兒還以吮吸手指來穩定自身的情緒,這說明嬰兒吮吸手指對他們的心理發育也起著重要的作用。因此,對於嬰兒吮吸手指,父母不必焦慮煩惱,更不用強行制止。如果孩子的行為實在過於頻繁,父母可以經常對孩子的小手進行撫摩、擺動,以轉移其吮吸手指的注意力;會拿玩具時可把玩具放入他的手中,逗引他搖動、擺弄玩具,把嬰兒的雙手佔住,使他無暇去吮吸手指。

李義民提醒家長,家長需要做的是保持嬰兒小手乾淨,保持嬰兒口唇周圍清潔乾燥以免發生濕疹。如果孩子到了三四歲,仍然經常吮吸手指,就可視為一種不良行為,需細心了解形成原因耐心糾正。

2009/6/17

四色原型::結語

老實說,如果以使用的角度來看,直接讀Peter Coad《Object Models: Strategies, Patterns, and Applications》書中的交易樣式,可能會比較容易理解,上手所需要的時間也比較短。因為相較之下,我個人是覺得《Java Modeling In Color With UML: Enterprise Components and Process》書中四色原型的概念比較抽象,需要更多的時間理解、消化與練習,才能在實務上派上用場。

不過,話又說回來,書中所提到的61組領域特定元件其實非常值得參考,不妨將它們視為參考資料,以後遇到相同領域時,可以回過頭來查看專家的建議。

至於特徵驅動開發,除了「特徵」這個辭彙比較新鮮外,其實整體的開發程序並沒有獨特的創新處。此外,我個人是認為,任何一套開發程序都是聽起來簡單,但是執行起來問題多多呢!

最後,我到底買了這本書沒?本來打算代購了,也問好價錢了,結果UML互助會的夥伴來信告訴我他服務的機構有這本書,可以幫我代借,一個月後歸還即可。真是好消息,我心中大喜,趕忙請他代借,不僅省了1000大洋,更省了大半個月的國際郵寄時間。

後記:在這本書的讀書筆記寫完之後,大陸機械工業出版社寄送了《彩色UML建模》一書到台灣給我。我這才知道,這本書正好於2008年12月出版簡體版,真是好書不寂寞啊,書籍封面如圖37所示。


圖37: 彩色UML建模

<上一篇><回首篇><下一本書>

四色原型::開發程序(development process)

簡單的開發程序,不僅可以讓團隊成員專注在產出上,而非繁雜的執行步驟上,同時也讓新進的團隊成員可以迅速融入專案。因此,特徵驅動開發只有簡單的五個步驟。請看圖36,這是Peter Coad書上的圖,我重新繪製的。


圖36: 特徵驅動開發的五個步驟

在我看來,特徵驅動開發的五個步驟化成白話文來說的話,其實就是下述五個步驟:
  1. 建立結構—參考前述的四色原型以及領域特定元件的類別結構,建構出整體的模式雛型,產出類別圖。這個步驟初始約花費專案10%的時間,後面陸續還會花費約4%的時間。
  2. 列出特徵—使用前述的特徵短句寫出詳細的特徵,同時還要訂出每個特徵的優先順序及重要性,產出特徵清單。這個步驟初始約花費專案4%的時間,後面陸續還會花費約1%的時間。
  3. 規劃進度—依據特徵清單產出專案的細部時程表。這個步驟初始約花費專案2%的時間,後面陸續還會花費約2%的時間。
  4. 設計行為—設計出動態行為,產出循序圖。此處的「設計行為」與接續的「按圖編碼」步驟,兩個步驟組成一個循環(iteration),專案約莫77%的時間都花費在一個又一個的循環上,每次循環大約花費兩週時間。
  5. 按圖編碼—依據上述的產出編寫程式碼,以及進行測試。

以我輔導台灣專案的經驗來說,最難的是在第一和第四步驟,特別是在第一步驟,一開始就要建構出整體的領域模式,即便只是雛型,都需要對建構領域模式相當有經驗的成員才做的出來,這個步驟也通常是我輔導專案的重點。

至於第四步驟,則相對於第一步驟,如果第一步驟有高品質的產出的話,第四步驟的產出也會容易些,同時品質也會優些。所以,這兩個步驟的關鍵都在第一步驟所產出的領域模式,當然這也是Peter Coad書中花了九成的篇幅用力說明的部份。

<上一篇><下一篇>

2009/6/16

四色原型::特徵(feature)

什麼是「特徵」?特徵是一個對客戶有價值的功能(a client-values function),並且它可以在兩週、甚至少於兩週的時間內被實作出來。特徵是一個極小的建構單元(building block),使用者用一句簡短的話就可以表達出來。Peter Coad甚至對這句描繪特徵的話,設計了一個樣版,如圖35所示。


圖35: 特徵樣版

文句中所指的物件,就是前面提到的時間片段、角色、人(組織)地物、敘述這幾種物件。Peter Coad在書中舉了一個套用這個句型的例子—計算銷售總和(calculate the total of a sale)。

由於,特徵是個極小的功能,並且是由使用者的角度為出發點,尋求使用者能夠認知的字句。因此,不會出現「建立一個銷售交易系統」這樣的特徵短句,因為這個功能太大了;也不會出現「建立一個用例物件來控制購物流程」的特徵短句,因為在使用者的認知中,可能沒有「用例」這樣的字彙。

<上一篇><下一篇>

2009/6/15

體態輕盈的小滷蛋


(小滷蛋2009/6/7的照片)

小滷蛋今天去打預防針,順便量身高體重,上回(4/13)的身高體重是58.2cm/5.5kgw,這回(6/15)是64.5cm/5.9kgw。因為小滷蛋愛吃手指頭、不愛喝奶的結果,體重才增加一點點,真是傷腦筋呢!

我特別上網查看小滷蛋的生長發育情況,找到了甜蜜家庭疫苗網可以評量身高體重。試算的結果,小滷蛋身高介於97~75%,體重介於24~3%,是個又高又瘦、體態輕盈的小天使。

四色原型::特徵驅動開發(Feature-Driven Development)

無論是企業運作或是IT技術,其變化的週期愈來愈短,在這種現況中,許多冗長、龐大、複雜的古典軟體開發程序(software development process)逐漸沒落,取而代之的是能夠提供短小精簡的開發程序,而「特徵驅動開發」(Feature-Driven Development, FDD)正打著相同的旗號,標榜為變化迅速的環境所生。

簡單來說,特徵驅動開發一開始會先花約一成的專案時間,建構出整體的領域模式雛型;接著也是花費大約一成左右的專案時間進行跟「特徵」(feature)有關的計畫;最後八成的專案時間,以每兩週為一個循環,發展出一系列以特徵為主的設計與編碼。領域模式雛型的模樣,長得就像前述所提及的現金銷售期間之類別結構。

接下來,我想討論下列兩個問題:

  1. 什麼是「特徵」?
  2. 特徵驅動開發的開發程序為何?

<上一篇><下一篇>

2009/6/13

四色原型::現金銷售期間

Peter Coad團隊發展出領域中立元件之後,將這樣的概念投入實務工作中,並且陸續找出共61組的「領域特定元件」(domain-specific component),在書中第二章到第五章的內容範圍中,正是在說明這61組領域特定元件。

不過,我只挑選了書中的第3.2.1小節來說明,主要在談現金銷售管理(cash-sale management)中的「現金銷售期間」(cash sale session)。之所以挑選這一小節,有兩個主要原因:第一個原因是,大部分人都有接觸過這個領域,所以比較容易理解;第二個原因是,它所涉及的類別比較少、複雜度低,方便用來做為說明範例。

現金銷售管理在談「現款取貨」(cash and carry)的情況。例如,我經常去二手書店買書,店裡通常只收現金、不接受信用卡、而且免開統一發票,諸如此類一手交錢一手交貨的現金交易,就適合採用現金銷售管理裡頭談的領域特定元件。

現金銷售管理細分為兩個子套件(package):現金銷售期間(CashSaleSession)與現金銷售(CashSale),如圖31所示。


圖31: 現金銷售管理套件

兩個子套件裡頭只有三個時間片段類別為:現金銷售期間套件中的收銀機作業類別(CashSaleSession::CashDrawerAssignment)、現金銷售期間類別(CashSaleSession::CashSaleSession),以及現金銷售套件中的現金銷售類別(CashSale::CashSale),如圖32所示。


圖32: 時間片段類別

61個領域特定元件彼此之間是有關係的,所以除了套件本身內部的類別外,還可能連接其他套件的類別。請看圖3,這是現今銷售期間套件內部的類別結構,這個套件內部定義了三個類別,分別為:收銀機作業(CashDrawerAssignment)、現金銷售期間(CashSaleSession)與收銀機(CashDrawer)。除此之外,它們還連接了現金銷售套件內的現金銷售類別(CashSale::CashSale),以及關係管理之個人角色子套件下的收銀員類別(RelMgmt::PersonRole::Cashier)。


圖33: 現金銷售期間

根據圖33的類別結構,我們假想出如圖4的情境圖,用假想情境來解釋抽象的類別圖,條列說明如下:

  • 假設,邱郁惠是一名二手書店的收銀員。
  • 邱郁惠在9/29上9:00~下午6:00以及9/30下午6:00~晚上10:00,都有操作收銀機處理銷售交易,所以在圖3中收銀員與收銀機作業之間為一對多的關係。
  • 二手書店有兩台收銀機,邱郁惠在9/29上9:00~下午6:00以及9/30下午6:00~晚上10:00剛好都被分派使用到1號收銀機,所以在圖33中收銀機與收銀機作業之間為一對多的關係。
  • 二手書店將整日的銷售期間分為上午、下午及晚上三個時段,所以說,邱郁惠在9/29日值了上午及下午兩個時段,而9/30日則值了晚上一個時段。參照看到圖33中收銀機作業與現金銷售期間之間為一對多的關係。
  • 二手書店的生意很好,所以每個現金銷售期間都會發生多筆的現金銷售交易,所以在圖33中現金銷售與現金銷售期間之間為一對多的關係。
  • 至於,圖33中收銀員與現金銷售期間之間的一對多關係,可以從收銀員與收銀機作業之間的關係,推衍得知。
  • 還有,圖33中收銀員與現金銷售之間的一對多關係,也是可以從收銀員、收銀機作業與現金銷售期間三者之間的關係,一路推衍得知。


圖34: 情境圖

至於,圖33類別中的屬性(attribute)與操作(operation),我就不加以解釋了。一方面,因為不同的現金銷售專案可能都不盡相同。不過,您要是有空或者有需要使用到的時候,還是值得花一些時間推敲推敲的。

另一方面,書上其實並沒有對每一個類別以及其內部的屬性、操作做詳細的說明。或許,Peter Coad認為只要是這個領域的讀者都可以輕易理解這些類別結構,所以真要將這些類別結構用在實務上,還真得花些時間多多推敲推敲才行。

<上一篇><下一篇>

2009/6/11

SA/UML/UseCase::書名

原本這本新書要叫《UML/UseCase做中學》,不過出版社覺得之前的《寫給XX的XXX實務手冊》名稱比較經典。我是認為,只要書名明確就可以了,所以這本新書可能會叫《寫給SA的UML/UseCase實務手冊》。這讓我聯想到,阿諾演了「魔鬼終結者」紅了之後,以後他演的片子中譯名稱都稱為「魔鬼XXX」,像是「魔鬼孩子王」...orz

<下一篇>

30雜誌::精彩生活,自己創造

(摘自30雜誌2009年6月號)

人生短暫,不能等待,實現理想,無可取代。

我們沒辦法控制人生,只能創造回憶,你要先自己開門,喜歡自己的工作,才有可能作得比別人好,更能面臨大的變局。

聽說金魚的記憶力,只有3秒鐘,牠只要繞魚缸一圈,又是一個新的世界,人要學習金魚的記性,常常忘記不開心的事。

天下雜誌::讀一本課本是不夠的

(摘自天下雜誌第418期2009.3.25-4.7)

從大腦和記憶的研究來看,廣泛閱讀的效果較好,因為記憶是個熟悉度,常用字的神經迴路連接得比較緊密,記憶比較好,同時,因為它反覆在不同情境下出現,這個生字的正確用法可以透過內隱的學習而得之...

一個單獨出現的生字不及在文章中出現時記得牢,因為故事內容提供了更多的提取線索。

閱讀最忌一直停下來查生字,它會中斷閱讀、喪失學習的樂趣。

香港的學校沒有使用注音符號,他們是一開始便廣泛閱讀,透過閱讀認識生字,變成熟字,更透過閱讀,掌握這個詞的正確用法。

天下雜誌::佐藤可士和的「創意整理學」

(摘自天下雜誌第413期2008.12.31-2009.1.13)

「減」比「加」更能貼近事物的本質。

強調「減」比「加」更重要的創意管理,以釐清事物本質,讓創意發揮最大成效。

從事設計最重要的元素,就是「清楚的概念」、「小說般的敘事能力」、「兼具邏輯與美感的構圖」,左腦與右腦並用,缺一不可。這些,都必須靠善於整理的工夫。

桌面的整潔度,跟工作效率成正比。因為,一個人的桌面,顯示他的大腦所呈現的狀態;桌面愈亂,表示這個人思緒愈混亂,對目前手邊的工作難以掌握進度與品質。

如果看過的資訊卻記不住,這跟從未閱讀那項資訊根本沒兩樣。

決定觀點,才能打開一扇窗,從窗外看見風景。因為,「客觀」與「沒觀點」是兩回事,接收資訊時,如果沒有在過程中確立觀點,就只是把所有的資訊堆在腦子裡,難以消化,到最後什麼都記不住。

轉換觀點,從各個角度觀察,包括當事人、對手、第三者。

腦中蒐集大量資訊之後,最後、也是最重要的一步,就是如何透過思考,把這些資訊分析整理,成為可行的新概念。

培養「將思緒轉化為語言」的能力非常重要。如果能將腦中的想法轉化為語言表達,有用的資訊會被過濾出來,然後以有邏輯、有條理方式加以整理,思緒自然就清明了。

一般人該如何找到自己的「第二雙眼睛」?透過廣泛的閱讀,透過跟自己不同「型」的人討論溝通,都是方法。如果永遠只閱讀自己喜歡的書籍、只跟自己想法相近的人交往,那就永遠跳脫不出現有的框架,也就難以出現新的創意。

產品不只是產品,它出自你的思考與雙手,代表著你看世界的觀點與態度。

2009/6/10

四色原型::交易樣式(Transaction Patterns)

書上提到,早在1992年9月,四原型的概念就被刊登在《Communications of the ACM》雜誌的“Object-Oriented Patterns”一文中,且於1995~1997年間出版的《Object Models: Strategies, Patterns, and Applications》一書中被擴大應用。

不過,1992年剛提出四原型概念時,並未加入顏色建模的概念,一直到1997年Peter Coad團隊才開始採用四色建模的方式。或許也正因為如此,所以《Java Modeling In Color With UML: Enterprise Components and Process》一書才得以在1999年問世,讓我們再次見到四原型加顏色建模的創意。

也就是說,雖然《Java Modeling In Color With UML: Enterprise Components and Process》一書比《Object Models: Strategies, Patterns, and Applications》晚出版,可是這本書中的四原型概念比交易樣式的概念還要早出現,交易樣式只是後生晚輩,拿四原型的概念來應用罷了。

進一步來說,Peter Coad在書中除了談到四色原型外,同時將這四色原型兜起來,形成一個更大更複雜的類別結構,稱為之「領域中立元件」(domain-neutral component),局部如圖29所示。


圖29: 領域中立元件

其實,我一見到書中的領域中立元件便覺得熟悉,因為它跟交易樣式的結構十分相似,局部如圖30所示。所以我推想,交易樣式非常可能是參考了領域中立元件的結構,然後再進一步提出關於交易樣式的見解的。不過,本文的重點不在交易樣式,所以理解它跟四色原型之間的關係即可,我們就不再細究交易樣式的內容了。


圖30: 交易樣式

<上一篇><下一篇>

2009/6/9

四色原型::顏色建模

Peter Coad提出顏色建模的概念,其實是既古典又新潮的做法。說顏色建模的概念古典,那是因為一般人大概很難想像沒有顏色的世界;顏色蘊含著額外的資訊,顏色對我們既是理所當然、又是習以為常的存在。

但說顏色建模的概念新潮,那是因為在軟體建模的世界中,據我所知,還未有人提出利用顏色而非形狀或文字,來傳達更豐富的意涵。或者保守地說,也許過去有學者提出顏色建模的概念,但我想應該沒有人向Peter Coad如此大力宣傳這個概念了吧!

但是,反觀真實世界中,到處都是運用顏色傳達訊息的實例。比方說,馬路上的紅綠燈號誌,三個燈號都是圓形,但是顏色各有不同:紅燈代表停、綠燈代表行、黃燈代表警示。簡單地說,紅綠燈憑靠著不同顏色的燈號在運作,而非憑靠著不同的形狀來傳遞訊息。

再看台灣的主要政黨:藍色代表國民黨、綠色代表民進黨、黃色代表新黨、橘色代表親民黨,這些政黨甚至還用不上形狀,光是使用顏色就足以將政黨理念、支持民眾等等,一大票相關的人事物涇渭分明地切分開來。

總之,Peter Coad引用Edward R. Tufte在1990年出版的《Envisioning Information》一書,說明顏色與資訊(information)的相關性上,顏色可以達到四個目的:分類(to label)、度量(to measure)、表現(to represent or imitate reality)與裝飾(to enliven or decorate),如圖28所示。


圖28: 書籍封面

針對上述四點,Peter Coad也進一步提出他使用顏色建模的四個目的:
  1. 分類—增加資訊的層級,例如相同特性的類別可以採用相同的咸色呈現出同層級的意涵。
  2. 度量—指出時間遞增下的發展進度,像是利用顏色的不同亮度、漸層來顯示發展進度。
  3. 表現—利用不同顏色表達不同的資訊種類,譬如四色原型中各的顏色表達不同的概念種類。
  4. 裝飾—增添視覺上的衝擊或影響,不可諱言的是,採用顏色建模確實讓原先單調、枯燥的軟體模式,變得讓人耳目一新、賞心悅目多了。
此外,Peter Coad還嚴謹地引用了其他學者的論述,分別解釋為何採用四個顏色,而且為什麼挑選粉紅色、黃色、藍色與綠色這四個顏色。引用的論述談到2~3個顏色已經足夠、5個顏色則嫌太多、4個顏色最剛好。至於,要挑選哪四個顏色,Peter Coad也參照了不同的顏色系統學,交叉比較之下,挑選了紅色、黃色、藍色、綠色這四個醒目的顏色。

不過,Peter Coad擔心放置其中的文字會因此而不容易閱讀,所以最後決定採用淡一些的顏色,所以使用了粉紅色、粉黃色、粉藍色、粉綠色。您要是有機會看到這本原文書,就會知道書中印刷的顏色確實是粉色系的,這樣一來,黑色的文字置於其中確實比較不會有看不清楚的狀況。Peter Coad確實用心良苦。

最後,在顏色與原型的配對上:由於時間片段原型是核心,所以給予最醒目的粉紅色;角色原型與人(組織)、地、物原型則分別給予黃色與綠色;至於,敘述原型它的責任簡單、變動性小,所以給予最平靜的藍色。

談到目前為止,看得出來,顏色建模確實有它的價值,不過實務上,恐怕有些為難之處。遇到了黑白列印或手繪的情況,顏色就成了多此一舉的附件了,這也是雖然Peter Coad提出顏色建模,但是四原型卻不能只是搭配顏色,而且還得搭配《moment-interval》之類字標的原因。

譬如,我在參與專案時,經常在白板上或白紙上跟成員討論類別圖,不可能要我真的拿四支色筆,一邊換色筆一邊畫圖討論吧,這多麻煩啊!還有,所有套用顏色建模的文獻,可能都得套色印刷。比如Peter Coad的這本書,它的定價高昂,原因不在於這本書的內容如何,而在於它必須套色印刷,所以成本很難壓低,定價也就因此而跟著調漲了。

不過,話再說回來,除去顏色在目前實務上的限制外,Peter Coad書中所提出的四原型概念,倒是價值非凡,值得我們多花些時間去理解與應用。

<上一篇><下一篇>

2009/6/8

思考型工作者


(到博客來購買本書)

「只要在工作上須要使用到知識的人,都算成知識工作者」,對「知識工作者」這樣定義,其實沒什麼幫助。[21]

思考型工作者會自然養成獨立思考的習慣。[26]

為知識密集的流程,明訂詳細的步驟和流程,比其他工作來得更困難,也比較沒有價值。[28]

改善工作績效時,我們通常會分解工作結構,將其劃分為不同步驟。...一旦我們將工作拆解成個別單元,會更容易追蹤和衡量工作流程,並可刪除不必要的步驟。[28]

沒有深入觀察,無法看透工作情形。[30]

知識工作者如果沒有投入感情和心力,不會有很好的工作表現。[32]

知識工作者把自己的知識視為極有價值的資產,如果沒有適當報酬和工作保障,他們不願與別人分享。[34]

知識工作需要高度投入。不要採取任何行動,去損害知識工作者對工作和組織的全心奉獻。[38]

知識創造者如果能夠隨手取得重複使用的現有知識,或者分析以往創造知識的類似情況,他們的生產力和績效往往會得到改善。[45]

知識包裝者負責把別人創造的知識加以組合。[46]

未來最成功的組織,會讓每位員工創造和使用大大小小的構想。[48]

最昂貴的知識工作者通常教育程度最高,也最為資深,因此,在許多情況下也最難改變。[49]

沒有衡量品質的方法,就不可能切實改善知識工作。[72]

太多知識工作都是隱而不顯,所以其作業方式也很難評估或衡量。[78]

如果要讓任何知識工作者遵循新的工作流程,必須讓他們參與流程的設計與再造。[79]

從事某種工作所需的知識和技能程度愈高,擬定作業範本的做法,就愈不可能發歡任何效用。[80]

需要創意的知識工作,不應有太多固定結構,不論是由電腦、控制力太強的上司或任何其他事物決定的架構。人有時間好好思考的時候,會比較有創意和洞察力。[82]

把科技應用在工作上時,最好先進行流程分析,以免把拙劣的流程自動化。[89]

軟體開發人員對加強流程化的反應,大致相當正面。[91]

軟體開發的例行工作,因為標準化而變得更有效率,非例行工作則仍然比較沒有固定結構,讓工作人員仍然可以充分發揮創意。[91]

許多開發人員覺得,流程成熟度可以賦予人們力量,而不是讓人感到疏離。不過,流程成熟度確實意謂著失去獨立自主。所以,擁有較高CMM的等級,會使工作人員形成更廣泛和更緊密的依賴網。[92]

傳播或分享知識的活動,最切實的管理方法,不是去管理作業流程,而是要設法管理傳播知識的外在環境。[100]

組織經常強調重新利用知識資產的重要性,可是這點卻很難做到。許多組織和專業文化,對創造知識的獎勵和重視,有時會不自覺地超過對知識重複利用的重視。[101]

想要有效重複使用知識資產,必須要做點投資,以便重新使用知識...[101]

你不能強迫工程師重新使用現有的設計和零組件,只要把使用舊設計,弄得比創造新設計,來得更加容易就行了。[102]

工作能力最強的知識工作者,隨時都在重複使用知識。[103]

最好的系統是能夠加強人類專家能力的系統,而不是企圖取代他們的系統。[125]

最好的知識重心文化,涵蓋5個F特點:迅速(fast)、彈性(flexible)、專心(focused)、友善(friendly)、樂趣(fun)。[257]

四色原型::敘述原型

雖然,我們先談了人(組織)、地、物原型,可是Peter Coad卻認為第三重要的原型是「敘述」原型(description archetype)。我沒看到Peter Coad說明的原因,不過我自己推想,可能是因為人(組織)、地方、物品比較具體好辨識,想要視而不見也難,所以也就沒必要將它們的重要性往前提了。

「敘述」原型的代表色是藍色,字標為《description》,如圖25所示。敘述代表一組數值(a collection of values),可以不斷被一次又一次地套用。由於,可能會有一組物品對應到相同的敘述,所以跨這組物品的共同行為可以由敘述類別來提供。


圖25: 敘述原型

敘述原型的應用也很廣泛。比方說,台北市立圖書館收藏了七本我寫的《OCUP/UML初級認證攻略》,總館收藏了二本,民生分館、景新分館、天母分館、李科永紀念圖書館、永明分館各收藏了一本,一共七本,可是這七本書只需要一份共用的書籍說明,如圖26所示。


圖26: 書籍說明

還有,秋高氣爽是出遊的好天氣,您也會發現多個北海道賞楓行程,由於行程完全相同,只是出遊的日期不同,所以只需要一份行程說明,如圖27所示。


圖27: 行程說明

<上一篇><下一篇>

翻一圈




(小滷蛋2009/6/7的照片)

小滷蛋已經會翻身了,幫她拍照時,喜歡偷抱小滷蛋的小姪子一直在旁邊吆喝著,要小滷蛋翻一圈給我拍照。小滷蛋翻得過去,翻不回來,手會卡住,所以自從她會翻身之後,老媽她們幾乎是視線不離,就怕這顆蛋因為翻不回來,滿臉通紅,變成小紅蛋啦!

可能因為體型不胖,所以小滷蛋一下就翻過去了,每每錄影等不及她翻身,鏡頭一移走,她瞬間就翻過身去,害我錯過了好幾次。更有趣的是,有時翻過頭了,瞬間連兩翻,翻完之後,小滷蛋一副不知道剛剛發生了什麼事的驚嚇模樣,煞是好玩!

小滷蛋剛好滿四個月,所以我們特別買了新莊百年老店出產的鹹光餅,打算串一串幫她收涎。其實,買鹹光餅是因為家人喜歡吃,所以就沒特別去找中間有孔的圓餅,而是用有點大的鹹光餅來串。

一大串的鹹光餅,小滷蛋竟然自顧自地用手抱起胸前的那一串餅,開始舔起來了,一個一個舔,連續舔了四個,好忙喔,等不及老姐她們來幫她收口水,她自己就先用餅來收自己的口水了 ^^

其實,小滷蛋現在已經可以添加副食品了,可是她愛用超細孔的奶瓶頭,以致於無法在牛奶裡添加一些米糙。一方面是因為奶瓶頭容易被米糙塞住,但即便換了大孔些的奶瓶頭,小滷蛋也不愛喝,就是邊喝邊讓牛奶流出來,要不就用舌頭把奶瓶頭頂出來。剛出生怕她喝太多變成鴕鳥蛋,現在倒是不愛喝,害老媽總是擔心小滷蛋長不大,真是傷腦筋啊 ><

至於我呢,終於開始狂掉頭髮,不過起床時,手指的關節已經不再疼痛了。只能說,為了生孩子,母體得付出極大的代價呢!

2009/6/6

四色原型::人(組織)、地、物原型

前面提到角色原型時,不斷提到了人(組織)、地、物的概念,所以您對這概念應該不陌生了,而我個人則認為這是最容易懂的概念了,幾乎我們張眼所見的具體實物都是人(組織)、地、物原型的應用。

Pater Coad書中使用「part」代表人(person)或組織(organization),我不確定「party」一字怎麼翻譯比較恰當,所以就沒特別翻譯了,直接寫出「人(組織)」。

人(組織)、地、物原型的代表色是綠色,字標可以使用《party》代表人或組織、《place》代表地方、《thing》代表物品,如圖21所示。


圖21: 人(組織)、地、物原型

例如,銷售的範例中,商家是組織,而個人則是套用人的概念,這兩者都套用人(組織)、地、物原型,如圖22所示。


圖22: 商家是組織、個人是人

再看到圖23和圖24的範例,書籍是物品,而停車位則套用了地方的概念。


圖23: 書籍是物品


圖24: 停車位是地方

<上一篇><下一篇>

2009/6/5

旅行與人生的奧義



無論是英文、商業能力的基礎或是人脈,都只有在迫於需要時才會發揮作用,唯有擁有怎麼樣都想實現的夢想,你才可能在追逐夢想的過程中學會這些事。[28]

只有在英文中以「er」做為字尾的月份,蠔才會好吃(這包括九月September、十月Octorber、十一月November、十二月December)。[56]

為了實現自己想做的事,就自己去賺錢。這是國中時的我就有的理念。[69]

如果無法參透「想做的事就全部去做」,我們就永遠無法積極向前了。[73]

人生裡有一些經驗,你永遠不知道什麼時候會派上用場。[74]

無所事事其實是一種奢侈。[115]

在你繞遠路的時候,重要的景物都讓你看在眼裡、記在心裡,人生就是這樣才愈來愈成長。[136]

藉由化做文字的過程,我在精神上變得更平靜,而且對於大腦也是一種訓練。[138]

四色原型::角色原型

第二重要的原型是「角色」原型(role archetype),它的代表色是顯眼的黃色,字標為《role》,如圖13所示。


圖13: 角色原型

一個人在不同的時刻中,可能扮演著不同的角色,在公司扮演員工,回到家裡扮演父母。人是用不同的角色來參與不同時間片段中的事件、情境。例如,在網拍平台上,針對不同的交易,個人有時扮演買方,有時扮演賣方,這就是角色原型的應用了,如圖14所示。


圖14: 賣方和買方都是角色

或者,有許多商家也開始在網拍市場中提供商品、扮演賣方,所以賣方的角色也可能由個人或公司組織來扮演,如圖15所示。


圖15: 個人和商家都可能扮演賣方角色

既然,四色原型彼此相關聯,我們也可以試著將角色原型和時間片段原型兜在一起,一塊套用,形成如圖16的模樣。


圖16: 角色原型與時間片段原型

不過,角色原型談的更廣泛,包括人、組織、地、物都可能在扮演不同的角色。人或組織扮演不同的角色,這個觀念比較容易理解,至於地、物扮演角色的觀念比較不直覺,書中也沒有多做解釋,不太理解,想了很久也想不到什麼樣適當的範例,所以翻了翻書中的範例,節錄了局部,關於物與角色的例子。

先看到圖17的例子,產品(Product)是物品(thing),已售產品(ProductBeingSold)是它的角色。不太懂?再看圖18的例子,物料(MatlResource)是物品,已訂物料(MatlBeingOrdered)和已用物料(MatlBeingUsed)都是它的角色。好像有點懂了!


圖17: 產品與已售產品(節錄自Pater Coad的書)


圖18: 物料、已訂物料與已用物料(節錄自Pater Coad的書)

分析Peter Coad書中的範例,我覺得物品的角色更像是物品的「狀態」(state),也就是說,Peter Coad把物品的狀態當作是物品的角色。我想應該有不同的解釋,這是我目前的想法,寫出來供您參考!

於是,我自己試著舉一個圖書館借書的範例,每一本書都有三個重要的狀態—預約書、借出書、館藏書,所以我依照這三個狀態設計出書籍的三個角色,如圖19所示。


圖19: 書籍與其三個角色

至於,地方(place)的角色,我也比照狀態的概念,舉了個停車位的範例,每一個停車位有兩個重要的狀態—已停車位或空車位,所以我同樣依照這兩個狀態設計出停車位的兩個角色,如圖20所示。


圖20: 停車位、已停車位與空車位

<上一篇><下一篇>
 

UML Blog Copyright © 2009 Cookiez is Designed by Ipietoon for Free Blogger Template