【IT168 專稿】Visual Studio Team System(以下簡稱VSTS)是一套高生産力的、內建的、可擴充的生命周期開發工具,它擴充了Visual Studio産品線,增強了軟體開發團隊中的溝通與協作。在本文中,我們将首先對VSTS做一些簡要的介紹,後面針對不同的團隊協作中的不同角色:面向架構師、面向開發者、面向測試者三種角色分别加以說明。
利用VSTS,開發團隊能夠在開發過程的早期以及在整個開發過程中確定更高的可預見性和更好的品質。VSTS還包含了微軟解決方案架構(Microsoft Solution Framework),MSF提供了一套經過長期考驗的軟體開發過程,能夠幫助開發團體傳遞企業級解決方案。”VSTS的使用者覆寫在整個軟體開發生命周期中,為軟體開發項目流程中不同角色的人員提供相應的工具,并且最重要的是将這些工具很好地整合在一起。
1.什麼是MSF?
VSTS包含了微軟解決方案架構(Microsoft Solution Framework,以下簡稱MSF),MSF是一種成熟的、系統的技術項目方法,它基于一套制定好的原理、模型、準則、概念、指南,以及來自微軟的、經過檢驗的做法。MSF的定義并不是一套項目管理的步驟, MSF所提供的是一套指導性的原理、模型、準則、概念等,比如
MSF核心有八個基礎原理,它們是:
·推動開放式溝通;
·為共同的前景工作;
·賦予小組成員權利;
·建立清晰的責任和共同的職責;
·關注傳遞業務價值;
·儲存靈巧,預測變化;
·品質投資;
·學習所有的經驗;
這些基本原理是MSF的核心,它們貫穿于項目開發過程中的各個方面。
MS的準則包括項目管理準則、風險管理準則和就緒管理準則。這些準則對于MSF 小組和過程模型的良好運作十分重要。它們起源不在MSF之内;它們在行業内部得到了很好的檢驗,并有全面的知識體系來支援。MSF具有與基礎原理和模型相配套的特定準則,并在需要的時候用它們對架構的其他元素進行補充。總之,MSF 并沒有嘗試去完全重建這些準則,而是去突出在被應用到 MSF 環境裡的時候它們是如何去适應的。
MSF 的遠景目标是為軟體專業人員提供由軟體專業人員開發的高效、內建和可擴充的流程指導。
·高效:MSF 的一個關鍵遠景目标是提高人們的工作效率。MSF 的流線型和自定義的流程指導表示,提供對高效性的支援。利用清單和指導(而不是詳細的内容),使用者可以迅速确定完成一項任務或活動的需求。
·內建:通過整套工具的無縫內建、以及幫助和 MSF 内容的內建,在工具内即可提供解決方案和指導。所有這些元素均可輕松地在 MSDN 及整個工具集的所有方面進行更新。可以對内容本身進行組織,以實作輕松維護。
·可擴充:流程指導和幫助在 MSF 内是完全自定義的。使用者可以選擇一個靈活或正式的方法,整合基于方案的開發,并通過内容确定他們自己的路徑。
MSF 指導關注的是對“人與流程”的管理。因為軟體開發小組的需要和做法在不斷發展,是以收集到 MSF 中的材料也同步進行不斷地更改和擴充。另外,MSF 與 Microsoft Operations Framework (MOF) 互相配合,進而為操作環境提供平穩過渡,這是長期項目成功的要求。
VSTS中為使用者提供了兩套過程模闆,他們分别是:
·MSF for Agile Software Development
·MSF for CMMI Process Improvement
這兩個模闆包括了工作項類型的定義以及狀态轉換流程、源碼控制的政策、安全設定、項目站點的内容、預定義的報告等等,也許你現在并不了解他們的含義,後面我們會有一章專門介紹所有這些内容。你隻要知道這兩個模闆定義了很多項目開發中要用到的元素,并且你可以完全自己定制這些元素,使得它們适合使用者自己的項目。其中Agile模闆适于小型團隊的開發,比較輕巧,簡單。CMMI模闆則是一套比較完全而複雜的模闆,其中提供了滿足SEI CMMI三級的基本要求的靈活開發模式。
2.VSTS功能群組成

圖1
如圖1所示,VSTS是以角色為基礎的,包含項目開發中的各類角色成員:
項目經理(Project Manager)
軟體架構師(Software Architect)
開發工程師(Software Developer)
測試工程師(Software Tester)
解決方案構架師(Team Foundation Server)
各類角色成員通過使用VSTS而在項目開發過程中緊密地結合起來,及時有效的完成角色的任務。
VS2005 Team Edition for Software Architects
VS2005 Team Edition for Software Developers
VS2005 Team Edition for Software Testers
VS2005 Team Foundation Server
VS2005 Team Test Load Agent
VS2005 Team Suite
Team Suite是VSTS的組成部分,它為核心軟體開發團隊中的每個角色成員提供了相應的工具,比如軟體設計,開發和測試,以及團隊溝通和管理方面,是成員之間形成自由,無縫的連接配接。通過和Visual Studio Team Foundation Server的整合使用, Team Suite幫助項目管理者更好的控制産品在軟體生命周期中的每個環節,如圖2所示:
圖2
3.在VSTS中實作生命周期方法自動化
VSTS使用團隊項目這個邏輯概念來表示在 Team Foundation Server(或 TFS)中所配置的軟體開發項目。(VSTS 使用 TFS 元件來集中存儲所有與項目相關的資料以及支援項目團隊成員内部的協作。作為 VSTS 的伺服器端産品,TFS 內建了多個關鍵概念。)要獲得 VSTS 所提供的好處,您必須為所啟動的每個軟體開發項目建立一個團隊項目。要将特殊的方法應用于軟體開發項目,您必須按照該方法配置其團隊項目并使用初始資料填充該團隊項目。可使用過程模闆來指定其中的初始配置和資料。
正如先前所提到的,過程模闆是一組包含有預定義架構和結構的 XML 檔案。用于建立團隊項目的項目建立向導了解這些 XML 檔案及其結構。建立團隊項目時,PCW 從過程模闆中讀取 XML 檔案,然後相應地配置和填充該團隊項目。在團隊項目建立完畢後,VSTS 中随附的工具(如 Work-Item Tracking、Source-Code Control 等等)會根據此配置和資料自動負責運作該項目。是以,要在 VSTS 中實作自定義生命周期方法,您必須做的唯一一件事情就是為該方法定義一個過程模闆并利用該模闆建立一個團隊項目。配置、執行、監控和報告均由 VSTS 工具自動處理,因為這些工具了解過程模闆架構。
面向架構師
Visual Studio Team Edition for Architects 本身也定位了三個完全不同的子組:應用程式設計器、邏輯資料中心設計器,以及系統設計器和部署設計器。應用程式設計器可以通路"白闆"模式,以便建立應用程式設計。代碼能夠在設計器表面生成,并且能夠很好地實作模型與代碼之間的同步。該産品還能夠根據邏輯結構進行驗證,并且能夠可視化表示分布式系統之間的各種關系。這很重要,是因為通常情況下,應用程式設計器幾乎不能預見應用程式最終将駐留的整個系統。邏輯資料中心設計器可以通路設定和限制編輯器,以及系統定義模型(System Definition Model,SDM)生成器和編譯器。
針對架構師的 Team Edition 具有系統設計器和部署設計器,該元件将許多組織中通常各自為政的操作和部署聯為一體。Team Edition 使使用者能夠将應用程式設計綁定到資料中心設計,然後建立可組裝的系統。此外,架構師、開發人員和操作人員之間的斷層對大多數公司而言仍然是一個具有挑戰性的、代價很高的問題。這種對于體系結構對軟體實作的影響的了解能夠支援在生命周期較早階段開始協作,進而削減了維護和部署的成本。多種項目生成以及持續的同步可使資訊處于托管狀态并保持是最新的。
簡化該功能的關鍵計劃是動态系統管理計劃(Dynamic Systems Initiative,DSI)。DSI 支援對系統和服務進行可視化,并且支援對每個系統和服務進行中繼資料跟蹤,以便向其他系統和服務進行描述。為什麼這很重要?這意味着,解決方案架構師随後可以針對基礎結構架構師的資料中心設計來驗證他們的應用程式設計。微軟在具有系統定義模型 (SDM) 的 VSTS 中首次實作了 DSI,這樣做可以對各層的部署環境和應用程式進行分類,進而幫助簡化應用程式的設計、開發和實作。
面向開發者
Visual Studio Team Edition for Developers 延伸了代碼建立、動态和靜态分析、分析和代碼覆寫功能。靜态分析支援托管代碼和本機代碼;代碼分析能夠實作序列視圖、對象配置設定和函數視圖,以及應用程式驗證器的可視化。這意味着,開發人員将更清楚地了解以前工作的結果,并且會看到産生的代碼與規範之間的整體一緻性。內建的單元測試以及與測試架構的緊密內建便于在生命周期中更早、更快地生成品質更好的代碼(降低了成本,提高了工作效率)。此外還包括代碼分析器,它揭示了作業系統内部的核心規範。例如,如果應用程式運作時出現記憶體洩漏,代碼分析器将捕獲記憶體洩漏并通知開發人員。
面向測試者
Visual Studio Team Edition for Testers 在 Visual Studio 産品家族中引入了測試,首次提供了來自微軟的內建測試工具集。使用該産品,微軟內建了一個測試創作和執行環境(Test View 和 Test Explorer)、負載測試,以及單元測試。負載測試針對 Web 服務和 Web 頁上下文中的性能(通過基于協定的腳本),負載模式以及性能計數器,以收集和提供門檻值監視。
單元測試和代碼覆寫都是在針對測試人員和開發人員的 Team Edition 中可用的延伸功能。這很重要,因為它能夠讓開發人員和測試人員更早地、經常地、反複地進行單元測試。代碼覆寫能夠讓開發人員和測試人員了解應用程式中已測試的部分和未測試的部分。這還便于排定代碼和測試資源的優先級。由于某些代碼内容存在很大的失敗風險或對業務的重要性更高,是以應該指定資源首先對其進行測試。
4.VSTS帶來了什麼
通過VSTS,微軟正在解決日益增加的應用程式複雜性及其設計、開發和部署所必需的生命周期問題。這一點是通過提供必需的工具和指導進而能夠預見、重複結果(無需付出生産效率和創新的代價)實作的。
?
資訊交流:通過降低報告的運轉開銷和尋覓團隊成員間新的交流管道,VSTS着重于能夠更好地進行交流。例如: 通過自動從團隊成員使用的工具那裡收集資訊,可以簡化報告過程。從VSTS采集到的資料儲存在資料倉庫中,這使項目狀态報告和可見性能夠面向軟體開發團隊的所有成員,甚至是項目組之外的幹系人。 項目經理能夠将客戶需求轉化為開發團隊中的工作項,然後跟蹤工作項的狀态以實作項目狀态的監控。 分布式系統設計器 (Distributed System Designer) 将應用程式開發和部署需求轉化為能夠讓開發人員和操作進行交流的公共語言 (SDM)。
內建的工具:Visual Studio 的成功已被證明,即開發人員偏愛一個具備對他們需要的工具提供接口的內建開發環境。通過将開發人員在開發環境中需要的測試和性能工具(例如,單元測試、代碼分析和性能分析)合并在一起,VSTS也期待着這種成功。這使開發人員能夠在生命周期的較早階段就改善其代碼的品質,而無需中斷他們的工作。通過盡早地為開發人員提供他們需要用于識别和解決品質問題的工具,更多的産品缺陷就能夠在它們還未構成危害之前即被發現并解決。
簡化的、內建的工作流和過程:有了VSTS,那麼過程就不僅僅是文檔了。它還能将自己展現為實際的工具行為更改。當您在項目初期選擇過程時,還需要選擇工作流和工作産品,它們會驅動系統的行為方式。對 SDLC 過程的支援是内置的,這使得對工作流的支援是無縫的。通過将過程內建到團隊成員日常使用的基本工具中,VSTS大大消除了過程采納的障礙,并使自動收集跨職能的項目标準成為可能,而無需實施人工報告的相關開銷。
增加的投資回報:利用資訊交流和生産效率的改進,企業将明顯地看到針對其在 SDLC 工具和過程方面的投資而增加的 ROI。VSTS提供一個具有成本效益的解決方案,進而通過使用跨所有 SDLC 工具的廣泛內建,實作對軟體開發生命周期的管理。通過提供內建的工具集并基于現有知識進行建構,VSTS提供一個友好的環境來幫助開發團隊提高效率,而無需掌握不必要的、複雜的概念和僵化的工具。
5.總結
本文我們簡單的對VSTS做了一些概要的介紹,VSTS帶來的主要好處是,通過在熟悉的微軟工具範例内進行相應的軟體開發,能夠更好地适應企業,并且更好地與 IT 進行協作。利用綜合資訊來提高工作效率和溝通、自動進行跨生命周期工具集的資料捕獲、公共的項目門戶、跨工具查詢和報告,以及公共連結和通知服務,VSTS使使用者能夠節約成本。時間流轉,VSTS期待超越自身的發展 - 不僅限于目前涉及的規劃與項目組合管理工具的內建,還要擴大項目估計和管理支援,以及對操作支援的系統管理連結。