全職殺手:用VSTS2010進(jìn)行軟件生命周期管理
跟世界上的任何事物一樣,軟件研發(fā)也有其生命周期。通常,我們將一個(gè)軟件的生命周期劃分為分析、設(shè)計(jì)、開(kāi)發(fā)、測(cè)試、部署、維護(hù)直至***廢止等這樣幾個(gè)階段;而利用各種工具輔助每個(gè)關(guān)鍵環(huán)節(jié)進(jìn)行管理,就稱為應(yīng)用程序生命周期管理(ALM: Application Lifecycle Management)。
在應(yīng)用程序的整個(gè)生命周期中,每—個(gè)關(guān)鍵環(huán)節(jié)都有其任務(wù),同時(shí)產(chǎn)生—定的規(guī)格或是程序再交付給下—個(gè)環(huán)節(jié)。如果缺少管理,或者是流程中的某個(gè)環(huán)節(jié)建立在一個(gè)過(guò)程所產(chǎn)生的錯(cuò)誤結(jié)果之上,整個(gè)軟件工程極有可能面臨失敗的命運(yùn)。應(yīng)用程序生命周期管理的關(guān)注點(diǎn)就在于將軟件研發(fā)的全部過(guò)程看做一個(gè)連續(xù)的、可重復(fù)的過(guò)程:定義、設(shè)計(jì)、開(kāi)發(fā)、測(cè)試、部署和管理。過(guò)程中的每個(gè)部分都需要認(rèn)真對(duì)待,進(jìn)行監(jiān)控,以確保整個(gè)流程能夠順利完成。

通過(guò)實(shí)施應(yīng)用程序生命周期管理,我們可以獲得如下的好處:
◆提高生產(chǎn)率,整個(gè)團(tuán)隊(duì)共享開(kāi)發(fā)和部署的***實(shí)踐(Best Practices)過(guò)程,而開(kāi)發(fā)人員則只需要關(guān)注具體的業(yè)務(wù)需求(Business Requirement)
◆提高質(zhì)量,使得最終交付的應(yīng)用程序滿足用戶的期望(Expectation)
◆打破合作過(guò)程中的壁壘,尤其是技術(shù)人員和非技術(shù)人員之間的溝通障礙,使得項(xiàng)目中的各種信息流通暢
◆通過(guò)簡(jiǎn)化的集成方案加速開(kāi)發(fā)
◆使設(shè)計(jì)與應(yīng)用程序保持同步從而降低維護(hù)時(shí)間
◆使發(fā)生在技能(Skill)、流程(Process)、技術(shù)(Technology)方面的投資***化
◆通過(guò)降低修改與構(gòu)建程序所需時(shí)間提高應(yīng)用程序應(yīng)對(duì)業(yè)務(wù)變更的靈活性
隨著軟件開(kāi)發(fā)實(shí)踐的不斷深入,應(yīng)用程序生命周期管理越來(lái)越被業(yè)界接受為一種經(jīng)過(guò)實(shí)踐檢驗(yàn)的,可以創(chuàng)造高品質(zhì)的應(yīng)用程序的,可靠的軟件開(kāi)發(fā)模式。但是,要實(shí)施整個(gè)應(yīng)用程序生命周期管理是非常復(fù)雜的,我們必須借助一些工具來(lái)幫助我們完成整個(gè)生命周期的管理。最初的時(shí)候,項(xiàng)目中的技術(shù)人員使用一些單獨(dú)的開(kāi)發(fā)工具進(jìn)行軟件開(kāi)發(fā),例如架構(gòu)師使用Rose進(jìn)行架構(gòu)設(shè)計(jì),而開(kāi)發(fā)人員則使用Visual Studio進(jìn)行編碼。同時(shí),項(xiàng)目中的非技術(shù)人員則使用一些通用的項(xiàng)目管理工具進(jìn)行項(xiàng)目管理,例如項(xiàng)目經(jīng)理使用Project,Excel等制定項(xiàng)目計(jì)劃,進(jìn)行任務(wù)劃分和分配等。
那個(gè)時(shí)代,這些軟件被簡(jiǎn)單松散地集合在一起,各個(gè)軟件之間無(wú)法進(jìn)行信息流的溝通,軟件開(kāi)發(fā)流程和項(xiàng)目管理流程兩者是完全分裂開(kāi)的。導(dǎo)致信息在項(xiàng)目?jī)?nèi)部的阻塞。同時(shí),由于軟件開(kāi)發(fā)的復(fù)雜度(Complexity)和混合度(Sophistication)的增長(zhǎng),最初以版本控制軟件為核心的工具集合已經(jīng)向外擴(kuò)展到更多方面,從而對(duì)應(yīng)用程序生命周期管理軟件提出了更多的要求。
Visual Studio Team System 2010
微軟看到了應(yīng)用程序生命周期管理在業(yè)界逐漸被接受認(rèn)可的趨勢(shì),所以在微軟的第三代Visual Studio Team System——Visual Studio Team System 2010中,將提供協(xié)同一致的應(yīng)用程序生命周期管理工具,讓參與軟件開(kāi)發(fā)的各種人員,從架構(gòu)師到開(kāi)發(fā)人員,從項(xiàng)目經(jīng)理到測(cè)試人員,都能夠更加容易地在整個(gè)ALM過(guò)程中進(jìn)行協(xié)作。

圖2 Visual Studio Team System的架構(gòu)
我們可以看到,VSTS 2010的用戶包含了項(xiàng)目管理人員,架構(gòu)師,開(kāi)發(fā)人員和測(cè)試人員,他們覆蓋在整個(gè)軟件開(kāi)發(fā)生命周期中。而VSTS 2010則為軟件開(kāi)發(fā)項(xiàng)目流程中不同角色的人員提供相應(yīng)的工具,并且最重要的是將這些工具以Team Foundation Server為核心整合在一起,增強(qiáng)了軟件開(kāi)發(fā)團(tuán)隊(duì)中的溝通與協(xié)作。利用Visual Studio Team System,我們將能夠?qū)崿F(xiàn)完整的應(yīng)用程序生命周期管理,使得開(kāi)發(fā)團(tuán)隊(duì)能夠在開(kāi)發(fā)過(guò)程的早期以及在整個(gè)開(kāi)發(fā)過(guò)程中確保更高的可預(yù)見(jiàn)性和更好的質(zhì)量。
架構(gòu)
其中,在架構(gòu)方面,VSTS 2010將通過(guò)新的架構(gòu)瀏覽器(Architecture Explorer)和架構(gòu)層圖(Architecture Layer Diagram),以圖形化的方式描述系統(tǒng)架構(gòu),從而使得項(xiàng)目中的技術(shù)人員或非技術(shù)人員都能以模型透過(guò)圖形化的方式進(jìn)行協(xié)作,以及定義企業(yè)與系統(tǒng)功能。另外,VSTS 2010也同時(shí)支援統(tǒng)一建模語(yǔ)言(UML: Unified Modeling Language)及特定領(lǐng)域語(yǔ)言(DSL: Domain Specific Language)。

圖3 架構(gòu)層圖
在實(shí)際的項(xiàng)目開(kāi)發(fā)實(shí)踐中,大多數(shù)情況下我們都是在已有代碼的基礎(chǔ)上構(gòu)建新的系統(tǒng)。在這種情況下,架構(gòu)師或者開(kāi)發(fā)人員遇到的一個(gè)典型的問(wèn)題是:沒(méi)有好的工具可以幫助他們很好地理解現(xiàn)有代碼的架構(gòu),從而無(wú)法有效地在現(xiàn)有代碼的基礎(chǔ)上,添加新的功能以滿足新的需求。為了解決這個(gè)問(wèn)題,VSTS 2010提供了新的建模工具——架構(gòu)瀏覽器(Architecture Explorer)。新的架構(gòu)瀏覽器可以讓架構(gòu)師或者開(kāi)發(fā)人員為已有代碼創(chuàng)建完整的架構(gòu)圖,理解原有系統(tǒng)的各個(gè)組件是如何協(xié)作在一起的。這將為架構(gòu)師或者開(kāi)發(fā)人員決定如何使用,復(fù)用或者是棄用現(xiàn)有代碼提供足夠的有價(jià)值的參考信息。

圖4 架構(gòu)瀏覽器
#p#
開(kāi)發(fā)與測(cè)試
在測(cè)試方面,VSTS 2010強(qiáng)化了測(cè)試功能,同時(shí)簡(jiǎn)化了在整個(gè)應(yīng)用程序生命周期中整合測(cè)試的工具。新功能包括移除不可重現(xiàn)(No-Repro)的錯(cuò)誤、快速進(jìn)行有關(guān)測(cè)試的設(shè)計(jì)與開(kāi)發(fā)、測(cè)試用例管理,與Team Foundation Server集成的測(cè)試計(jì)劃,以及確保所有更新的程序代碼都被測(cè)試等。

圖5 豐富的測(cè)試工具
在VSTS 2010中,重點(diǎn)強(qiáng)調(diào)了測(cè)試人員與開(kāi)發(fā)人員的協(xié)作。它提供了兩個(gè)視圖:測(cè)試影響視圖(Test Impact View)和代碼變更視圖(Code Changes View)。通過(guò)這兩個(gè)視圖,開(kāi)發(fā)人員可以更加了解開(kāi)發(fā)對(duì)測(cè)試的影響。當(dāng)開(kāi)發(fā)人員變更代碼的時(shí)候,測(cè)試影響視圖會(huì)分析哪些測(cè)試需要運(yùn)行以驗(yàn)證代碼變更。這將幫助開(kāi)發(fā)人員只運(yùn)行必要的測(cè)試以對(duì)代碼變更進(jìn)行驗(yàn)證,從而對(duì)簽入的代碼充滿信心。新的測(cè)試影響視圖顯示了代碼變更后必須運(yùn)行的測(cè)試的列表,同時(shí)顯示了每個(gè)測(cè)試所影響到的代碼變更。而代碼變更視圖則顯示了所有代碼變更的列表,同時(shí)顯示了為了驗(yàn)證這個(gè)代碼變更所必須運(yùn)行的測(cè)試。這樣就避免了運(yùn)行全部測(cè)試來(lái)驗(yàn)證某一個(gè)小的代碼變更所造成的浪費(fèi),使得測(cè)試更加高效。

協(xié)作
VSTS 2010在協(xié)作功能上則通過(guò)強(qiáng)化Team Foundation Server(TFS)加以改善,包括提供流程模板,允許團(tuán)隊(duì)可以配置及采用任何喜歡的敏捷式(Agile)軟件開(kāi)發(fā)模式。團(tuán)隊(duì)可根據(jù)豐富的工作項(xiàng)目連結(jié)進(jìn)行追蹤,并建立有層次的工作項(xiàng)目關(guān)聯(lián)。在應(yīng)用程序生命周期管理中,我們最關(guān)心的是項(xiàng)目的管理人員如何參與到整個(gè)生命周期中來(lái)。通過(guò)TFS與Peoject和Excel之間的緊密協(xié)作,項(xiàng)目的管理人員可以使用自己熟悉的項(xiàng)目管理工具,直接從TFS獲取項(xiàng)目的相關(guān)信息,通過(guò)豐富的項(xiàng)目報(bào)表,了解項(xiàng)目的運(yùn)行情況,準(zhǔn)確地對(duì)項(xiàng)目中的各項(xiàng)任務(wù)進(jìn)行計(jì)劃和管理。

圖7 Project與VSTS的協(xié)作,產(chǎn)生項(xiàng)目計(jì)劃

圖8 項(xiàng)目剩余工時(shí)報(bào)表
另外,在程序代碼管理系統(tǒng)上,TFS則提供視覺(jué)化的工具以追蹤從分支到產(chǎn)品版本的所有修改;以及提供各種工作流程程序版本以提前發(fā)現(xiàn)錯(cuò)誤。
【編輯推薦】