TFS是微軟的應用軟件生命周期管理(ALM)的解決方案產品,相比我們常見的一些ALM產品,例如HP ALM, IBM Rational, Atlanssian Jira等,其最大的區別在於TFS將軟件研發的詳細過程和交付物都集中收集在同一個平台中,實現了軟件研發資產的集中管控。同時將軟件研發過程中的各種角色, 例如需求分析師、開發人員、測試人員、運維實施人員等集中在一個平台中辦公,實現數據的充分共享和互通,大幅提高了企業中不同部門之間的溝通效率。
而在軟件研發過程中最重要和最受關注的,非開發人和源代碼莫屬!在一個軟件研發團隊中,可以沒有需求管理工具(有人用Word或者電子郵件管理),可以沒有Bug管理工具(有人用Excel),也可以沒有測試用例工具,但是不可以沒有源代碼管理工具。沒有源代碼管理工具的團隊,其開發效率和質量和因此帶來的版本管理混亂的問題,是可以預見的。因此在大部分軟件研發團隊中,都會使用各自習慣的代碼管理工具,例如SVN, CVS, Git, VSS等。代碼管理工具對於軟件代碼的備份、隔離、分支和版本管理等,起到了至關重要的作用。
但是僅有代碼管理工具,我們很難追蹤代碼變更的的緣由,特別是時間一長,或者是開發人員因為工作原因離開了研發團隊,新接手的開發人員很難快速介入到代碼的開發工作中。更嚴重的情況是,新的團隊接手一個軟件系統的開發,經常發現需要耗費大量的時間去整理現有代碼結構和變更的原因,由於系統復雜,很多人不願意在這里花費時間,於是采取重寫全部功能的極端方式,完全放棄了之前的代碼。之所以造成這種現象,很大一部分原因是由於代碼變更沒有與對應的需求、任務、bug關聯,無法查找到代碼變更的來龍去脈,新的開發人員不敢在現有系統中做任何改動,擔心動一發而牽全身,造成無法預見的問題。
為了加強代碼變更和需求之間的關聯,微軟TFS在代碼與工作項之間創建了強大的關聯關系,可以通過需求,實現基於代碼行級別的需求跟蹤,精確分析代碼和需求之間的互動關系。
下圖是TFS系統中工作項和代碼直接的關聯關系圖,通過下圖可以看到代碼變更(變更集)與需求關聯在一起,而變更集則包含了每次變更的文件和代碼變化信息。
Figure 1 - TFS工作項和變更集關系圖
基於上述關系,開發人員在簽入代碼時,可以選擇本次簽入的關聯工作項,可以是需求、任務或Bug等任何一種工作項類型,如下圖:
Figure 2 - 簽入代碼時,關聯工作項
當開發團隊按照上面的思路和操作方法簽入代碼時,TFS則在系統中存儲了代碼和相關工作的關聯關系,為研發團隊后續分析問題,修復Bug等提供了數據記錄。通過這種數據關系,也可以很方便的基於需求或者Bug抽取受影響的文件,為發布版本創建增量包提供基礎數據。例如,我們可以使用一個流行的免費工具(Sidekicks http://www.attrice.info/downloads/index.htm),抽取一條需求受影響的全部文件,如下圖:
Figure 3 – 在Sidekicks中,通過工作項查詢獲取所需的工作項
Figure 4 - 將受影響的文檔列表導出成Excel(CVS)文件
Figure 5 - 在Excel中展示需求受影響的代碼文件
http://www.cnblogs.com/danzhang/ ALM MVP 張洪君