This page looks plain and unstyled because you're using a non-standard compliant browser. To see it in its best form, please visit upgrade to a browser that supports web standards. It's free and painless.

Kenming's 軟體設計思維 會員登入 會員註冊

我們 HSDc. Inc. 本年度完整的軟件設計培訓,預定於今年 5/01(星期六)舉辦。使用的開發環境為 C#.NET + UML 2.0。 (但 Java 族群組亦可參加,因下次課程即會輪流改為 Java,且可再次免費旁聽)

歡迎報名上課,價格超級便宜,且可充實軟體設計整體性的觀念與知識,又能與講師、同學們等相互討論交流,好處多多。

課程與報名資訊:
[軟 件培訓] 系統分析設計與實作—活用 UML 塑模 與 C#.NET (05/01, 54 Hrs)

 o 日期:2010/05/01 起,每週六白天。
每次上課為六個小時(AM 9:30~PM 4:30),共九個星期。
o 預定上課日期:05/01, 05/08, 05/15, 05/22, 05/29, 06/05, 06/12, 06/19, 06/26
o 地點:中國生產力中心,台北市承德路二段81號B1(首府經貿大樓)。
http://www.cpc.tw/Train/Place.aspx
o 特價優惠:NT$14,800, 含稅。舊生或三人同行再折扣為: NT$13,400。
(同等課程原價學費為 $30,000 以上)
o 附贈完整系統分析文件範本 (Word 格式)與可執行的 C# 程式原始碼。
o 贈送 UML 著書:UML 協同合作與管理(已有可抵優惠 NT$400)。
http://www.kenming.idv.tw/bk_uml-collaboration-process-and-management
o 免費送 Linux 軟體開發平台 DVD 光碟。(使用 Wine 安裝 .NET 開發平台)
http://www.kenming.idv.tw/signup-system-analysis-course-send-linux-development-dvd
o 同課程可保留再旁聽乙次的權利
(.NET/J2EE 系統分析課程均可。報名時註明舊生旁聽即可)。
o 下午均附有免費從外特別特購精緻的咖啡與點心。

HSDc. 於 2010 年度推出了完整的系統分析、設計至實作的課程,期能協助軟體開發人員在現實的工作中,能瞭解完整的開發流程與各個角色的工作執掌與產出。在基於以架構為中 心來建立團隊具共識的整體觀下,能聚焦在適切開發單位的功能點內,快速地從需求分析導出到實作,找出並克服開發過程中,包括溝通、技能與技術等風險因子。 而後基於這樣的框架目標內,得以對系統的結構作重整,卻又不至於影響已有的功能前提下,得以對程式碼施以重構的技巧,讓系統更有延展度與彈性。

傳統系統分析與設計的課程,經常是「昧於現實」,將需求分析/結構設計與程式碼實作拉得太遠,而造成軟體設計與實作的不一致。殊不知,所謂的軟體塑 模與程式碼的實作必然是軟體系統的一體兩面,在軟體開發過程中,必然是要保持一致性,所以設計是要作精,而不是籠統的文件報告。關於文件,只是利用工具的 文件產出功能,將平時已確實所作的設計,產出美輪美奐的文件報表而已。不要為文件而文件,還去加班熬夜,傷了身體,又浪費生命在不必要的地方,實在沒有意 義。

還有系統開發與實作也不是「妥於現實」,利用 IDE 工具從 Web/Windows Form 直接連接資料庫的這種開發方式,只是讓軟體人員變得更笨,只要需求變動就導致牽一髮而動全身,系統是不會有任何的延展與彈性的。最起碼的一點設計良心,又 能處在國內嚴苛的環境中,對於短線時程的專案,先將系統的命脈—企業邏輯的核心,全給統籌集中在中間層,也就是企業邏輯層—先求有! 再來才是求好!— 待系統能確實上線,能滿足使用者的需求後,再則老闆與客戶對開發團隊有了信心,肯給予更多的資源—包括人跟錢,團隊的技能也有了增長與更好的溝通默契。外 在與內涵的條件均俱足下,就可以專致於對系統結構的重整,並對程式碼施以重構的技巧,而又不會影響既有的功能前提下,讓系統更具可重用性與延展性,甚而轉 成產品以服務更多同類型性質的客戶,又能快速的客製化每一個單位的特殊化需求。

基於這樣的理念,我們主張系統分析與設計是要「務實」,不是「昧於現實」,也不是「妥於現實」,而是在現實與理想中找到那一個平衡點。所以課程規劃 是分為兩個階段。

第一個階段就是捕捉系統功能需求,快速設計,立即產出程式碼。重點就是要瞭解如何作好系統的需求分析與對應到程式碼的實作。本階段需要培訓的技能有 物件導向的基礎知識、從使用者角度看待系統時的外部功能分析,抓出適切的功能點開發單位、從畫面、中間層物件到連結資料庫的實作能力等。還有,一定要配套 的兩個設計措施,一為撰寫測試案例與功能測試程式碼,實現自動化的測試機制;另一為活用分析類別,先利用中間層的控制類別,集中與控管從畫面與資料庫而來 的企業邏輯。

第二個階段就是傳統系統分析所說的 SD(System Design), 傳統是以資料庫的 E-R(Entity-Relation) 分析,在物件導向則是稱為領域模型的建立—包括找出物件與適切的分派責任。這可不是一件容易的事,事實上應該說要具備的抽象能力要相當高,所以為何我們覺 得那種 SA->SD->PG 開發流程是不務實的,因為 SD 很難作得好,然後還要 PG 去等該階段的產出,又大部分是不正確,可以說是浪費開發資源與時間。程式碼可以直接反應功能的需求,但不一定要等結構分析,集中在控制控制類別的好處就 是,我們可以很容易地對結構作重整、對程式碼作重構,卻又不會影響既有上線的功能。本階段的重點當然就是對所謂結構的分析技能培養,我們會兩種方式,一為 從需求抓名詞的傳統方法、另一為揭露出以交易為核心的交易樣式,可以輕易地抓出一大串的企業元件。

總的來說:作好功能需求分析-> 影響系統能不能做出來 ;
作好結構分析-> 影響系統有沒有彈性

觀念的傳授、設計的圖形化塑模表達、程式碼的實作三層次,是我們對於系統分析設計與實作課程的基本原則與態度。修習本次系統分析的學員們,也可以拿 到完整的教材、完整案例的 Model 檔與實作程式碼的對應。程式碼是以 C#.NET 再搭配最夯的 LINQ Framework,當然,要直接對應 .NET 的實作程式碼,那也是相當直覺不是難事。我們期能讓學員們上完課後,能以我們所提供的案例,包括設計模型與程式碼,當成範本而可以應用於工作實務上,甚而 可以創造所屬自己的 "Pattern"。

HSDc. 軟體團隊,關心每一位軟體人員的持續成長...。

 

 (閱讀全文)

過年前,我們團隊 (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/

線上報名與詳細課程資訊請至:
http://www.hsdc.com.tw/course/unit-course_automation-test-by-csharp_1day_20100328

 o 日期:2010/03/28 (星期日) AM 9:30 ~ PM 17:00 (共 6.5 小時)
o 地點:中國生產力中心,台北市承德路二段81號B1(首府經貿大樓)。
http://www.cpc.tw/Train/Place.aspx
o 費用:NT$1,800, 含稅。舊生或三人同行: NT$1,500。
o 同課程可保留再旁聽乙次的權利 (報名時註明舊生旁聽即可)。
o 下午均附有免費從外特購精緻的咖啡與點心。

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

TDD (Test-Driven Development),測試先行的觀念已逐漸被軟體開發單位接受。但如何達成自動化的測試?要測試的是哪一類型程式?如何撰寫測試測試 ...等,可能一般 Developer 仍顯模糊。

HSDc. 團隊將多年來輔導諸多單位,並協助其撰寫測試程式的經驗,整理成範本。利用一天的時間,詳述說明從需求整理、測試案例,到整個測試程式的產出,每一個階段步驟除了有完整的圖文解說與程式碼以外,還設有階段完整的目標,以瞭解該階段實作的目的。

對於 Developer 而言,撰寫功能性物件的測試程式,如利用 NUnit or JUnit 等測試框架,是確保需求功能的正確性。

而對於 End User 而言,因直接面臨的是 GUI 畫面的操作,若有些高精確要求如政府標案等,往往連畫面的操作步驟都不得出錯,而導致開發團隊甚而還要撰寫畫面操作的詳述說明與撰寫數千條以上的圖型測試 案例報告,花了相當多的時間卻仍一再需要重複人工的操作,可說是浪費太多不必要的精力與人力了。

為了達成驗收交付的目的,圖形介面操作的自動化測試,在高度要求或大型的專案中仍是需要的。所以,在本次課程中,我們也會介紹如何利用 GUI 的測試框架,在 ASP.NET 的 Web 環境中,以達成自動操作圖形表單、自動輸入數據。

同時,我們也整合了從 GUI 的自動操作到按下按鍵、然後到後端的控制型功能物件 (Control Object),由 NUnit 測試框架自動驗證需求功能的正確性。一氣呵成,全部自動化,花一次工即可。

本次課程是利用 C#.NET,相關的測試框架 (Watin and NUnit)均支援 .NET Framework。但測試的觀念與作法其實都是一樣的,要移轉到 Java 的環境下,也是相當輕而易舉,自然,本課程也是適合 Java 的 Developer 等。

上課學員除了收到本顧問團隊所親自撰寫的教材外,還可以拿到一片自動安裝的光碟,內含了教材電子文檔(PDF)、測試環境建置所有需要的應用軟件(全為免費)、案例分析的原始程式碼與測試程式碼等。以及涵蓋了 HSDc. 歷屆研討會簡報資料。

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

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

 (閱讀全文)

報名與詳細研討資訊請至: http://www.hsdc.com.tw/course/reading_meeting_20100327

 o 報名費用; 自行於當場點餐、下午茶點或飲料即可。
o 日期:2010/03/27 (星期六) PM 13:00 ~ PM 17:00
o 地點:曼德主廚私房料理。 台北市通化街171巷30弄2號。02-2733-3855
http://tw.myblog.yahoo.com/mindercafe/article?mid=2&l=f&fid=5

§讀書會介紹 --------------------------------------------------------------------
HSDc. 預計每一季舉辦一次軟體相關讀書研討分享聚會 (若與會學員參與意願高且熱好研讀軟體設計各類書籍者眾,則可以每個月或每兩個月舉辦乙次)。

第一次的讀書會主題,先輕鬆一些,就以 Ringle 的著書-「UML團隊開發流程與管理」為本次讀書會的研討用書。(爾後的讀書會用書則可以因應與會人員們的要求來決定)

關於本書,請參考:
o http://www.books.com.tw/exep/prod/booksfile.php?item=0010438060
o http://www.kenming.idv.tw/ringle-new-book-uml-collaboration-development

我們希望與會學員們起碼約略有翻閱過該書,但不需要全部看完。只要針對書本內任一章節,可以作心得分享,甚或問題提問討論即可。

我們希望是以相當輕鬆的態度來參與讀書研討。重要的是分享,甚或是提出問題一同討論,這才會是舉辦讀書會的意義所在。

***
請注意,由於需要保留及計算報名學員們的座位,請確定會前來參加後才填寫報名單,若不克前來,也請於報名表單或來信取消報名。若報名人數尚未滿額,不及報名者,仍可以現場報名。

--------------------------------------------------------------------------------
§讀書會 (共 4Hrs):

 1. 主持人,(宋敏如, Cathy Sung)開場介紹與說明。
2. 心得分享,由 HSDc. Tech. Leader Arthur 開始心得分享與報告。
3. 座談與提問,由賴信仁先生 (Ringle Lai)負責解說。
4. Free Talking。 針對各類議題,包括職場生活等都可閒聊。
5. 決定下一次讀書會的參考用書與主題。

--------------------------------------------------------------------------------

§對象:對軟體設計相關議題有興趣者,包括在職軟體開發人員及相關資訊科系講師及學生等。
§主辦單位:HSDc 軟體設計顧問中心。
§備註:
o 本次讀書會預計開放 24 個名額。(額滿即停止報名)
--------------------------------------------------------------------------------

High-quality Software Design Consultant.
TEL: 02-27227179
Email: service@hsdc.com.tw
軟體設計論壇: http://www.hsdc.com.tw

在深圳軟件園第一天授完課、回到商務旅社時已是約 16:30 左右,我老婆的大哥已於前一晚電話給我並約好在那邊等我了。我那個老哥因為與朋友的合夥並委託於五、六年前至大陸開設韓國烤肉餐廳。當時他可是身無一文過 來的,如今已經在「東莞」開設了三家、在「上海」開了一家餐廳,並且也在大陸成家立業、生了兩個胖兒子,可謂是事業小有所成的典型台商。 :)

他人可是很熱心好客的,知道我要過來深圳教課後,就堅持一定要請我與所有的夥伴們到他的餐廳免費吃到飽。我們共有五個人,剛好我老哥開的是七人座休旅車,全坐進去都還很寬敞。深圳到東莞我看估計是台北到新竹的距離,因為我老哥一路從高速高路開下來也要花上四、五十分鐘。

到了東莞時,乖乖,沿路儘是餐廳啦,最多的就是日本料理與燒肉吃到飽的餐廳。我老哥帶我們到離他家最近(其實就在馬路對面而已啦,但是馬路實在有夠寬遠)的本店用餐。據他說,他另外一家新開的店面還比本店大上四倍,呼,真是有夠誇張。

韓國烤肉韓玠館@東莞

 (閱讀全文)

現代越形複雜資訊系統的開發,尤以要應付快速變動性的議題,幾乎所有的主流開發流程,包括 UP (Unified Process), XP (eXtreme Programming), Agile 等不論重、輕量型的流程方法論,均一致強調反覆 (Iteration)漸增 (Incremental) 開發的必要性。 關於反覆式與傳統瀑布式 (WaterFall) 開發的比較說明,請參考先前我寫過的一篇:「從軟體架構師(Architect)的觀點來看軟體開發流程」。

I&I (Iteration and Incremental) 的開發模式,已逐漸成為軟體開發的最佳實務 (Best Practice)。 但是, I&I 開發模式的實踐與否,只有在軟體開發團隊的內部才知道;對於客戶單位,他們是不知道,也不可能瞭解委外軟體廠商,內部是運用什麼樣的開發模式。

所以,外包的委外軟體開發專案,若是使用 Iteartion 的開發模式,該如何計價收費? 或者,某大型公司的 IT 單位,規範了外包軟體廠商,必然要遵循該公司所制定的開發流程綱要。 這兩個可以說都是相當奇怪、卻也常見的問題與現象。

我先說明第二個那個怪現象‧‧‧

IT 單位規範外包廠商的開發模式,一點意義都沒有。 因為,客戶根本看不到委外廠商內部是如何開發的。 即使你強調希望委外單位能走 I&I 的模式,但是,他要掛羊頭賣狗肉,你也沒轍,因為,從最終產出 (Artifacts)來說,你根本無法知道委外單位是採取何種開發模式來完成的。 客戶單位只能要求說,委外單位要能在毎一個議定的階段時間,要能達成分次交付的產出甚或可以早些釋出 (release)、可以完整被執行的功能案例。

客戶單位所制定每一個該付交產出的階段時間,這個應該是稱之為 "Milestone (里程碑)",完成每一個階段的交付,也可以及早瞭解委外單位的釋出品質,或作為下一次交付的回饋 (Feedback):而若是要求儘早能看到可被執行的部分功能案例(或模組),這稱之為 "及早釋出(Early Release)"。

再回來討論第一個問題,採用 "Iteration" 開發模式該如何計價?

 (閱讀全文)

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

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

各位好:

線上報名與詳細課程資訊請至:
http://www.hsdc.com.tw/course/unit_course_20100130_31

o 日期:2010/01/30,31 (星期六,日) AM 9:10 ~ PM 17:00 (共 13 小時)
o 地點:中國生產力中心,台北市承德路二段81號B1(首府經貿大樓)。
  http://www.cpc.tw/Train/Place.aspx
o 費用:NT$4,200, 含稅。舊生或三人同行: NT$3,800。
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 檔。
--------------------------------------------------------------------------------

**【研討會 01/23】2010 軟體設計鮮思維—程式碼與循序圖的關係與產品開發介紹
http://www.javaworld.com.tw/jute/post/view?bid=14&id=271642&sty=1&tpg=1&age=0

High-quality Software Design Consultant.
TEL: 02-27227179
Email: service@hsdc.com.tw
軟體設計論壇: http://www.hsdc.com.tw

先祝各位讀者們 2010 年新年快樂!!

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

各位好:

報名與詳細講座資訊請至:
http://www.hsdc.com.tw/course/seminar_20100123

o 報名費用 NT$300。 (擔負場地費用以及每位參與學員一份 85。C 咖啡飲料與蛋糕)
o 日期:2010/01/23 (星期六) PM13:10 ~ PM 17:00
o 地點:中國生產力中心,台北市承德路二段81號B1(首府經貿大樓)。
http://www.cpc.tw/Train/Place.aspx

§研討會介紹 --------------------------------------------------------------------

2009 年對 HSDc. 團隊是相當忙碌的一年。 幾乎大半年的期間,都長期專注在新竹「工研院」資訊中心的專案輔導與開發、同時又仍需要忙碌著固定幾家企業資訊單位的長期性顧問輔導,使得團隊主要成員們 不容易抽出時間在教育訓練與研討會的研究發表上。這是對許多支持 HSDc. 的學員們的一種抱歉。

無論如何,我們沒有任何藉口。 同時經過團隊內部的溝通討論,我們決定自 2010 年這嶄新的一年,至少每 1~2 個月舉辦 研討會/讀書會/單元課程/完整系統分析課程 等其中之一的活動。 分享、引導與傳授發表我們在軟體設計各類議題上的研究與心得(及實務經驗),在軟體設計教育訓練這個領域上,一直是我們重視的焦點所在。

即使百忙之餘,在去年中,HSDc. 團隊已進行了「Sequence Generator」產品研發。 可以將程式碼的某一個功能展延出物件合作的 UML 循序圖;反之亦可以從循序圖轉出到程式碼 (當然,要先規範好類別圖)。 對從事 Coding Developer 可說是一個相當便捷的工具,彷彿就是幫程式碼照 X 光,可以輕易看出程式碼動態呼叫期間的物件關係。

請參考: http://www.kenming.idv.tw/hsdc-product-sequence-generato

經過與澳洲 Sparx System (EA 的開發原廠商)的遠距會議,展示我們的開發理念與深具彈性的結構設計,相當獲得對方的好評。 並決定於 2010 年初在澳洲原廠網頁上提供 Beta 版本的下載試用。 (以 Plug-in 的方式整合在 EA 工具上)

2010 年的第一場研討會,我們就是以 "Sequence Generator" 這個產品開發為主題,來分享說明我們是如何設計這套產品。 同時,我們也預先提供這個產品算是 pre-beta(或者該稱為 alpha 版?) 版本給前來參與研討會的學員們試用並請提供寶貴的意見。

當然,我們必然會附贈研討會光碟。光碟內容包括歷屆研討會簡報內容、UML 教學/操作錄影檔、EA 等試用版、UML OCUP 模擬試題... 等,相當物超所值。

***
請注意,由於需要保留及計算報名學員們的座位,請確定會前來參加後才填寫報名單,若不克前來,也請於報名表單或來信取消報名。若報名人數尚未滿額(每場人數以 60 人為限),不及報名者,若尚有名額,仍可以現場報名。

--------------------------------------------------------------------------------
§講座主題:

1. 「程式碼與 UML 循序/類別圖 的關係探討」-- Kenming Wang
o 基礎觀念導引 - 何謂靜態與動態?
o 程式碼與類別圖的靜態結構關係。
o 程式碼與循序圖的動態關聯關係。
o 簡單範例展示。

2. 「如何利用 UML 工具設計 Sequence Diagram Plug-in」-- Ringle Lai
o 為何需要從程式碼產生Sequence Diagram
i. Sequence Diagram的基本假設
ii. 預想的產品架構
o Sequence Diagram Plug-in應有的功能
o Sequence Diagram Plug-in 的結構(Class 圖)設計
i. 基本架構
ii. 元件設計
iii. 類別設計
o 實機展示 - 使用 EA (Enterprise Architect) UML 工具。
--------------------------------------------------------------------------------

§對象:對軟體設計相關議題有興趣者,包括在職軟體開發人員及相關資訊科系講師及學生等。
§主辦單位:HSDc 軟體設計顧問中心。
§講師:賴信仁(Ringle Lai)、王克明(Kenming Wang)。
o報名經確認後,本站即會寄送確認通知信給報名學員。
§備註:
o 本次講座預計開放 60 個名額。(額滿即停止報名)
o 因上課人數眾多,恕不直接提供列印教材,本次講座會直接附送「講座教材及示範操作光碟」等。教材內容並於講座前兩日公佈於 HSDc. 網站,學員可自行列印講座教材。
--------------------------------------------------------------------------------

High-quality Software Design Consultant.
TEL: 02-27227179
Email: service@hsdc.com.tw
軟體設計論壇: http://www.hsdc.com.tw

這個月初,突然接到來自大陸廣州某家企管顧問公司的來信,希望能邀請 HSDc. 團隊至深圳教授 EA (Enterprise Architect) UML 工具操作使用。 怎麼會知道 HSDc. 團隊? 原來是 Ringle 的那本著作:「UML 與團隊協同合作」有大陸那邊亦有耳聞,且最近即將出版簡體版本。 因為結合了基礎觀念與實務操作,所以算是還頗為實用的工具用書。 而且對方一定指名要有 Ringle 親自來任教,其他講師,包括我與 Cathy (這次共安排了三位講師),都只算是助教性質。 ;)

對大陸事務的協調與聯絡,當然是由 Cathy 負責處理了。 她的執行能力與行動力是我所看過諸多人當中最積極的。 月初聯絡與討論,然後規劃了三天共 18 個小時的課程,安排了日程、交通與食宿等,這個星期,20號(星期日) 晚上就搭機成行了。

老實說,我還真頗不想去。 主要的原因是,我還沒有搭過飛機出國過。 :(

但可不是搭飛機害怕喔,而是我實在想把我第一次的「處女航」獻給家人、一同出國旅遊啦。 這類洽公性的事務,實在有些些的不甘心。 不過,基於現實的因素,對方相當有誠意,講師鐘點費用與在台灣我們的報價是一樣的,而關於搭機與食宿等,都由對方買單;再則,我還真想瞧瞧大陸在最南邊這 一端的軟件發展情形。 喔,對啦,順便也去探望一下我老婆她哥哥,聽說他在「東莞」開了三家的韓國烤肉餐廳。 一年多不見,而且他聽說我要過來深圳這邊,就很積極的說要帶我去他的餐廳吃大餐。 :)

我們是搭 20號晚上 7:20 「國泰航空」飛往香港的飛機 (當日沒有直接飛往深圳,所以只好到香港再入境)。 我是開車,再去接 Ringle 一同到桃園機場。 因為是在「第一航廈」出(入)境,而那邊的停車場過夜每天只收 NT$100,當然划算多了。

因為啦,是第一次的出國,當然一切都算是透露著新鮮好奇,所以總是隨手拿著我老婆的 Sony T10 DC,看到就拍照,留著紀念。

一到出境大廳,然後拿著電子機票 Check-in 登記飛機座位後,就到了樓上一整排的商店區。 尤其是看到了 StartBucks,開心~ 離登機還有一個半小時,當然就是在這裡喝個咖啡休息囉。

桃園國際機場一景

 (閱讀全文)

深圳真是個美麗乾淨的城市!

道路非常的寬敞,到處都是豪華式的大廈林立。 若與台灣這邊的都市比起來,高雄市是比較接近的,但是卻仍沒有像深圳這般如此大又寬的馬路。 空氣也比台北清新太多了,主要的原因就是,這邊是禁止吃汽油的摩托車、而只能騎乘吃電的輕型機踏車。 喔,還有個有趣的現象,這裡並沒有專用的自行車道,所以騎踏車的民眾,竟然是騎在內側的快速道路上,而且還是逆向行駛,好像這也不算是違法,真是奇特的一 景呢。

隔天早上我們與對方企管顧問公司派來接洽的兩位女孩子在旅社見面 (其實她們前一晚就從廣州前來並住宿在同一旅社),用完餐後然後由她們帶我們搭地鐵前去教課的地點。

這邊的環境對我來說一切都透著新鮮。 沒想到,早上約 8:00 時分,來來往往的群眾根本就是與台北一樣,儘是趕著上班、臉上總是冷漠、匆匆忙忙的上班族。 而這邊的地鐵也與台北的捷運一樣,但是又乾淨上太多了,而且趕著上班的人潮,大約只有台北的 1/10 左右吧,每一般列車都還能有空位乘坐。
深圳地鐵

我們教課的地點就是所謂的「深圳軟件園」,應該就是等同於台北「南港軟體園區」,但是卻又是大上太多太多了。
深圳軟件園

 (閱讀全文)

使用 Windows 7 64-bits 作業系統,比較擔心的是老舊的應用程式,只能執行於 Windows XP-32bit 的環境下。 為了能在 64-bit 的環境下,能 100% 執行 32-bit、XP 系統下的應用程式,MS 是透過執行 "Virtual PC" 的虛擬機器方式,只要是包括 Ultimate, Professional, Enterprise 等版本,均可以免費下載並安裝這個稱之為 "XP-Mode" 的虛擬 Windows XP 系統 (會自動授與一個授權的 OEM 帳號)。

*** 關於 XP-Mode 的下載與安裝,請參考:Windows Virtual PC ***

這個 "XP-Mode" 的優點是 MS 已將之最佳化,把不必要的系統服務給移除掉,所以佔用資源極小,開機後記憶體才佔用約 120MB 左右,所以跑 512MB 的環境也挺順暢。 再加上預設關閉並非是關機 (Shutdown),而是給 "休眠 (Hibernate)" 儲存至 HDD,所以爾後重新啟動的速度也是相當快。

Windows 7 x64_XP-Mode_task_manager

這個 XP-Mode VM (Virtual Machine),相當適合用來執行看盤交易程式,因為這些盤商提供的看盤交易系統,目前還沒有保證可以確實在 64-bit 的環境下正常執行。 請參考我另一篇: 在 Windows 7 64bit 下跑 AmiBroker 的方法

另外,有時候為了開發一些 Win-32 的程式,例如 DDE,所以會需要安裝如 VB6 的開發環境 (Visual Basic 6)。 為了不希望在原來 Windows 7 64-bit 安裝有的沒的,且使用次數其實不多,所以也會想安裝在 "XP-Mode" 內:但是又不希望與實際執行交易的作業環境下放在一起,所以希望能 "複製 (Clone)" 另一個 "XP-Mode" VM,並在其內安裝 Win32 的程式開發環境。

但是,"XP-Mode" 可不像 Vmware 這般,直接複製即可。 在 Virtual PC 的管理介面,你根本看不到可以複製 "XP-Mode" 的指令。 而如果你直接用檔案複製 (Copy) 的方式,則是無法執行新複製的那個 VM。

到底可不可以在 Windows 7 x64 的環境下同時執行多個 "XP-Mode" VM 呢? 答案是 Yes!

但是需要經過一些步驟,參考這一篇: How to Copy a Virtual XP Machine in Windows 7 。 這裡我就簡單的列出設定方法,如下:

  1. 為了能看到隱藏的檔案 (hidden files),所以需要至 [檔案總管] → [組合管理] → [資料夾和搜尋選項] → [檢視] → [進階設定] 選項中,將 "隱藏檔案和資料夾" 設定為顯示;"隱藏已知檔案的副檔名" 的預設勾選移除掉,使之可以顯示副檔名。
  2. 已確實安裝了 "XP-Mode" VM (安裝完畢後,強烈建議先至 Windows Update 作必要的更新),並確實有關閉 "XP-Mode" 系統(不是休眠)。 執行關機的動作是需在其選單中,點選 "Ctrl+Alt+Del",再選擇關機。
  3. 至儲存 "XP-Mode" 實體檔案所在的資料夾位置。 預設是位於 "C:\使用者\{你的使用者名稱}\AppData\Local\Microsoft\Windows Virtual PC\虛擬機器"。 (其實在安裝 "XP-Mode" 時,可以自己指定 VM 儲存的磁碟路徑。)
  4. 將 "Windows XP Mode.vhd" 與 "Windows XP Mode.vmc" 兩個檔案複製,並更名 (Rename)為如 "Windows XP Mode_TradingSys.vhd" 與 "Windows XP Mode_TradingSys.vmc"。
  5. 利用文字編輯器,如 Notepad,打開 "Windows XP Mode_TradingSys.vmc" (其實這只是個 XML 設定檔) 這個檔案。
  6. 搜尋 "<drive_type type="integer">1</drive_type>" 字串,在其下的 <pathname> tag 內,將預設的 VM檔名更改為所複製更改的名稱:
    	<absolute type="string">D:\My VMs\Virtual PC\Windows XP Mode_TradingSys.vhd</absolute>
    	<relative type="string">.\Windows XP Mode_TradingSys.vhd</relative>
    	
  7. 搜尋 "<virtual_network>" 字串,在其內的 "<id type="bytes">" Tag,更改 MAC Address 數值 (只要把最後一位數 1 改為 0 即可)。 目的是當執行多個 VMs 時,實體網路位址不能是同樣的編號。
  8. 儲存並關閉上述已更改的檔案內容。
  9. 至 "C:\使用者\{你的使用者名稱}\虛擬機器" 目錄,複製 "Windows XP Mode.vmcx",並將複製的檔名更改為 "Windows XP Mode_TradingSys.vmcx"。
  10. 開啟並編輯 "Windows XP Mode_TradingSys.vmcx",在 <primary_disk1 type="string"> 與 <vmc_path type="string"> 兩個 Tag 內的檔名字串,改為 ""Windows XP Mode_TradingSys.vmcx"。

完成! 從 Virtual PC 的管理介面中,就可以看到有兩個 "XP-Mode" 的 VM,並且可以個別且同時開啟,如下圖。 不過,同時執行多個 "XP-Mode" 技術上是可行,但是前提是你要有足夠的 Windows XP Licenses。 否則建議還是一次只執行一個 "XP-Mode" VM,以避免違背授權的規範。

windows7_x64_run_multiple_xp-mode

大陸最具知名度的 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:
我可能問專家的問題:

『 UML 團隊開發流程與管理 (08/16,30Hrs)』 已確定於本星期日(08/16)在「文化大學教育推廣部 402 教室」開課。目前尚有名額,歡迎學員們踴躍報名。

本課程即完全以這本書作為授課的教材。 在 30 個小時的課程時數,把整本書內容教完。也由於是作者親自授課,對於書中不明瞭的地方,當然可以就近請教作者。如此不僅是看完一本書,還能吸收書中作者的論 點與精髓,並能真正應用在工作場合。 吸收理論並得以具體實現,這才是務實!

同時我們也準備了完整的 Linux 開發 DVD 光碟。 我們已經在系統內建置了 Subversion 版本 Server、Trac Issue Tracking 系統、MySQL 資料庫作為 EA Model 檔的 Repository、Apache 作為 Portal 與驗證平台 ....,當然也安裝了 EA 的開發環境等。不僅在上課中可以實做練習,也方便學員帶回家,甚至可直接佈署至工作的開發環境上。

§課程名稱: UML 團隊開發流程與管理 (08/16,30Hrs)─$8800/$7900 (含稅)

** 本課程含贈「UML 團隊開發流程與管理」作者親筆簽名書。
悅知文化出版: http://www.delightpress.com.tw/book.aspx?book_id=SKNP00012
博客來訂購: http://www.books.com.tw/exep/prod/booksfile.php?item=0010438060
天瓏書局:http://tlsj.tenlong.com.tw/WebModule/BookSearch/bookSearchViewAction.do?isbn=9789866761904&sid=51158

【台北場】2009/08/16 (星期日)起,,每次上課為六個小時(AM 9:30~PM 4:30),共五個星期。
o 預定上課日期:08/16(星期日), 08/23(星期日), 08/30(星期日), 09/05(星期六), 009/12(星期六)。

§課程諮詢(HSDc. 軟體設計專業顧問團隊)
o 諮詢專線:TEL: 02-27227179
o 服務信箱:service.hsdc@gmail.com
o http://www.hsdc.com.tw
** 歡迎聯繫企業包班事宜 **

--------------------------------------------------------------------------------------------------------------
o 由於本站線上報名系統仍有問題,煩請報名學員填寫下列資料報名 (下列欄位前為 * 者請務必填寫),
並以 Email 寄至: service.hsdc@gmail.com
-------------------------------------------------------------------------------------
* 姓名:
* 電子郵件:
* 聯絡電話:
任職公司與職位:
備註(請填上如 ATM 轉帳帳號(後五碼即可)、開立發票資訊、以及新生或舊生等資訊):
-------------------------------------------------------------------------------------

§課程費用與報名:

o $8800 (含稅)。 (爸爸節超特惠價;同時數其它單位課程學費為 $20000 以上)
o 報名經確認後,本站即會寄送確認通知信給報名學員。
o 曾經上課過本公司的「單元系列課程」學員,優惠 $7900(含稅)。 (請記得註明為舊生,本公司查詢確認即以優惠算)
o 三人同行,或同時報名另一單元課程,亦比照舊生的優惠折扣,每位只需 $7900(含稅)。
o 大學/研究所 資訊相關科系講師、助教或教授,出示相關證明,我們會以建教合作方式計費。(請另以電話聯絡)
o 清貧或由家扶中心推薦,能出示相關證明,所有費用 免費!!
o 授課地點:文化大學教育推廣部 402 教室,地址:台北市延平南路127號。
o 參考交通與地圖。 http://future.sce.pccu.edu.tw/service/service01_05.asp

o 報名系統分析與實作班學員,請先以 ATM 轉帳預約費用($ 1000),並請於報名表備註欄位內,註明您的轉帳帳號末 5 碼與轉帳金額。
o ATM 轉帳帳號: 新光銀行 (103) 帳號: 0772-50-100979-9

----------------------------------------------------------------------------------------
【課程大綱】

 (閱讀全文)

上星期參觀「東和鋼鐵」的煉鋼生產過程,收穫頗多。 除了感受到現場工作人員需要忍受酷熱危險的工作環境,而仍是那麼地辛勤工作,不禁敬佩與慚愧,應要能更珍惜自身的工作;另外一個收穫就是,總算看到了我們對「東鋼」設計企業物件類別圖時,一些概念術語中,關於到 "物 (Item)" 的實體呈現。

像在現場上我們就看到以 "捆 (Boundle)" 為單位的鋼材。 可能像長條形的凹型鋼是以三根為一捆,在入庫/出庫(出貨) 時就是以一捆一捆為單位來管理。 在庫存管理時,每一捆都會給一個序號 (serial number),但一根一根的鋼材並不需要為其作追蹤管理,所以並不需要給予編號;若某一捆的某一根鋼材有瑕疵,就是換掉再綁入該捆即可;每一捆的鋼材規 格可能會不一樣,可能有 "凹型鋼"、"馬蹄鋼"、"T型鋼" (想像的規格) 等。

所以當時看到已綁成捆的鋼材,我問 Ringle 說 "捆 (Boundle)" 應該是屬於 "特定項目 (Specific Item)" 吧? Ringle 說沒錯,而且在類別設計時,並不需設計一個 "鋼材" 的 特定項目 類別。 所以有趣的一個問題是,當看到一捆有三根鋼材,若共有三捆時要入庫,在庫存管理系統內,會有幾個物件? 答案可不是 3x3=9 個 instances (個體),而是只有三個 instances,而所屬類別就是 "Boundle"。

"Boundle" 的規格 (Specification)資訊紀錄在哪裡呢? 此時自然會有一種 "產品 (Product)" 類型的類別被挖掘出來。 在庫存系統中,會有個 "成品" 的類別被設計出來,並紀錄著各種鋼材等項目的規格資訊。

每一次的出庫、入庫都需要記錄相關的資訊,所以會設計 "入庫"、"出庫" 兩種類別。 而這類型的物件就是所謂以交易為核心 "Transcation Pattern (交易樣式)" 中的交易物件。

再來,若要查詢現在庫存的數量,該找誰問呢? 此時就會有個 "庫存 (Inventory)" 的類別來擔負 "查詢庫存數量" 的責任。 有意思的是,"庫存" 類別在古早以人工來紀錄的時代以來,就是等同於 "帳冊" 的角色,而這在我的認知算是在電腦系統內 "Log" 類型 這樣的一種角色。 不過 Ringle 倒是很肯定的告訴我,是 "Log" 沒錯,而在 "Transaction Pattern" 中,這仍是屬於 "Specific Item" 的類型。

基本上,一個以鋼材物料的庫存系統主要組成結構元素的輪廓就慢慢浮現出來了,先略過 "人 (Role)", "地 (Place)" 的類別設計,一個基本的 UML 概念類別圖 (Conceptual Class Diagram)如下圖:

庫存系統的概念類別圖
圖、庫存系統的概念類別圖


 (閱讀全文)

如果我是某大軟體公司的主管,要應徵軟體結構性的設計人員 (偏對技術性,而非需求分析),一般的職稱是稱之為 系統設計師 (SD, System Designer),或者號稱為架構師 (Architect)、資深技術人員等。 若他們在履歷表上寫著擅長或懂 "O-O (Object Oriented)" 或 "UML"、結構設計 等,那麼,我不會考他們什麼 UML 語法還是 設計樣式 (Design Pattern) 等等。 那只是 "背書" 而已,一點意義都沒有。 要背書的話,不如直接給個電腦上網,然後要應徵人員展現如何透過 Google 查詢找到如何實做設計樣式的方法還比較實在。

我會提供的考題,必然是針對應徵人員 "自我思考推理" 的能力驗證,答案的正確性完全不重要,重要的是你為什麼是這樣表達設計的,能否自圓其說。 具有獨立思考能力的設計師,這才是人才!

所以,我會提供一個如這樣的考題:

Google 書籤 (bookmark)是利用 標籤 (Tag)來作分類的。 一個書籤可以被 "標記" 為一到多個標籤,相對來說,一個標籤可以有一到多個書籤。 另外,標籤是不會含有子標籤 (Sub-Tag) 的。

如果我要改良 Google 書籤的設計,希望能再加上 "資料夾 (folder)" 的管理觀念,也就是說書籤必然會 "放" 在某一個資料夾目錄內 (也只能是唯一),而某一個資料夾可以擁有一到多個書籤,同時資料夾也能再包含子資料夾 (Sub-folder)。

同樣類似的應用,可以延伸至部落格 (Blog)的本文 (Content)與標籤、目錄 (category)的結構設計。

請你利用 UML 類別圖,來表達出關於 書籤、標籤與資料夾的結構關係,並簡單說明你的設計想法。

上述的考題是一個 "需求陳述",應該算是蠻普遍的一般應用常識了。 不過若還是不懂上述的敘述,那麼也可以再佐以範例,來解釋什麼是 書籤、標籤與資料夾的概念。

老實說,我是以為,這類的結構設計應該算是很基礎的了,事實上,答案也比想像得意外簡單。 但是,我也問過好幾個號稱對所謂 設計樣式 很熟悉的資深技術人員,最直接給我的答案就是說: 這不就是 "複合結構 (composite structure)" 樣式的應用嗎? 不管你說什麼,反正先把設計圖畫出來再說吧。 結果呢,也真的如我所料,表達不出所以然,真的就只是在背書而已。 最大的盲點,就是把 標籤 (Tag) 與 資料夾 (folder) 給關聯在一起,而其實這兩個是一點關係都沒有的;甚至有些還執著在因為 標籤與書籤 的多對多關係,所以又拉出了一個所謂的 "關聯類別 (Association Class)",卻又說不所以然,越弄越複雜。 因為既然是表達想法,所以類別圖自然是表達 概念 (concept)與概念之間 的關係,而至於那個多對多的關聯類別,是在更細節性的規格設計實做階段再來討論即可,太早論及,反而模糊了要突顯的概念。

表達這類結構性的設計圖,要先找出核心的類別是什麼。 在本例中, "書籤 (bookmark)" 即為本文主體,是最根本的核心類別。 再來當能分別出 標籤 與 資料夾 並沒有關連,而是各自與 書籤 建立關係,那麼,這個設計的表達就可以說對了一大半以上了。 參考的 UML 類別設計如下圖:

圖 . Google 書籤的類別設計圖
(點擊圖片鏈接看原圖)圖 . Google 書籤的類別設計圖

這張設計圖該如何解讀呢?

 (閱讀全文)
1 2 3 4 5 6 7 8 9 10 11  下一篇»