詳解Visual Studio 2010敏捷功能(上) ALM探秘
Visual Studio 2010已經(jīng)進(jìn)入Beta 2版本測試階段,對于在Visual Studio 2010 Ultimate敏捷功能特性的講解,是本文的重點(diǎn)。點(diǎn)擊閱讀《詳解Visual Studio 2010敏捷功能(下) 強(qiáng)化測試功能》。
#T#
隨著軟件開發(fā)日趨國際化,對軟件的質(zhì)量要求和管理也隨之增高。微軟看到了應(yīng)用程序生命周期管理在業(yè)界逐漸被接受認(rèn)可的趨勢,并宣稱VSTS2010將會是一個革命性的.Net軟件開發(fā)以及管理工具的產(chǎn)品,預(yù)計在2010年3月正式版發(fā)布。它將提供協(xié)同一致的應(yīng)用程序生命周期管理工具,讓參與軟件開發(fā)的各種角色人員,例如:從架構(gòu)師到開發(fā)人員,從項目經(jīng)理到測試人員,都能夠更加容易地在整個ALM過程中進(jìn)行協(xié)作。
在本文中,筆者將介紹Microsoft Visual Studio 2010 Beta2版本中的敏捷特性,以及以往版本優(yōu)劣勢等方面的內(nèi)容。通過這些內(nèi)容的闡述,讓讀者了解VSTS2010的敏捷思想體系,以便于.NET人員在自己的項目中,根據(jù)實(shí)際情況,盡快熟悉和看清VSTS2010流程為導(dǎo)向的軟件工程全貌和整體發(fā)展趨勢。
1.概述
一個軟件產(chǎn)品或系統(tǒng)同任何事物一樣,也要經(jīng)歷孕育、誕生、成長、成熟、衰亡等階段,一般稱為軟件生存周期,也稱為SDLC(software development life cycle)軟件開發(fā)生命周期。它是軟件的產(chǎn)生直到報廢的生命周期,周期內(nèi)有問題定義、可行性分析、總體描述、系統(tǒng)設(shè)計、編碼、調(diào)試和測試、驗收與運(yùn)行、維護(hù)升級到廢棄等階段,這種按時間分程的思想方法是軟件工程中的一種思想原則。我們也可以將SDLC解釋為一組步驟(Step)、階段(Phase)或者里程標(biāo)(Milestone),SDLC的一般步驟包括:確定問題、可行性分析與開發(fā)計劃、收集需求、分析與設(shè)計、編碼開發(fā)、測試、安裝、維護(hù)。。
在Visual Studio 2010 Ultimate中,應(yīng)用程序生命周期(ALM)是其重要特性和SDLC實(shí)現(xiàn)方式之一。我們將一個軟件的生命周期(SDLC)劃分為幾個階段;而利用各種工具輔助每個關(guān)鍵環(huán)節(jié)進(jìn)行管理,就稱為應(yīng)用程序生命周期管理(ALM,Application Lifecycle Management)。微軟Visual Studio 2010將會努力打造一個功能平等、共同分擔(dān),易用便捷的平臺,以用于組織內(nèi)的應(yīng)用程序生命周期管理過程。
Visual Studio 2010的ALM涵蓋了系統(tǒng)設(shè)計到測試階段的工具,其中,在架構(gòu)方面,Visual Studio 2010包括新的架構(gòu)檢視工具(Architecture Explorer),增加對統(tǒng)一建模語言(UML)的支持,例如類圖、用例圖、活動圖和時序圖等;以及架構(gòu)層圖(Architecture Layer Diagram),以圖形化的方式描述系統(tǒng)架構(gòu),從而使得項目中的技術(shù)人員或非技術(shù)人員都能以模型透過圖形化的方式進(jìn)行協(xié)作,以及定義企業(yè)與系統(tǒng)功能關(guān)系等。另外微軟提供虛擬實(shí)驗室管理(Microsoft Test and Lab Manager)技術(shù),可供開發(fā)人員和測試人員收集更多的測試資料,增強(qiáng)ALM的周期管理控制。

2.Scrum開發(fā)思想敏捷特性
Visual Studio 2010中項目過程模板變化很大,微軟把Scrum作為基本Agile開發(fā)模型(Scrum模型為基礎(chǔ)參考導(dǎo)向),TFS2010中集成了MSF for Agile Software Development v5.0,可操作性上融合了敏捷等軟件開發(fā)流程思想模型。
圖2 添加MSF for Agile模板
Scrum最初的含義是英式橄欖球爭球隊,是敏捷軟件開發(fā)模型中的一種。Scrum 將軟件開發(fā)團(tuán)隊比擬成橄欖球隊,有明確的***目標(biāo),熟悉開發(fā)流程中所需具備的***技術(shù),具有高度自主權(quán),緊密地溝通合作,以高度彈性解決各種挑戰(zhàn),確保每天、每個階段都明確的朝向目標(biāo)推進(jìn)。
圖3 Scrum for Agile模型
Scrum開發(fā)流程通常以30天(或者更短的一段時間)為一個階段,由客戶提供新產(chǎn)品的需求規(guī)格開始,開發(fā)團(tuán)隊與客戶于每一個階段開始時挑選該完成的規(guī)格部分,開發(fā)團(tuán)隊必須盡力于30天后交付成果,團(tuán)隊每天用 15 分鐘開會檢查每個成員的進(jìn)度與計劃,了解所遭遇的困難并設(shè)法排除。
3.VSTS2010安裝敏捷特性
在以往的版本中,微軟TFS2005/2008安裝、配置的復(fù)雜性等原因,使得很多.Net中小型開發(fā)團(tuán)隊還在使用傳統(tǒng)的、功能單一的VSS等開發(fā)管理工具,TFS被逐漸被邊緣化。
在VSTS2010中,TFS2010安裝更加簡單便捷,***支持SQL Server 2008,并與Web Access集成,比起之前繁瑣的安裝和配置步驟更為簡單,無需單獨(dú)安裝SharePoint Service,并且可以在不用安裝域控和AD(活動目錄)的模式下
安裝,從而非常適合不同規(guī)模的開發(fā)團(tuán)隊的使用需要。
圖4 Team Foundation Administration Console
4.VSTS2010功能與角色敏捷性
圖5 Visual Studio 2010 Ultimate架構(gòu)
Visual Studio 2010 Ultimate的用戶包含了項目管理人員(PM),架構(gòu)師,開發(fā)人員和測試人員,他們覆蓋在整個軟件開發(fā)生命周期中。而VSTS 2010則為軟件開發(fā)項目流程中不同角色的人員提供相應(yīng)的工具,并且最重要的是將這些工具以Team Foundation Server為核心整合在一起,增強(qiáng)了軟件開發(fā)團(tuán)隊中的溝通與協(xié)作。我們將能夠?qū)崿F(xiàn)完整的應(yīng)用程序生命周期管理,使得開發(fā)團(tuán)隊能夠在開發(fā)過程的早期以及在整個開可預(yù)見性發(fā)過程中確保更高的和更好的質(zhì)量。
圖6 微軟MSF軟件過程基礎(chǔ)模型
5.敏捷的架構(gòu)設(shè)計(Architecture)(項目經(jīng)理、架構(gòu)師或開發(fā)人員)
VSTS 2010支持統(tǒng)一建模語言UML(Unified Modeling Language)及特定領(lǐng)域語言DSL(Domain Specific Language),.NET項目管理人員、軟件架構(gòu)師或者開發(fā)人員可以丟掉Rose建模工具,進(jìn)行軟件架構(gòu)的構(gòu)建。
所示微軟MSF軟件過程基礎(chǔ)模型設(shè)計設(shè)計活動階段,經(jīng)過概念設(shè)計、邏輯設(shè)計和物理設(shè)計(參考圖6),在軟件工程圖紙設(shè)計過程中,VSTS2010可以敏捷的進(jìn)行軟件工程設(shè)計(參考圖1 Architecture工具模板),從而輔助的完成軟件工程文檔。如圖7所示,進(jìn)行軟件工程類關(guān)系圖的設(shè)計。
圖7 設(shè)計UML Class Diagram
鼠標(biāo)右鍵,點(diǎn)擊“Create Lifeline”菜單項,可以自動生成Lifeline,在這基礎(chǔ)上可以進(jìn)行類的時序圖的設(shè)計,如圖8所示。
圖8 設(shè)計UML Sequence Diagram
另外,在架構(gòu)管理方面,VSTS 2010通過新的架構(gòu)瀏覽器(Architecture Explorer)和架構(gòu)層圖(Architecture Layer Diagram),以圖形化的方式描述系統(tǒng)架構(gòu),從而使得項目中的技術(shù)人員或非技術(shù)人員都能以模型透過圖形化的方式進(jìn)行協(xié)作,以及定義企業(yè)與系統(tǒng)功能。
在實(shí)際的項目開發(fā)實(shí)踐中,大多數(shù)情況下我們都是在已有代碼的基礎(chǔ)上構(gòu)建新的系統(tǒng)。在這種情況下,.NET架構(gòu)師或者開發(fā)人員遇到的一個典型的問題就是沒有好的工具可以幫助他們很好地理解現(xiàn)有代碼的架構(gòu),從而無法有效地在現(xiàn)有代碼的基礎(chǔ)上,添加新的功能以滿足新的需求。為了解決這個問題,VSTS 2010提供了新的建模工具——架構(gòu)瀏覽器(Architecture Explorer)。
架構(gòu)瀏覽器圖,如圖9所示。
圖9 架構(gòu)瀏覽器
新的架構(gòu)瀏覽器可以讓架構(gòu)師或者開發(fā)人員為已有代碼創(chuàng)建完整的架構(gòu)圖,理解原有系統(tǒng)的各個組件是如何協(xié)作在一起的。這將為架構(gòu)師或者開發(fā)人員決定如何使用,復(fù)用或者是棄用現(xiàn)有代碼提供足夠的有價值的參考信息。
對于非.NET架構(gòu)設(shè)計人員來說,也可以借用微軟的New Diagram模板(Uml Class Diagram、UML Sequence Diagram、UML Use Case Diagram、UML Activity Diagram、UML Component Diagram等)進(jìn)行漂亮的軟件工程圖表設(shè)計,并可以直接粘貼到word中進(jìn)行功能說明(參考圖1)。