聊一下「版本控管」與 「Issue Tracking 」的專案開發機制

我在輔導各單位不同性質的軟體開發團隊,對於專案開發的工具導入,只要求至少要能提供兩種機制給團隊成員們使用。一為版本控管(Version Control);另一為 Issue Tracking

各個單位可以自行選擇,無論是選擇 VSS(Visual Source Safe)/VSTS(Visual Studio Team System), CVS, Subversion, ClearCase 等版本控管工具,以及使用 TFS(Team Foundation Server), ClearQuest, 甚至是只用 Excel 當作 Issue Tracking 工具,這些我都沒有意見,團隊成員們覺得好用、還有,真的有實際在用即可。

不過,我是蠻堅持要至少導入這兩種機制,理由為何? 我覺得道理就是很簡單、很自然。 版本控管機制如同 10 餘年前 Novell FileServer 一樣,所有的文件、設計產出(artifacts)、程式碼都是集中放在一個儲存區 (repository)內,團隊成員就是去同一個地方把開發的文件取出來(check-out),改完後再放回去(check-in),而不同於 FileServer,版本控管就是多了因為共用的議題而衍生出衝突的情形發生時,所提供的解決方式與功能。所以,三年多前,我到某大學教授資訊系的講師與教授等,其中一位帶學生作專案開發的女老師就問道了,每個參與開發的同學都負責某一部份的文件與程式碼,並放置在他們各自的硬碟中,但是要整合時卻是問題多多,該如何解決這問題? 這個就是,不是問題的問題。很自然地,放起一起就對了,交給版本控管工具來協助管理即可,但是,另外一個問題是,女老師認為安裝與設計這些工具是難事,呵,這好像不是理由,往對的方向走後,再來思考 How-to 的解決議題就是了。 Issue Tracking 為何也要導入? 只要是超過兩人以上的開發,必然會有溝通(其實,一個人也會有溝通的問題,與內心自己的溝通),也必然會有問題的紀錄與回應。我最是鼓勵團隊成員第一是勇於問問題,是的,要能勇敢的問問題,這本身就不是一件容易的事。其次就是不要只把問題放在心中,要能 Write Down 下來! 對於某些問題的本身,就是一個可以讓成員之間討論溝通的主題,然後就是把這些溝通的經過給紀錄保存起來,這才是真正有效的知識分享(knowledge sharing)。

簡單的說,版本控管是設計產中的一種共享;Issue Tracking 則是大量溝通的機制。

哪個時候導入? 我是不會專案一開始就馬上導入的,當然,專案經理可以先準備好,我也沒意見。理論上,應該是專案啟動時就要馬上導入的,但是,團隊成員,在那個時間點其實要謀和太多的議題了,包括技能、技術、產出之間的橋接、默契 … 等太多的事情了。我是不主張一開始就是花時間在工具的學習使用,反而是,慢慢地,等到團隊成員們越來越有默契、越來越覺得好像少了什麼東西似的,那個時候,就是可以找工具來導入的好時機了,而且往往是水到渠成,使用這些工具,不會變成壓力,而真正是一種助力了。

用哪些工具,有沒有差別,是否最好是能有一套統籌的 “ALM, Application life-cycle management” 專案管理機制比較好? 我是不會想那麼多、那麼嚴肅的。工具好用順暢即可,還有,更更重要的是,真的有在用才行! 嘿,是真的有在用,而不是變為一種形式上的紀錄而已喔,實在是好多單位,還真的是淪落為形式而已,哪可不是更形增加軟體開發人員的負擔與反感嗎? 我可不知道這些專案管理層級的主管們是在想什麼。

我輔導過的單位,有使用過 Microsoft TFS, Rational ClearQuest 等比較重量型的 Issue Tracking 工具,當然也有是採用 OpenSource 的工具。有些公司的專案經理,就會請我協助選擇個比較不錯,便宜(最好是免費)的工具,這些我當然欣然接受,沒有問題的。

哪一個 Issue Tracking 的工具功能最佳呢? 就我輔導過許多單位的經驗來看,嗯, 就某大型零售業資訊單位所使用的 Excel 最棒! 因為,他們是我所看過最勇於發問問題,也勤加記錄問題的解決步驟與方案。我們在每一次的輔導,一開始一定是針對 Issue 來討論的,而且,他們也會對 Issue 作分類,還標上顏色識別種類與重要程度。

真的有寫上 Issue,真的有對 Issue 來討論,這才是根本。所以,何嘗 Notepad 不也是一種 Issue Tracking 的工具呢?

利用 IBM RSA 實現 CoR 的塑模與產出程式碼

使用環境

  • IBM RSA(Rational Software Architect 6.0) Trial UML 工具
  • JDK 1.5

新增 UML 空白專案

首先開啟 Rational Software Architect(使用版本為 6.0),並切換 workspaces 至 \workspaces\GoFPatterns。

新增名為 CoRProject 的 UML 專案:

  1. 在工作區中,選擇File > New > Project > Other
  2. 選擇 UML Project 並選擇 Next
  3. 輸入 CoRProject 作為專案名稱,並選擇 Next
  4. 選擇範本為 “空白模型(Blank Model)”,檔名輸入為 CoRModel,然後在預設選項中勾選 在新模型中建立預設圖形,預設圖形選擇 開放式圖形(Freeform Diagram),選擇 Finish 完成。
  5. 圖1、新增 UML 空白專案

    (點擊圖片鏈接看原圖)圖1、新增 UML 空白專案

  6. 在 “模型瀏覽器(Model Explorer)” 視圖中,可以看到一個新增的 UML 空白專案。
  7. 圖2、Model Explorer 所顯示的空白 UML 專案

    (點擊圖片鏈接看原圖)圖2、Model Explorer 所顯示的空白 UML 專案

型樣瀏覽器(Pattern Explorer)

  1. 在 Windows Menu 中,選擇 顯示視圖 > Pattern Explorer (若沒有出現,則從 Other… 中選取。
  2. 在 Pattern Explorer 視圖中,展開 Design Patterns > Behavioral。
  3. 選擇 Chain of Responsibility Pattern。
  4. 要瞭解 Design Pattern 的結構圖與說明,在 Pattern Explore 視圖底部的 總覽 與 簡要說明 選項之間切換瀏覽。
  5. 圖3、Pattern Explorer 中所顯示的 CoR Pattern

    (點擊圖片鏈接看原圖)圖3、Pattern Explorer 中所顯示的 CoR Pattern

    閱讀全文 »

利用 EA(Enterprise Architect) 實現 CoR Pattern 的塑模與產出程式碼

使用環境

  • EA ( Enterprise Architect 6.5) UML 工具
  • Eclipse 3.2
  • JDK 1.5

新增 UML 空白專案

新增 UML 空白專案
首先新增名為 CoRProject 的 UML 專案:

  1. 選擇File > NewProject 。
  2. 在 “Select model(s)” 對話框中,選擇 “simple” 並勾選 Logical View。
  3. 圖1、新增 UML 空白專案

    (點擊圖片鏈接看原圖)圖1、新增 UML 空白專案

  4. 在 “Project Browser” 中,點擊 “Logical View” 並按滑鼠右鍵選擇 Add>Add Diagram… ,在 “New Diagram” 對話框中,”Diagram Types” 選擇 “Class”,並輸入名稱為 CoR Class Diagram。
  5. 圖2、新增 Class Diagram

    (點擊圖片鏈接看原圖)圖2、新增 Class Diagram

使用 CoR 設計樣式

閱讀全文 »

UML 工具比較分析

前言

「工欲善其事,必先利其器」,學習UML沒有好的工具幫忙,往往會讓開發人員半途而廢,尤有甚者,開發人員有時會因為使用了不容易使用的開發工具而誤認為UML是一個非常困難學習的「技術」。殊不知UML只是一種「語言」,就和學習中文、美語一樣,學習UML根本不困難,只要瞭解UML的語法以及知道UML的適用時機,UML自然手到擒來。當然,如果有一套上手的UML開發工具,UML的困難度更是大幅降低,這也是本次專欄我們會討論UML工具評比的原因。

在這次專欄中,我們將評比三個不同的UML工具 – IBM公司的 Rational Software Architect(以下簡稱RSA)、Borland公司的 Together Architect(以下簡稱Together)以及Sparx Systems公司的 Enterprise Architect Corporation Edition(以下簡稱EA)。
評比的標準會從以下兩個面向來分別評估:

  1. 對UML 2.0的支持;
  2. 文件產生機制。

整篇文章中,我們會分成兩大部分,主要針對這三套軟體在上述的兩個面向中的操作進行說明,並且在每一個部分的最後一個小節,都會對三個軟件在該項目中做綜合評比。
不過在開始介紹之前,先就價錢做個評比說明,根據三家公司的產品標準售價,其價格的比較表如下表:

公司

產品

價格(美金)

IBM

Rational Software Architect

5500

Borland

Together for Eclipse Architect Edition

5000

Sparx Systems

Enterprise Architect Corporate Edition

239

表1:三套軟件的價格表

對!不要懷疑,這三個產品的價格的差距大約是20倍。先有這樣的一個印象後,我們將針對這三個產品的功能再詳細介紹。

對UML 2.0的支持分析

圖1 是OMG所定義的UML十三張圖的分類(參考自Unified Modeling Language: Superstructure, Version 2, p. 660)。

圖1、UML 2.0 規範的 Diagram 分類
圖1、UML 2.0 規範的 Diagram 分類

以下,我們將針對上述的三個軟件分別說明其對於UML 2.0規範的十三張圖的支援。

1、IBM RSA:

IBM的 RSA 與 Borland Together都是建構在 Eclipse 平台上,因此,你必須要先建立一個 UML 2.0 的專案,如此才可以繪製UML的圖形。下圖2就是 RSA 的 UML專案的操作畫面。

圖2、RSA 的 UML 2.0 專案操作畫面
圖2、RSA 的 UML 2.0 專案操作畫面

閱讀全文 »

【塑模工具】EA 6.1 + MDG link for VS.NET 2005 新功能摘要

我們公司(HSDc.)代理 Sparx System. 的 Enterprise Architect UML 工具,改版不可不謂之頻繁。約每 1~3 個月一小版,3~6 個月一大改版。目前 EA 正式推進至 6.1 版,其中最重大的功能在於其 MDG Link 已經與 Microsoft Visual Studio .NET 2005 完全密切地整合了。

摘錄 EA 6.1 版的新功能說明:

  • 可以利用內建的設計樣式(Patterns)或自行創建模型樣式(Model Patterns)的方式,來快速產出並正確性地完成你的 UML 軟體的模型。
  • 使用 EA 的 “智慧形快速連結器(Intelligent Qucik Linker)”,只要在短短的片段時間內,即可以新增與建構你的軟體模型。
  • 如同程式碼的 IDE 工具一般,EA 支援在塑模時,針對個別元素的命名,支援所謂的 “Context Sensitive” 的方式,而更容易建構正確、標準語法的軟體模型。
  • 更多樣、豐富的文件樣版(Rich Text Documents),來協助開發者產出可被維護與管理的文件。
  • 利用已更新的除錯機制,可以以視覺化的方式來檢視同時間所執行的多執行緒(Multi-Threaded)應用程式。
  • 新版支援除錯與視覺化的 .NET 2.0 規格應用執行程式。
  • 可以以視覺化的方式,來呈現可被管理擴充(Managed Extensions)的 C++ .NET 程式碼。
  • 可以在 EA 的除錯視窗中,在特定的任何 “中斷點(Breakpoint)” 新增 UML 循序圖(Sequence Diagram),瞭解 執行期間(Runtime) 時的物件合作狀態。
    (這是EA的特有功能,如此一來,可以讓設計人員透過此功能比對 Design Time 與 Runtime 的 循序圖,確實掌握程式的品質)
  • 使用 BPMN的標準規格,來塑模(Modeling)企業的流程(Business Process)。並且與 EA 的 “Quick Linker(快速連結器)” 及 “模型檢驗器(Model Validator)” 整合。

ˇ關於 BPMN for EA 6.1 的下載與說明,請參考:
http://www.sparxsystems.com.au/products/mdg_bpmn.html

ˇEA 6.1 試用版的下載與文件等相關說明,請參考:
http://www.sparxsystems.com.au/products/ea_downloads.html

關於 MDG Link for Visual Studio .NET 2005 官方釋出版本說明:

  • 整合 UML2.0 完整規格至 Visual Studio .NET 2005 的開發環境。
  • 可以直接在 VS.NET 2005 的 IDE 環境檢視、產出、瀏覽與設計 UML2.0 的軟體模型。
  • 更快速與立即性存取 UML2.0 的開發,包括 MDA 等。
  • 可以以視覺化來檢視與呈現你的程式碼。
  • 所有 UML 2.0 的設計產出(Artifacts),均可以在 VS.NET 2005 創建與編輯。
  • 更完整、更便利的方式,來整合 UML2.0 與 .NET 開發環境。


ˇ 請參考本公司推出的特惠活動:「買 UML/EA 教育訓練課程送 EA 企業完整版」。

買「UML 教育訓練課程」送 EA 企業完整版

請參考:
http://www.hsdc.com.tw/modules/tinycontent/index.php?id=7

鑑於許多客戶買了 EA 產品後,仍舊無法瞭解在軟體專案開發上的實際應用,甚至包括 UML 繪圖工具的使用操作等。

HSDc 推出「買教育送 EA」活動。只要企業單位購買 12 ~ 18 個小時的 UML 培訓教育課程,即送 EA 企業完整版乙套 (價值 $8,800)。

歡迎企業與 MIS 單位等來電或信件洽談。 (若單位已有 UML 工具,本訓練課程亦可以搭配其它如 Rational Rose, Together 等來實際操作、示範與演練說明。

ˇ聯絡電話:(02)2722-7179 ˇ聯絡信箱

UML/EA 培訓課程


單元一、 UML Tutorial (6 Hrs)

  • UML 2.0 綜觀介紹(Overview)。
  • UML 2.0 13 種圖簡介、分類與應用說明。
  • EA 6.0 塑模工具的介紹與操作示範。

單元二、 UML Advanced (6 Hrs)

  • 利用 EA 達成:
    • Team Working. (與 CVS 的整合及權限控管)
    • MDA (Model Driven Architecture) 的 PIM and PSM 模型建構。
    • 輔助管理專案文件,並利用文件產生器與範本產出各階段的有效文件。
  • 利用 EA 實現使用案例的實做:
    • 實做使用案例的步驟。
    • 從 Model 檔產生程式碼。
    • 從程式碼產生 Model 檔。
    • 搭配 Visual Studio.NET or Eclipse 等 IDE 工具的操作。
    • 利用 IDE 工具配合 EA 產出測試程式碼。

單元三、 EA Customization(客製化) and Case Study(實際案例演練) (6 Hrs)

  • 從需求分析、結構分析、設計至實做,利用 EA 完整演練與示範各階段的有效產出,包括物件模型與實做程式碼等。
  • How to customize your EA (利用程式撰寫 EA Plug-in, 讓 EA 更具彈性與順應各類開發工具的配合)。
軟體思維顧問

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

Personal