與「資策會」幾年來沒有往來,結果這個月反而教授了「資策會」兩個單位的 UML 基礎培訓課程。上一次那個課程是在資策會的教育訓練中心,而這次反而是到其客戶單位-關稅總局 授課。
只有三個小時、應該算是基礎性的概念與工具介紹。地點是在塔城街那邊,導航設定到達地點後才知道原來是那個「串珠街」的隔壁街。
中午在塔城、長安西路旁,有家「四川麵王」,點了紅油抄手與小菜。小辣 (可以指定)的抄手很好吃耶,讓我有些訝異,長這麼大竟然沒吃過這種東西啦。
提早了半個小時到,沒想到進到大樓後 (當然有辦證件),還被某一個看來應該較高層級的老主管叫住做身分盤查。挖哩,我到過許多軍方單位也從來沒有被這樣質詢過哩。
結果害我被驚嚇到,所以一開始上課時正襟危坐,認真的授課。問題是,當我認真時,就會很容易照本宣科、依照教材唸著給學員們聽。這樣的氣氛最沉悶了,其實學員也不容易得到想知道的。這樣經過了 30 分鐘,總算慢慢放開,再透過互動的過程中以了解關鍵學員的需求,再來調整授課內容。
喔,與上一次授課的團隊也有些類似,客戶單位已有了具國際標準的 XML 資料交換規格,他們希望了解如何透過 UML 工具自動轉換至類別 (class)的結構圖。
類別圖? 確定? 幾年來到過各大小單位,包括軟體開發公司,我好像還沒有看過有人在設計類別圖。幾乎啦,國內的資訊單位都是資料導向 (data-oriented)的開發,即使是採用 UML 的類別圖語法,但根本上還是在表達資料結構。
如何得知? 非常簡單,只要問設計出來的類別圖的咚咚,在實體系統的配置上是放在哪裡就知道了。結果都嘛是放在資料庫系統,當然是成為資料庫表格的結構。這其實還是披著 UML Class 設計的外皮,但骨子裡還是表格式的資料分析。
好吧,即使真的有表達物件結構的類別圖,那麼,是否能自動化與資料模型 (Data Model)、XML Schema 作轉換 (transform)?
我一向比較直,直說工具有提供,但是那其實叫做 "作假",自動轉換的工程本身意義實在不大。
舉個最簡單的例子好了,如果類別圖上有個商品的一般化類別,然後有兩個特殊化的子類別- 折扣商品、熱門商品。那麼,在資料庫模型上到底應該會有幾個表格呢?
這類的轉換規則,根本不會有一定的標準,而是會依開發問題領域 (problem domain)的性質與邏輯來決定的,而這些都是透過開發過程或後續的維護,持續不斷萃取才能逐漸釐出來的。
當然,只有三個小時的課程,不可能講那麼多,大概就是先概念性的介紹類別與資料結構分析的觀念,然後再利用 EA 工具實作練習、繪製類別圖。過程中,總算回復我 "隨便" 的態度,所以自然課程氣氛就變得輕鬆,再說些笑話,學員們就會放開也敢自由提問各類問題了。
還有後三個小時課程,看來完全與原來議定的課程大綱完全不同。不過這也不是問題,我從來就是主張教育訓練會因材施教,所以本來就應該可以動態調整課程內容的。
所以,也當場向學員要了他們一個工作上的案例,然後下次的課程,請我們工具專家-Ringle,會展示如何將 "Class Model" 與 "XML Schema" 作正反向的轉換案例 (當然,只針對一般性規則)。寫成 Case Study 教材,也突顯一下 EA 在這方面高度的彈性,並且也展示如何客製化,撰寫轉換 script 的邏輯。
我還半開玩笑說,唉呀,以後這類轉換 (transoform)的粗工,就交給我們這類小單位效勞就好啦,如此也還能對我們政府有貢獻嘛。呵呵,他們來聽課的主管也頗為讚許我的愛國表現,所以啦,還打算真要考慮讓我們有進一步服務貢獻的機會勒。 !^^