副標題:運用物件導向思維與 UML 語法,來保存企業最重要的資產。

Business Modeling With UML: Business Patterns at Work Business Modeling With UML: Business Patterns at Work
———————————–
作者/Hans-Erik Eriksson/Managus Penker /著
出版社/Wiley
ISBN/ 0471295515
Amazon 評鑑:四顆星

內容簡介
Until now, the Unified Modeling Language (UML) has been primarily used to design software, but should you use it to model your entire business as well? That’s the intriguing argument of Business Modeling with UML, a text that combines leading-edge enhancements to UML with some solid thinking about business. Written for any manager with some technical background, this book looks at the possibilities of UML used to model entire organizations.

The book makes a strong case for the advantages of modeling businesses in UML. With models, an organization can provide better software, define and implement new goals, and even decide whether to outsource certain operations. The Erickson-Penker Business Extensions for UML, invented by the authors and presented within the text, permit UML to document the entire business enterprise. This book shows how to model businesses, from business architecture to processes, business rules, and goals. Short case studies–for Web-centric and more traditional companies–are used to illustrate key concepts here.

Later sections of the book will perhaps take a little more background in software engineering to appreciate fully as the book presents a handful of business patterns, which offer reusable solutions to common problems (just like software patterns). The authors also look at how to leverage a business model to create better software.

In engineering, a new car is modeled and thoroughly tested on a computer before any physical prototype is ever built. As the authors point out, a business that has accurate models can test out new ideas cheaply and then adapt to changing market conditions quickly. This title makes a case that UML–a tool traditionally used by software developers–is ready to tackle the job. Read this notably informative and intelligent book to see the possible benefits of business modeling in UML for your organization. –Richard Dragan

Topics covered: Business modeling basics, UML notation and Erickson-Penker Business Extensions, class diagrams and powertypes, object diagrams, statecharts, activity diagrams and swimlanes, sequence and collaboration diagrams, collaboration and use case diagrams, component and deployment diagrams, stereotypes, business architectures, business processes, resources, goals, business rules, Object Constraint Language (OCL) and collections, business views and patterns, business goal allocation, business goal decomposition, business goal-problem, and software architectures

Review
“…excellent value for money." (Computer Bulletin, September 2000)

前言

一般軟體設計人員以為UML 塑模 (modeling) 的範圍僅限於軟體資訊系統,其實不然,我們也可以把企業當成是塑模的對象,利用物件導向的手法,有效地來保存企業重要的資產。企業塑模的意義就是在於將企業當成是一個系統 (system),把系統視為是一個整體 (whole),我們就可以區分外部的需求觀點與內部的結構觀點。確立了系統範圍的好處在於可以找出系統 (企業)的主要參與者 (primary actor)與支援性的參與者 (supporting actor),前者會需要企業來提供整體性的服務,而它也往往是企業主要的經濟來源與命脈;後者則是企業需要其它關係企業、或子公司的服務支援,以提升企業整體服務的能力。然後,我們再透過觀察內部的組成結構,找出共用性的部分,藉以來支撐外部的需求。企業內部包括靜態的結構元素,可能會有內部工作人員 (internal worker)、軟體資訊系統 (information system)、企業內部經常溝通的術語、概念、實體 (entity)等;還有以及觀察在動態行為期間,為了服務需求,這些元素是如何互動的合作,而構築成所謂的企業流程 (business process)—包括了供應鍊 (supply chain)與內部行政事務的流程等。

可以發現到,應用物件導向分析與設計 (OOAD)的思維與技巧,以及利用標準的 UML 語法與視覺化的圖形表達,簡單又易學、幾乎沒有學習曲線,就可以將企業與軟體資訊系統用一致性的分析手法很平順地互補與轉移,而且可以協助從各種不同的角度來看待組織與企業,不僅只看流程 (這是比較傳統的紀錄方式),還能找出企業核心的本質 (結構)。可以說,企業塑模的價值遠大於軟體資訊系統。除了瞭解企業的運作與規則,也可以知道哪些活動或製程需要資訊系統的支援,如此可以提昇企業的效率與整體競爭力,這也是 BPR (business process re-engineering),企業流程再造的範疇,同時又可以成為專案委外 (outsourcing) 規劃與管理重要的參考依據。

企業塑模真的很有趣,同時又可以擴展軟體人員的視野與格局,不會只是單純僅考量到實作技術面的議題而已。那麼,又如何能建立企業塑模的正知與正覺呢? 我是強烈建議研讀本次書評的主角,它除了說明了 business modeling 的真諦,還教導讀者如何保有多重的觀點 (multiple views)來看待系統,以及如何利用物件以及流程,表達出各個觀點之下的設計圖 (diagrams),不是只有涵蓋理論而已,是絕對可以應用在實務的開發。本書可以說是作者的經典代表作,也是 OMG 系列強力推薦的實用叢書。

從架構與觀點著手,才能掌握整體,瞭解企業塑模的精要

本書我是買精裝硬皮的,質感甚佳,也比一般書籍的 size 大了些,而且看起來好像很厚,約 450 頁左右,這也使得許多讀者望而卻步。但其實印刷的字體還算大,且有著大量豐富的設計圖。我是建議不要逐字細讀 (那太辛苦且沒效率,而且往往很難堅持從頭看完),要能觀其大略。例如我會一開始先研究一下本書的大綱,大概知道一下每一章節要表達的重點為何;在我的心中建構了整體觀之後,然後就會先翻閱到與整體比較有關的章節,然後再看重點標題,當然,基本上圖形大概就可以讓你瞭解到該節想要表達的意義為何。而若是不懂該設計圖的意涵,再去佐以看看那些文字敘述的解釋,大致上瀏覽、能瞭解其意就可以了。我是覺得,本書的編排非常好,讓我閱讀起來是真的很輕鬆。

本書共分為十一個章節。第1章開宗明義,解釋了企業塑模的意義與價值,以及為何是利用 UML 設計與規劃企業流程、企業規則等。第2章是對 UML 語法的簡單介紹,諸如靜態結構的類別圖,以及表達動態行為包括活動圖、狀態圖等,尤其是活動圖,這會是本書後續所常用的。第3章最重要了,它揭露出企業架構的塑模手法。本書最有價值的一張設計圖,正是由兩位作者所自創的語法構成的,由於長得很像火箭,我常把它戲稱為 火箭圖 (其實正確的學名為 Eriksson-Penker Business Extensions,也可以把它視為是活動圖的擴展),用來表達鉅觀的企業流程。而事實上,它也成為我在輔導比較大型 ERP 系統開發時所常用的流程設計圖。一般我經常看到系統分析人員常常把流程畫得很複雜,細細麻麻的長得好像電路圖。其實這就是因為比較沒有層次的觀念,來適時地封裝不必要的細節。火箭圖正是用來表達更高層級的流程活動,它甚至封裝了活動圖所表達的業務流程,只表達出火箭的輸入、輸出、參考與支援的資訊,更有價值的是,它還凸顯出流程處理完之後所能達成的目標 (goal)為何。火箭圖會應用在如 ERP 常講的業務循環,當訂購循環處理完之後 (訂購火箭),輸出會轉到如採購循環或出貨循環 (出貨火箭)等。然後當要觀察每一個火箭內部的作業時,只要打開它,再利用活動圖來瞭解其活動的細節。層次分明、簡單呈現,這正是塑模的精要 (essential)。

第4章則是提及了上述所講的企業觀點問題 (business views)。我這裡再次提醒讀者,記得當把企業當整體單一系統時,起碼保有兩種觀點—外部的需求觀點 (用的角度);內部的結構觀點 (靜態的結構元素關連與分類,動態的流程互動行為)。第五章則是提及如何利用 OCL (Object Constraint Language)來記錄企業規則 (business rule),這倒不是絕對的方法,我個人本身就不太願意被限制如何表達這些規則。6~8 章則是揭露出各種對企業的設計模式 (business patterns),包括了結構、流程、資源、規則與目標規劃等模式。我會建議不用先去看它,等到有身體力行,應用在實務遇到一些想法或問題時,再回來翻閱,會比較有感覺。第 10 章是討論如何從企業塑模轉移到軟體架構的設計階段。我是覺得,本章並沒有一個很明確的轉移規則,算是一種觀念的引導而已。如何從企業轉移到軟體塑模,在我所實際顧問的專案中,是已經釐出一些規則出來。簡單的說,無論什麼領域 (domain),只要能“想辦法”轉移到資訊系統的使用案例圖,那實作上就絕對不會是什麼問題了。最後第11章,是提供一個案例分析,從企業願景 (vision),到結構的結構、行為與流程等,這些設計是如何被產出,以及這些產出之間的關係又是為何。

企業的資產,是由領域與軟體專家們的合作所累積而成的

從企業塑模的層級可以得知,領域專家 (domain expert)是可以與軟體專家合作完成在企業面的設計。對領域專家而言,流程的設計與規劃,是屬於 “企業流程再造的範疇,而對於軟體專家,是可以把 “企業當系統" 來看待,然後利用 企業塑模 的技巧,來協助企業流程、規則等的設計與記錄,真正企業的資產,就是將領域專家們的智慧,經過“企業塑模”所粹取之後的產出(Artifacts)!! 而後參考企業塑模的產出,就可以很清楚地瞭解與規劃,哪一些企業流程的活動,是可以經由資訊系統的協助,來達成自動化或減輕工作人員的負擔。