加入RUN!PC粉絲團
最近新增的精選文章
 
最多人點閱的精選文章
 
 
精選文章 - 開發技術
分享到Plurk
分享到FaceBook
 
Visual Studio 2010 ─ 技術核心(5)
軟體生命週期的版本與流程控管
文/崔啟文

軟體生命週期管理一直是軟體開發上一門很大的學問,怎麼做?如何做?導入一個好的開發流程,可以避免很多專案上遇到的問題,例如,一直在往返無法通過使用者測試的程式、重覆的管理、團隊效能一直低落而成本卻一直降不下來等,而Microsoft Team Foundation Server 2010即可在整個軟體生命週期中,提供必要的協助。

微軟提出Microsoft Solution Framework(MSF),並且在Team Foundation Server上利用這個軟體框架設計出兩種不同的開發流程,分別是「MSF for CMMI Process Improvement」及「MSF for Agile Software Development」,甚至你也可以外掛或客製化其它不同的開發流程。
Team Foundation Server 2010技術架構
為什麼要使用Team Foundation Server 呢?前面提到專案使用一個完整的開發流程進行開發是非常重要的,而開發流程會在專案裏定義出不同的角色,每個角色有各自被賦予的責任以及需要執行的功能及系統,例如:原始檔控制、Bug Tracing、Task Assignment、Build…等,如圖1所示。

圖1 開發流程定義出不同的角色。


而你可以把Team Foundation Server當成是一個中央存儲庫,並且整合軟體開發生命週期中各種角色會應用到的系統,讓專案中所有成員及角色可以透過一個預設,或是統一的工作流來建製軟體,如圖2所示。

圖2 Team Foundation Server為一個中央存儲庫。


有很多方法可以使用Team Foundation Server 2010。若你是一個軟體開發人員,最簡單的方法就是用Visual Studio 2010任一版本;若你是測試人員,你也可以安裝另一套新產品:Test Manager 2010,不需要安裝Visual Studio 2010開發工具,包括在Visual Studio 2010 Ultimate企業旗艦版及Visual Studio Test Professional 2010品管人員版之中;若你是一個專案經理,你還可以使用Microsoft Project、Microsoft Excel、Web Access,或是MOSS上的數位儀表版。

若你的專案是使用其它的開發工具或技術,例如使用Eclipse 開發Java或Delphi開發,甚至是在異質平台上開發,例如Unix/Linux/Mac上,在Visual Studio 2010 Ultimate企業旗艦版亦提供了新工具 – Visual Studio Team Explorer Everywhere 2010,此工具為微軟於2009年11月時併購了Teamprise公司的產品線,可供異質平台的開發人員存取Team Foundation Server,讓企業可集中管理各平台上的開發。

大致而言,Team Foundation Server 2010分成三大主題進行改善及加強:
●在系統管理方面,Team Foundation Server簡化了安裝步驟,除了提供精靈簡化安裝步驟、自動檢查並安裝相關的必要元件之外,同時你也可以在安裝過程中決定是否要安裝Reporting Service及Sharepoint,在某些狀況下甚至你可以將Team Foundation Server安裝在Vista及Windows 7。另外,也改善了Team Foundation Server的擴充性,並提供Team Project資料的移動、還原等功能。
●在測試方面,則提供開發及測試之間更好的協合工作平台及持續性品質驗證功能。例如:測試個案的管理、需求追蹤、更精細的品質控管報表、Manual test runner、Record & playback、自動化UI測試、IntelliTrace及加強版的簽入機制。
●在專案管理方面,Team Foundation Server提供一個呈現豐富專案資訊的數位儀表版,讓專案管理人員或是高階主管以更快速、更直覺的方式了解整個專案的所有狀況。另外,也提供更方便的追蹤工具及報表,讓管理人員輕易的掌握整個專案狀況。


連接Team Foundation Server 2010
稍微了解Team Foundation Server的設計概念及Team Foundation Server 2010的改善及加強的部份後,我們直接看一下操作及實例,可以讓大家更加了解如何應用Visual Studio 2010搭配Team Foundation Server 2010實作一個設計好的開發流程。

點選小組→連接到Team Foundation Server,出現「連接到Team專案」的對話視窗。點選「伺服器」按鈕後,在「新增/移除Team Foundation Server」視窗中,按下「加入」按鈕,出現「加入Team Foundation Server」視窗,在「Team Foundation Server的名稱或URL」欄位中輸入Team Foundation Server名稱,按下OK鈕。(圖3)

圖3 Team Foundation Server設定。


你會發現「連接到Team Foundation Server」視窗會出現Team專案,與前兩版的Team Foundation Server不同的是,Team Foundation Server 2010多了Team專案集合,如圖4。專案集合除了可以設定權限外,另外一個用途是可以將Team專案進行分類的動作。一般而言,會依專案性質或專案所屬部門進行分割,如此一來,除了可以減少管理上的負擔之外,也可以增加伺服器效能。(因為每一個專案集合都有一個專屬的資料庫)

圖4 Team專案集合。



建立一個Team專案
連接Team Foundation Server 2010之後,你可以在Team總管的專案集合上按右鍵,點選新增(圖5)。基本上新增Team專案與之前的版本沒有太大的差異,只有一個地方需注意:那就是在選取流程範本時範本做了些更新,如圖6所示,你可以發現「選取流程範本」中預設的範本,已經由MSF 4.0 / 4.1,昇級至MSF 5.0。

圖5 建立專案。



圖6 更新選取流程範本。



程式碼管理 – 版本管理
要將程式碼放入Team Foundation Server是很容易的,你只要在方案總管內方案上按右鍵,選擇「將方案加入原始檔控制」,如圖7,就可以完成。

圖7將方案加入原始檔控制。


緊接著,若你確定這份程式碼已經完全沒有問題,已經可以放進原始檔控制中時,在要簽入的程式碼上按右鍵選擇「簽入」該程式碼。當你成功的簽入程式後,方案總管內針對每支已放入原始檔控制的程式,前面的圖形會顯示為鎖頭,如圖9,變得相當容易檢視。

圖8 簽入程式碼。



圖9 變成鎖頭圖形。



圖形化原始檔版本的關聯性
接下來,我們來看看Team Foundation Server 2010所提供的「分支與合併」功能。相較於上一個版本,Team Foundation Server 2010新增一個非常有幫助的功能,那就是:檢視階層架構,它會用圖形化的方式表達你目前這份原始碼的各個版本相互間的關聯性,而產生的圖形也可以儲存成圖檔,分享給專案內的所有成員。

要使用檢視階層架構的功能,你必須先在原始檔控制中要分支的目錄上按右鍵,點選「分支與合併」→「轉換成分支」。完成後,你會發現原本的轉換成分支的功能會變成是「檢視階層架構」,如圖10。

圖10 「轉換成分支」變成「檢視階層架構」。


點選「檢視階層架構」,即可以圖形的方式顯示目錄的整個分支情況,如圖11的範例,在開發專案中擁有分支階層架構這張圖,對於程式碼版本的管理將會有非常大的幫助。

圖11 圖形方式顯示目錄的分支。



建立控管程式碼品質的原則
原始檔控制的程式碼是整個專案最重要的產出,程式碼的品質其實就代表專案所有成員的努力及表現,所以嚴格管控原始檔控制的程式碼絕對有其必要性。而在Team Foundation Server 2010內即提供了更多彈性化的簽入原則,來協助控管將要簽入的程式碼。

首先可由圖12啟動新增一個的工作項目原則,並且在控制設定中,限制簽入之前的最後一次編譯必須為成功,如圖13。同時還可規定在簽入之前,該程式碼必須先經過分析確認是否符合開發規範,此設定值在系統中已預設了許多彈性的規則集可供選取,如圖14所示。最後再套用測試即可完成(圖15)。

圖12 加入控管原則。



圖13 簽入前須為已成功編譯。



圖14 選取程式碼分析規則。



圖15 將簽入原則套用測試。



工作項目流程的制定與控管
除了程式碼的管理(原始檔控制)外,在軟體開發流程中還有一個大重點,那就是 ─ 工作管理(工作項目)。依照不同的開發流程,會定義出不同的角色及不同的工作內容,所以Team Foundation Server 2010可以依據不同的開發流程範本,定義出不同的工作項目。例如:MSF for Agile Software Development 5.0有6種工作項目、MSF for CMMI Process Improvement 5.0有9種工作項目,而Scrume則有十種工作項目…等,每種開發流程中的工作項目工作流也都不盡相同,甚至可以進一步做進階的客製化,為公司或專案打造專屬的流程,也為整個專案的工作管理保留最大的彈性。

然而工作項目種類這麼多,一個專案成員也不少,工作量又是出奇的高,想當然Team Foundation Server上會有相當繁雜的工作項目,要如何達成有效率的管理?接下來將以MSF for Agile Software Development的專案為例,呈現Team Foundation Server 2010化繁為簡的功力。


階層式工作項目

在執行管理工作模式中,最常見把一個工作分解成多個子項目,Team Foundation Server 2010可以讓使用者很方便安排及管理層次結構,並利用Excel(圖16)或Project(圖17)查詢,例如:
●在查詢編輯器上方的下拉式選單選擇「工作項目的樹狀目錄」。
●在Team總管中工作目錄下點選圖示,開啟「樹狀工作目錄」的查詢。
●在查詢結果中標題會依階層呈現縮排,並允許展開及折疊結果。
●你也可以在樹狀查詢結果內用拖曳的方式,連結兩個原本沒有關係的工作項目。


圖16 Microsoft Excel支援階層式工作項目。



圖17 Microsoft Project支援階層式工作項目。



Build Support

為了保證原始檔控制內程式碼的品質,「組建」是相當重要的機制。而Team Foundation Server 2010對於組建有許多方面的改善,其中幾個主要的部份是:

●組建控制器讓你可以共享組建:在Team Foundation Server 2010你可以將Team組建指派給一個組建控制器,而組建控制器包含多個組建代理服務,選擇其中一個執行即可,如圖18。通常你必須有幾個不同屬性的組建代理服務,例如某些應用系統需要在 .NET 3.5 (不包含SP1)執行,而另外一個應用系統則是需要 .NET 3.5 + SP1,也可能是最新的 .NET 4.0。這些在Team Foundation Server 2010中,就可以利用標籤告訴Team組,該組建代理服務的設定,如圖19。

圖18 共享組建控制器。



圖19 標籤建立組建代理服務。


●組建定義支援Windows Workflow Foundation 4.0:Team Build已完全支援Windows Workflow Foundation 4.0。在大部份的狀況,你不需要調整預設範本的流程,只需要透過修改幾個組屬性即可(圖20)。當然你也可以透過範本來重覆使用組建設定,甚至利用Windows Workflow Foundation 4.0針對組建流程進行客製化,如圖21。在Team Foundation Server 2010中預設有2個範本:DefaultTemplate及UpgradeTemplate。DefaultTemplate是目前標準的組建設定,而UpgradeTemplate則是提供給TFS 2005/2008的Team Build昇級用。(圖22)

圖20 調整預設範本的流程。



圖21 客製化組建。



圖22 預設範本。


●完整且可以快速讀取組建結果的摘要及紀錄日誌:一個完整的組建資訊,將有助於找出問題點,但是也因為資料量很大,所以Team Foundation Server 2010針對讀取組建結果的效能上做了很大的調整。(圖23)


圖23 快速讀取組建結果的摘要及紀錄日誌。


●閘道簽入組建(Gated Builds):這其實算是一種用來確認簽入程式碼沒有錯誤的功能,不會造成專案開發上任何中斷的風險(圖24)。當專案成員將程式碼簽入時,將發觸發閘道簽入組建,如圖25。若閘道簽入組建成功,才會完成簽入動作;若失敗,則簽入動作不會成功。


圖24 設定觸發閘道簽入。



圖25 閘道簽入要求確認訊息。



結語
專案使用哪一種開發流程,基本上是整個專案成功或失敗的決定因素,而管理整個開發流程更是繁瑣,Team Foundation Server 2010管理平台即可提供協助。它除了內建現行較常見的開發流程範本,也有Third-Party廠商提供不同的開發流程解決方案,甚至你也可以為自己的企業量身打造自己專屬的開發流程範本。同時,提供工作管理模組,也提供原始碼控制模組,更讓兩個模組無縫的整合,以更有效率的方式達成軟體生命週期管理。