2008年4月16日 星期三

看『寫給C++程式設計師的UML實務手冊』


數年來,一直無法搞清楚UML的那13張圖,到底要怎麼使用,才能適度表達分析或設計階段的意念;甚而,將物件導向觀念結合,單位系統開發流程中,使開發流程更為順暢。
  而今,在Hsdc一次課程因緣中,結識了本書作者─邱郁惠老師,她以十餘年對於OOAD、UML至最近MDA的開發技術的專案經驗,推出了『寫給SA的UML/MDA實務手冊』的課程,對於她結合實務的寫作方式,讓我真是驚豔萬分。因為,為了研究UML與OOAD的開發流程的開發,買了數十本的書,並且四處上課學習物件導向開發觀念,卻始終不得其門而入的我,真是醍糊灌頂,受益無窮。
  當郁惠老師再出『寫給C++程式設計師的UML實務手冊』這本工具書,僅以14個章節藉以進一步闡述MDA中PSM轉換設計到實作的方法技術,簡明而約要的陳述。不禁讓我觀想起前田約翰曾提出「盡可能減少,隱藏多餘的一切,同時避免失去固有的價值感」的簡單原則,藉以分散或隱藏來掩飾設計產品的擁擠程度,那種等值的藝術價值。
  在零散而有限的時間中,好不容易斷斷續續的以兩個月時間拜讀完UML4C++,有一些以前一直無法組織起來的觀念,似乎就有了一些形狀,或許是無名且不可言諭。想著,想著,又回過頭去翻閱了其它UML的書目,包含了XP與軟體工程、VSTS等相關書目。似乎無意中,就將這些零散的知識,串起了一個開發,由SA至PG應有階段與作為的初始架構。
  心中真是無限的欣喜與讚嘆。
  「部分之總和不等於整體,因此整體不能分割,而整體是由部分所決定。反之,各部份也由整體所決定。」這是出自完形心理學的一項理論。
  不約而同的,在本書中仍承襲MDA4SA的主題──
  第一章到第四章,仍以一個基金系統作為貫穿全書工作流的整體主題前要方法的陳述。第五章開始,到第八章,則是以系統的部份,配以靜態類別圖與動態循序圖,實作出系統類別的屬性與操作,逐步地描繪出系統整體的部分功能。疊代反覆的動作在第九章又回過頭藉由使用者案例繁簡形式的描述,再與第二階段的類別和循序物件間產生出來的程式碼相互照映;提供了一個由部分需求設計到開發,看出這個基金系統的整體目標。
  最後,再加上狀態圖與活動圖,來強化出系統核心要件內的關鍵狀態與系統整體的營運流程。
  本書的架構,以UML作為設計工具,由第一章到第四章提供了整體到部分的設計觀點;從第五章起的章節,則反道而行,以部分觀點的設計與實作,延展出了對於整個基金系統開發的流程線視圖。
  一個簡單的方法,僅僅使用四套圖表,就可以完成一個功能複雜的系統嗎?
  答案,似乎是肯定的。
  或許,不應該如此簡略的答覆。
  就軟體工程的觀點而言,MDA應再結合專案觀點與測試、部署的觀點,才能成就一個完整的開發流程;才能確保一個完整系統的服務品質需求吧。