Visual Studio 2010模型與工作項(xiàng)集成的分析
本文來自賽迪網(wǎng) 作者:高陽
Visual Studio 2010集成了眾多ALM功能,其核心實(shí)際上是后端的Team Foundation Server。VS 2010的建模設(shè)計(jì)、開發(fā)和測(cè)試等都與TFS 2010有著緊密的集成。UML圖及其圖上的元素也同樣與TFS的工作項(xiàng)(Work Item)進(jìn)行了集成,即由圖上的元素可以關(guān)聯(lián)到TFS中的任意類型的工作項(xiàng)。
工作項(xiàng)是一個(gè)通用的來描述各類事物(如bug、用戶需求)的方法等。事實(shí)上,如果用TFS 2008創(chuàng)建新的Team Project時(shí)采用的是默認(rèn)設(shè)置,就會(huì)看到bug、要求、風(fēng)險(xiǎn)、案例和任務(wù)等工作項(xiàng)。我們可以創(chuàng)建自己的工作項(xiàng)目類型,可在已有的工作項(xiàng)基礎(chǔ)上修改(例如添加自己的字段來擴(kuò)展默認(rèn)的bug工作項(xiàng)等),或完全從頭開始定義。
在Visual Studio 2010中一個(gè)重要的新工作項(xiàng)類型是測(cè)試用例工作項(xiàng)。在UML圖上用鼠標(biāo)右鍵單擊任何元素,在彈出菜單中可以選擇創(chuàng)建新的工作項(xiàng),或者關(guān)聯(lián)到已有的工作項(xiàng)。如果Visual Studio當(dāng)前正連接到某個(gè)TFS工程,則會(huì)在該工程中創(chuàng)建新工作項(xiàng);如果沒有連接到任何工程,則“Create Work Item”選項(xiàng)會(huì)顯示一個(gè)子項(xiàng)允許去創(chuàng)建一個(gè)新的TFS連接。當(dāng)元素已經(jīng)與工作項(xiàng)關(guān)聯(lián)后,菜單中還提供了“Remove Work Items...”命令,可以選擇刪除這些關(guān)聯(lián),或用“View Work Items”命令來查看這些關(guān)聯(lián)的具體內(nèi)容,如圖1所示。
如上圖所示,當(dāng)圖上的元素和工作項(xiàng)關(guān)聯(lián)后,在其旁邊會(huì)顯示出一個(gè)小圖標(biāo)指示該元素已關(guān)聯(lián)到TFS中的一個(gè)或者多個(gè)工作項(xiàng),具體的關(guān)聯(lián)數(shù)目到元素的屬性窗口中可以查看到。
我們也可以將整個(gè)UML圖關(guān)聯(lián)到工作項(xiàng),在圖的右上角會(huì)出現(xiàn)關(guān)聯(lián)后的圖標(biāo)。但是,并不是所有元素在關(guān)聯(lián)了TFS工作項(xiàng)后都會(huì)有小圖標(biāo)顯示出來,例如:類圖中類的方法或者屬性(Attribute)也是可以被關(guān)聯(lián)到工作項(xiàng)的(如一個(gè)Task工作項(xiàng)),但是不會(huì)有任何圖標(biāo)提示,這可以用屬性窗口中的“Work Items”項(xiàng)來進(jìn)行判斷。同一個(gè)元素可以關(guān)聯(lián)到同一個(gè)TFS服務(wù)器上的不同工程上的工作項(xiàng),也可以關(guān)聯(lián)到不同服務(wù)器上的工作項(xiàng),但是“View Work Items...”只能顯示VS當(dāng)前所連接服務(wù)器上的工作項(xiàng)。
應(yīng)用&實(shí)踐
在Visual Studio 2010中模型與工作項(xiàng)的集成
在本實(shí)踐中,將展示如何將任何模型元素鏈接到目前已儲(chǔ)存在TFS中的工作項(xiàng)上。
在Visual Studio 2010的Team Foundation Server中,添加了豐富的對(duì)工作項(xiàng)層次的支持。我們可以查詢TFS,尋找特定的工作項(xiàng),查找工作項(xiàng)之間的關(guān)系報(bào)告等。我們可以在設(shè)計(jì)中將各種模型工件連接到現(xiàn)有或新的工作項(xiàng)上。
① 關(guān)聯(lián)到工作項(xiàng)。
創(chuàng)建一個(gè)新的類,并查看其屬性,它本身有一個(gè)叫做“Work items(工作項(xiàng))”的屬性,值為“0 associated(0個(gè)相關(guān))”。它是灰色的,說明這個(gè)圖沒有連接到任何工作項(xiàng),如圖2所示。
如上圖所示,可以將整個(gè)圖表或個(gè)別模型元素(包括連接元素)鏈接到TFS和Team Project支持的任意類型的工作項(xiàng)上。目前有兩種辦法可以創(chuàng)建圖表/模型元素和工作項(xiàng)之間的鏈接:可以在創(chuàng)建鏈接的同時(shí)創(chuàng)建工作項(xiàng);也可以鏈接到已有的工作項(xiàng)上。
②創(chuàng)建工作項(xiàng)。
步驟如下:
使用TFS 2010 Agile Team Project創(chuàng)建一個(gè)新的工作項(xiàng)目,并自動(dòng)將其關(guān)聯(lián)到圖表,只需用鼠標(biāo)右鍵單擊圖表的背景,并選擇“Create Work Item”(創(chuàng)建工作項(xiàng))命令,將會(huì)看到所創(chuàng)建的Agile(Scrum過程開發(fā)模型)工作項(xiàng)類型,如Bug、Shared Steps(共享步驟)、Task(任務(wù))、Test Case(測(cè)試用例)、User Story(用戶故事)和Issue(問題),如圖3所示。
創(chuàng)建bug關(guān)聯(lián)。選擇“Bug”菜單項(xiàng),一個(gè)新的TFS Bug工作項(xiàng)顯示出來。填好標(biāo)題并保存之后,會(huì)發(fā)現(xiàn)有一個(gè)工作項(xiàng)與圖表相關(guān)聯(lián)了,如圖4所示。
② 鏈接到已有的工作項(xiàng)。
在很多的情況下,可能要將圖表或模型元素與已有的工作項(xiàng)關(guān)聯(lián)起來。使用上面的圖表,只需用鼠標(biāo)右鍵單擊圖表背景,并選擇“Link to Work Item…”(鏈接到工作項(xiàng)...)命令,這樣“Link to Work Items”對(duì)話框就顯示出來(如果有所有權(quán)限則會(huì)顯示全部),如圖5所示。
選擇“My Bugs”查詢,然后單擊“Find”(查找)按鈕來返回儲(chǔ)存在TFS中的“My Bugs”工作項(xiàng)。選擇前兩個(gè)bug,單擊“OK”按鈕,現(xiàn)在就有三個(gè)工作項(xiàng)與圖表相聯(lián)系了,如圖6所示。
③ 查看已鏈接的工作項(xiàng)。
現(xiàn)在,我們已經(jīng)將圖表聯(lián)系到了三個(gè)不同的工作項(xiàng)中,此時(shí)可以查看工作項(xiàng)的具體內(nèi)容。用鼠標(biāo)右鍵單擊圖表背景,并選擇“View Work Items…”(顯示工作項(xiàng)...)命令,一個(gè)新的查詢結(jié)果窗口將會(huì)顯示出來,如圖7所示。
上面的示例展示的是關(guān)聯(lián)工作項(xiàng)到圖表的方法。對(duì)所有的模型元素(Class、Association、Attribute、Operation、Comment、Layer等)關(guān)聯(lián)工作項(xiàng)的方法類似,并且也都同樣適用,所有這些元素都可以與任何類型的工作項(xiàng)聯(lián)系。關(guān)聯(lián)到工作項(xiàng)后的圖表和模型元素更方便跟蹤。
當(dāng)圖上的元素(本示例是類元素)和工作項(xiàng)關(guān)聯(lián)后,在其右上角會(huì)顯示出一個(gè)小圖標(biāo),表示該元素已關(guān)聯(lián)到TFS中的一個(gè)或者多個(gè)工作項(xiàng)中,具體的關(guān)聯(lián)數(shù)目到元素的屬性窗口中可以查看到,如圖8所示。
總結(jié)
Visual Studio 2010 Architecture可以創(chuàng)建或鏈接現(xiàn)有的工作項(xiàng)到任何UML圖表、層圖和模型元素,并能迅速查看相關(guān)聯(lián)的工作項(xiàng)的內(nèi)容。這種功能將使許多用法成為可能,例如將UseCase與用戶需求或者測(cè)試用例連接起來等。VS 2010的建模設(shè)計(jì)、開發(fā)和測(cè)試等都與TFS 2010緊密的集成。UML圖及其圖上的元素也同樣與TFS的工作項(xiàng)(Work Item)進(jìn)行了集成,即由圖上的元素可以關(guān)聯(lián)到TFS中的任意類型的工作項(xiàng)。這樣大大增強(qiáng)了軟件開發(fā)相關(guān)人員進(jìn)行軟件工程周期設(shè)計(jì)與控制的能力。