我教授軟體設計相關課程至少有六、七年以上了吧?稍有些意外的是上個星期五才是第一次教授到資策會的團隊。教授的課程只是基礎的 UML 與 EA 工具使用的觀念引導。

這算是企業包班的課程,所以上課地點就是位於在資策會復興南、信義路口的教育訓練中心。距離上次來此已有四年了,因為四年前就是來這裡考 UML OCUP 認證,詳見:通過 OMG UML OCUP Fundamental 認證考試。不過,才上個月就已來過該棟大樓,拜訪位於樓上的「手機王」洽談專案開發的輔導事宜。

一整天的課程,早上我開車到位於「大安高工」後面的巷道內找車位。才 8:40 就找到車位,9:30 才上課,所以就到了馬路對面的 StarBucks 吃早餐。

早餐有雜糧麵包、沙拉,以及我喜愛的榛果拿鐵,大概花上 NT$100 餘元。到了 2F 坐下來用餐,乖乖,幾乎是客滿耶!這個時候該算是上班時間吧?所以看來悠哉的人也多了。在這裡用餐,一口一口的麵包,啜飲著咖啡,聽著音樂 (喔,還有幾個蠻時尚的女孩 :wink: ),感覺上這樣的品味生活、步調不要那麼快急,也比較自在愉快的。

快到上課時就過去2F的教育中心,已經有幾個學員在裡面了。學員們大部都很年輕,甚而還有國防役的。我教課算是比較容易與學員打成一片,然後在課程教授的過程中,會調整內容與上課的節奏。期間才逐漸知道,原來他們不僅希望了解基礎的開發流程概念,同時也希望講師可以協助他們解讀國外某一個電訊交換領域的 UML 模型,是利用 EA 工具所設計規範的類別 (Class)圖模型。


中午就在附近,剛好與他們幾個年輕的學員們一同吃魯肉飯,同時陪他們聊天、開開玩笑。然後回來時,他們 PM (Project Manager) copy 了這個 Model 檔給我給我瞧瞧。喔,據他跟我說,這個是國外某一組織所制定的關於電訊交換的 UML Class CIM Model。

CIM ? 好像全名是 "Common Information Model",還是 "Computation Independent Model"。耶,我對這類術語也沒啥興趣。打開仔細瞧瞧之後,發現到,它比較偏是概念 (concept)層次的領域 (domain)術語 (terminology)的關聯模型。幾乎沒有行為的定義,其實看起來比較明顯,這不算是物件模型 (Object Model),而偏是資料模型 (Data Model)。

一看大概就知道,這個模型最多只能當作是 "參考模型 (reference model)",可不能當成可直接開發的規格模型 (specification model)。裡面揭露出比較有價值的反而是這些術語的關連與定義,而這些。絕對需要有熟悉該電訊交換領域的專家一同參與訪談分析,與軟體結構專家合作互補,才能更進一步轉換為更具體的模型;然後再來就是由 SA "想" 一些可以用來被測試的需求功能案例,藉以驗證設計的模型。

有意思! 這樣的案子反而不是從典型專案開發從需求分析入手,而是一開始就需要擅長抽象軟體結構的專家,藉由領域專家 (domain expert)的持續的解讀與驗證,才能逐漸地建構穩定的結構模型,甚而往所謂的 "企業框架 (Business Framework)" 的基礎建設 (infrastructure)實現。

不過,這絕非幾天的課程就能學會解讀的。這可真的是非得具備軟體結構與實作平台的底子才可。只能說,真要弄的話,可是必須團隊投入,直接協助實戰兼輔導才行。

當然,課程中我還是先就基本的物件觀念,尤其是類別的關聯性作介紹。最起碼的,這些基礎觀念總要先了解才行。對啦,若是專案開發,那還是介紹我最熱衷推薦的 "使用案例 (use case)" 觀念與技術,簡單實用好維護,實是短線專案開發的利器。

一整天的課程,六個小時,上到下午 5:00 結束。這樣教下來,除了喉嚨會不太舒服外,其實精神都還相當好。喔,還有一件超開心的是,我在「大安高工」裡面的巷道內,停的有劃白線的停車格,竟然沒有開停車收費單啦,這樣足足省了有三百餘元之多,超開心的啦。