聊聊關於 UML 輔導個案的二三事

** 本文同步發表於 FB社群-軟體設計鮮思維 **

UML System Sequence Diagram

前兩個星期有位上過前一期「軟體架構師」課程的學員,他在某大金融單位擔任技術職PM,特地利用週末時間到我家附近,請教我關於他利用 UML 所繪製的設計圖問題。相當認真,所以我很願意陪他一同討論軟體相關議題,順道一同在肯德基吃午餐。總共花了約兩個來小時吧,該學員還要去參加他的讀書會,真是有夠認真啊,不過起碼有討論出一個比較具代表性的使用案例其實現的主要程序描述。

畫出來是否正確或合理與否是一回事,至少他肯利用 UML 表現出他的設計思維就很值得肯定,這才有機會可以指指點點與討論的。

他只畫了使用案例圖與某一結構設計的類別圖,因爲有公司機密問題,這裏就不方便貼出他的原稿。我只就他的設計給予一些建議與修正,並利用他在 Mac 所使用的 UML 工具繪製出來。

敏捷式系統分析設計與實作—活用 UML/SCRUM 與 C#.NET (2017/07/15, 48 Hrs)

§ 課程介紹

****** 
1. 本課程包括 UML Model & C#.NET/JAVA 完整程式碼均會以開源 (open-source)方式置於 GitHub 供學員免費下載與持續更新。
2. 課程的實作會同時提供 C#.NET 案例程式碼與 UML Model 檔。
3. 每一期同類型課程會以 C#.NET 與 Java/Srping 交替作為案例實作展示,學員可免費再次旁聽下一期不同程式語言的課程。
******

HSDc. 顧問開發團隊綜合多年來的大型系統實務輔導與開發經驗,並結合大量研究的理論知識與平台技術,所推出關於完整的系統分析、設計至實作的課程,期能協助軟體開發人員在現實的工作中,能瞭解完整的開發流程與各個角色的工作執掌與產出。

在基於以架構為中心來建立團隊具共識的整體觀下,能聚焦在適切開發單位的功能點內,快速地從需求分析導出到實作,找出並克服開發過程中,包括溝通、技能與技術等風險因子。而後基於這樣的框架目標內,得以對系統的結構作重整,卻又不至於影響已有的功能前提下,得以對程式碼施以重構的技巧,讓系統更有延展度與彈性。

觀念的傳授、設計的圖形化塑模表達、程式碼的實作三層次,是我們對於系統分析設計與實作課程的基本原則與態度。

修習本次系統分析的學員們,也必然可以拿到完整的教材、完整案例的 Model 檔與實作程式碼的對應,帶回去自行練習,並能對映於工作上,如此才會有顯著且實質的效益。

HSDc. 軟體團隊,強調的是「虛」與「實」兩者調和的『知行合一』...。

==================================================================================================
閱讀全文 »

別出極具創意的新年賀卡-UML 13張關連心智筆記圖

過年前,我們團隊 (HSDc Inc.)所舉辦的 [UML 2.0 觀念引導與實務操作入門] 課程,約有近 20位學員參加。其中,有一位相當高恌的女孩子就坐在最前座,上課的時候總是相當專心聽講作筆記。

我在講課時總是喜歡採用反問的方式,藉以引導學員可以思考我所提問問題背後的涵意。大部分學員總是會有些怕怕,也比較不敢表達出自己的想法,但這位女孩子卻是可以回答出令人相當滿意的答案,讓我相當的佩服;更為訝異的是,在下課時與她閒聊,才知道她還只是撰寫大型系統的程序性古典語言,也沒有寫過 Java or .NET 等 OOP 語言。但是,我可是真的覺得,她對物件導向的設計哲理,相當具有領悟力,也很肯去反思,俱足軟性思考的頭腦。

對於這樣聰慧、具 Smart 特質、又肯主動學習的學員,除了讓我印象深刻外,我更是願意就我所能,引導與分享對於軟體設計領域上的觀念與學習技巧。

就在想說,年後我們團隊若有一些研討活動 (如讀書會、研討會)等,準備邀請該位學員來參與。沒想到,就在除夕春節前,這位學員還主動寄了一封新年賀卡給我們。除了新年賀節問候外,也說出了她對這次上 UML 課程的收獲與心得,真的很感心~

更特別的是,附檔的新年賀卡是她利用 PowerPoint 設計的。內容竟然是把兩天課程所介紹 UML 13張設計圖,它們之間的關聯、特質與應用時機等,給全串在同一張圖內;還畫了虎年到來、新年迎春饒富過年氣氛的插圖。
Sharon 的 UML 新年賀卡

哇!! 這麼別出心裁、這麼有創意的新年賀卡,又是如此的用心製作 (必然要耗費很多時間),我收到這樣的賀卡真的是相當開心,也相當感動。更是覺得,這麼棒的作品,要不分享出來給眾讀者們欣賞,那真是太可惜了。所以,我還特別寫了信徵求該位學員的同意後才特別公開。

對啦,她的名字叫 Sharon,這樣直接稱呼也比較方便勒。另外這裡同時也公開她的網誌應該沒有問題吧? 看看她寫的文章,文句優雅頗具知性,會讓人以為她是一位柔弱感性的少女呢;但是,再瀏覽她整理的網誌相簿,呼,Sharon 可還是一位熱愛潛水的陽光健康女孩呢。 🙂

 o http://blog.yam.com/sharontaiwan
 o http://sharonwang.myweb.hinet.net/

[單元課程] UML 2.0 觀念引導與實務操作入門(01/30,31,13Hrs)

農曆年前 HSDc. 舉辦 2010 年第一場軟體設計培訓課程

** 由於文化教室已滿,故地點改為 中國生產力中心,台北市承德路二段81號B1(首府經貿大樓)。
http://www.cpc.tw/Train/Place.aspx

各位好:

 o 日期:2010/01/30,31 (星期六,日) AM 9:10 ~ PM 17:00 (共 13 小時)
 o 地點:中國生產力中心,台北市承德路二段81號B1(首府經貿大樓)。
  http://www.cpc.tw/Train/Place.aspx
 o 附贈完整系統分析文件範本 (Word 格式)與可執行的 C# 程式原始碼。
 o 前 10 名報名者,免費贈送 UML 新書:UML 協同合作與管理(已有可抵優惠 NT$400)。
  http://www.kenming.idv.tw/bk_uml-collaboration-process-and-management
 o 同課程可保留再旁聽乙次的權利 (報名時註明舊生旁聽即可)。
 o 下午均附有免費從外特別特購精緻的咖啡與點心。

§課程說明 --------------------------------------------------------------------

2010 年一月,HSDc. 所選擇的第一個軟體設計培訓課程為「UML 2.0 觀念引導與實務操作入門」。

焦點著重在講師會藉由 UML 工具的實際操作與引導,繪製各個類型的軟體設計圖,從做中學的過程中,瞭解到這些 UML 設計圖背後的設計意涵。

雖然是短短的兩天課程,但講師們絕對會擷取出 UML 的精要(essential)部分,將多年來豐富的輔導與教學經驗,表達於其內。 絕對可以讓學員們學習與瞭解到,UML 這個統一模式語言的每一張設計圖的基本語法認識,以及基礎軟體設計的思維。

雖然這個是我們已舉辦多年的實務性課程,但是對於課程內容,我們每一次總是接受學員們的建議,以及我們團隊課程結束之後的討論,會再重新作過規劃,讓課程更流暢、更為實用,對學員們當然在工作上更有實質的幫助。

所以,除了 UML Overview 介紹與實務操作外,我們在最後一堂課,會利用一個小而美的案例展示,以提供完整的系統分析 Model,與利用 C# 實作的可執行程式碼,甚而包括了完整的系統分析文件(Word 格式)。這可是相當之實用的範本,讓學員可以參考並實際應用在工作、小型規模的專案開發上。

上課學員除了收到本顧問團隊所親自撰寫的教材外,還可以拿到一片自動安裝的光碟,內含了教材電子文檔(PDF)、UML 範例檔(EA 格式)、UML2 教學錄影檔(Flash)、歷屆研討會簡報資料、EA 7.5 UML 工具(Trial)。

上課過程中,更是歡迎學員自行帶平日工作所碰過的案例問題與疑問,講師群均非常樂意協助解決(不怕被考倒,只怕不問),亦可以當成課堂上的討論案例。

對了,每一天的課程,我們均有免費提供下午茶點,包括小蜜蜂咖啡、茶飲、美味的吊鐘燒與餅乾甜點等。品味咖啡的同時,學習軟體設計思維,那會是一件令人相當愉悅的快樂學習之旅。

§報名資訊 ----------------------------------------------------------------------
o準備教材:
 o 由授課講師提供講義,包括內容、案例分析與 UML 13 種圖範例(包括 Flash 影音檔案)。
 o 學員可攜帶相關 UML 參考書籍,並對於書中內容有問題者,可以直接提問。

o使用工具: EA(Enterprise Architect) 7.5(Trial) UML Tool。

o授課講師:
 o 賴信仁(Ringle Lai) ,王克明(Kenming Wang)
 o 擅長以非常淺顯易懂的比喻及說明,將複雜的系統抽絲剝繭,重新釐清脈絡,讓學員一清二楚,並善於引導學員具備設計應有的反思能力。

o上課時間:
 o 2010/01/30,31 (星期六,日) AM 9:10 ~ PM 17:00 (共 13 小時)
 o 請注意,本次課程特別提早至 9:10 開始上課,並延長至 17:00 下課。

o上課地點與上課人數:
 o 文化大學教育推廣部城中分校,台北市延平南路127號。
  http://future.sce.pccu.edu.tw/service/service01_05.asp
 o 報名人數滿 10 人即開班(同時保留 5 名學員重新選修該課程)。
 o 開課前兩日會以電子郵件聯絡與通知學員。

o適合學員:
 o 系統分析/設計(SA/SD), PM, Programmer 等在職軟體開發者或在學學生。
 o 想實際學會如何利用 UML 工具來畫 UML 2.0 十三種圖。
 o 看了很多 UML 書籍,仍然無法在正確的時機畫出正確的 UML 圖。

o備註:
 o 教室設備包括白板與投影機,由講師親自說明與操作示範。(學員可攜帶錄音筆)
 o 學員最好能攜帶 Notebook,可以於課程中實際操作與練習。 。
 o 為確保報名足額人數,煩請先以 ATM 轉帳預約費用($1000,當然也可一次繳清)。
  並請於報名表備註欄位內,註明您的轉帳帳號末 5 碼與轉帳金額。
  (若實在不及轉帳者,仍可現場報名,但請在報名表內註明現場繳費)。
 o ATM 轉帳帳號: 新光銀行 (103) 帳號: 0772-50-100979-9

§課程大綱 ----------------------------------------------------------------------
※ 基礎觀念引導—認識 UML
 o 使用 UML 的基本思維
 o 為何是利用 UML 來溝通
 o UML 塑模的對象
 o UML 設計圖的分類說明

※ 企業流程與系統需求
 o 利用活動圖(Activity Diagram)表達企業流程
  - Activity, Control flow 的關聯。
  - 決策(Desision), 並行活動的表達。
 o 利用使用案例(Use Case)圖表達系統功能
  - 系統範圍, 參與者, 使用案例 表達系統架構。
  -《include》and《extend》擴充意涵表達。
  - 使用案例陳述(Description)範本。
 o 操作展示與引導練習
  - EA(Enterprise Architect) UML 開發工具安裝與基本操作說明。
  - 利用 EA 繪製活動圖與使用案例圖。

※ 表達系統內部結構的兩位主角
 o 利用類別(Class)圖表達領域概念與企業物件。
  - 類別的特徵:屬性與行為。
  - 三種類別之間的關係:結合, 整體/局部, 一般化/特殊化。
 o 利用循序(Sequence)圖表達物件動態期間的互動關係。
  - 表達出主要參與的主角(Object)。
  - 表達出物件之間的訊息傳遞。
 o 操作展示與引導練習
  - 利用 EA 繪製類別圖與循序圖。

※ 其它類的設計圖
 o 系統的微觀設計
  - 溝通(Communication)圖, 物件(Object)圖, 元件(Component)圖。
  - 狀態機(Statechart)圖, 時序(Timing)圖。
 o 系統的鉅觀設計
  - 互動概觀(Interaction Overview)圖, 合成結構(Composite Structure)圖。
 o 系統的實作與部署
  - 套件(Package)圖, 部署(Deployment)圖。
 o 操作展示與引導練習
  - 利用 EA 繪製上述的設計圖。

※ 案例展示與系統分析範本-從需求分析,結構設計至程式碼實作
  - 使用案例, 類別圖, 循序圖 設計產出之間的橋接。
  - 利用 EA 正向工程產出 C# 程式碼。
  - 記錄測試案例與撰寫測試程式碼。
  - ** 利用 EA 快速產出完整的系統分析文件(可作為開發綱要範本) **
  - 完整附錄可執行的程式原始碼與設計模型的 Model 檔。
--------------------------------------------------------------------------------

 o 諮詢專線:TEL: 092236977
 o 服務信箱:gnimnek168@gmail.com
 o FB社團:軟體設計鮮思維

我總是記不起別人的名字與容貌,我只記得別人提問軟件的問題~

我應該是不太具有那種視覺化的記憶能力。 所以若是沒有常聯絡的朋友,我總是記不起他們的容貌與姓名。 這的確是失禮的事,不過我也不想勉強我自己,透過一些工具與技巧建立客戶關係。 我是覺得,一回生、二回熟,有緣再相會,自然就會逐漸熟識的了。

話雖如此,可是我倒是可以很直覺地、也不需要特別記住-只要是別人曾經就軟體的相關議題問過或與我討論過,我幾乎是不會忘掉那個主題。 這就如同我一些朋友、尤其是女孩子,總是很清楚記得哪一天見面時所穿的服飾打扮 (但我卻永遠不會記得別人穿甚麼衣服)。

就在今日晚上,有位網友 Msn Call 我,打的是簡體字,看來是大陸來的網友。 除了向我問候新年快樂外,同時也報上他的大名,還順口問我記不記得。 唉,我一向很直,也老實回應說我真的完全沒有印象。

事實上,我的 Msn 名錄,好像超過 一、兩百個人了吧。 但經常聯絡的,也才十來個而已,而其他人則都是透過網路自動給我加進來的。

大部分人當然是來問我問題的。 而一般而言,很少很少,我並不會主動 Call 別人的。 只是,誰來 Call 我、問我問題,即使對方報了姓名,聊一聊回應問題之後,我真的就忘了對方的姓名(或別名)。

不過,那位網友就寫說,他曾經就 "利用 UML 表達自動化控制系統設計" 這篇碩士論文請教我。 哈,我馬上就記得一清二楚了!^^ 大概已經有 2 年了吧,當時該網友還特別傳檔整篇給我他寫的論文 (Word 格式)。 當下我看了約近 10 分鐘就看完,還著實批判了不少。 !^^

當時會很直率地批判的原因是,我一直以為碩士論文應該很強調個人對於其主題立論的想法(或依據論點)。 但是,我發現到,透過其 UML 設計圖,我完全感受不到著者本人的想法。

透過 UML 可以瞭解設計者在想甚麼? 是的,最起碼我倒是有這個能耐,而且還是八九不離十、很容易可以瞭解設計者背後的假設論點。 請注意!! UML 是表達軟件設計(語法本身完全不重要),透過其表達,就可以知道 Developer 的假設與想法

呵,只要一談及軟件相關設計議題,我的確很容易提起勁。一聊下去,我總是精神亢奮、一點都不會覺得沉悶與疲倦。

既然我連兩年前網路 Msn 討論的軟件議題都能記得如此一清二楚,所以記憶力應該不算差才對啊!! 嗯嗯,我突然領悟到,記不起別人長甚麼樣、穿甚麼衣服、哪時候一起吃甚麼飯 ‧‧‧等等的話,應該是不用心、而不是記憶力不好啦。 😉

Ringle@UML China 的網絡視頻講座(2009/10/28)

大陸最具知名度的 UML China 網站,日前邀請了 Ringle (賴信仁) 作網路視頻講座, 時間訂於明晚(2008/1028) 晚上 19:00~21:00。 講座主題: EA 和 UML 團隊開發技巧

有興趣的讀者們也可以線上報名,名額有限(限 100人)。 (據我截至現在看到對岸的報名人數已達 50餘人)

時間:北京時間2009年10月28日(週三)晚上19:00-21:00

地點:此次講座通過網絡遠程音頻進行。具體操作方法見報名後的具體通知。
人數:100人(人數超過以報名順序為準排列)。
費用:免費
演講人:
賴信仁。信仁軟體設計負責人。 精通物件導向觀念、UML、程式設計、系統設計實務及資料倉儲等。 擔任多家公司(台灣電通、中科院、農學社、台積電TSMC、統一企業)的軟體建置顧問。 參與多項系統開發專案(CMO eRMA、TSMC eMaterial、秀波電子ERP、台灣電通Workflow、台灣電通財務系統等)。 曾任系統分析師及專業講師;並於台積電及奇美電子擔任高級軟件設計師,負責軟體技術策略的擬定以及開發新軟件技術。 文化大學進修推廣部軟體設計與實務應用班-UML 2.0與Java J2EE講師。

幻燈下載:
稍後提供。

報名:
請發送郵件到seminar@umlchina.com預訂座位,務必填寫以下信息。每次講座的報名是獨立的。即使您在以前的講座報過名,還是需要再報名。

所在單位名稱:
姓名:
部門/職務:
郵編/通訊地址:
電話:
手機:
傳真:
E-mail:
MSN/QQ:
我可能問專家的問題:

軟體思維顧問

專職軟體輔導與教育訓練的獨立顧問。輔導企業資訊單位如何有效組織系統開發與維護;輔導開發人員達成有效的專業分工。傳授如何把軟體作軟 (Keeping Software Soft)的技能,得以提昇系統的彈性/延展,並進而創造系統的再利用價值。

Personal