卓晖冠科認爲從軟件工程的(de)觀點來(lái)看,軟件工具能夠支持軟件生存期的(de)各個(gè)階段。
軟件工具的(de)種類繁多(duō),從軟件過程的(de)觀點通(tōng)常可(kě)以分(fēn)爲:項目管理(lǐ)工具、配置管理(lǐ)工具、分(fēn)析和(hé)設計工具、程序設計工具、測試工具以及維護工具等。
(1)項目管理(lǐ)工具:支持項目管理(lǐ)活動的(de)工具。通(tōng)常,這(zhè)類工具把重點放在特定的(de)管理(lǐ)環節上,例如工作量、成本和(hé)工期估算(suàn)以及項目調度計劃等。
(2)配置管理(lǐ)工具:支持完成配置項标識、版本控制、變化(huà)控制、審計和(hé)狀态統計等任務的(de)工具。
(3)分(fēn)析和(hé)設計工具:輔助建立軟件的(de)系統模型和(hé)設計的(de)工具。分(fēn)析和(hé)設計引擎将成爲新一代分(fēn)析設計工具,該工具可(kě)以對(duì)任何分(fēn)析和(hé)設計方法進行定制,根據需要,支持特定的(de)分(fēn)析和(hé)設計方法。
(4)程序設計工具:包括常規的(de)編碼工具——編譯程序、編輯程序、排錯程序及第四代語言、應用(yòng)程序生成器、數據庫查詢語言和(hé)面向對(duì)象(OO)程序設計環境等。
(5)測試工具:可(kě)以分(fēn)爲數據獲取工具、靜态分(fēn)析工具、動态分(fēn)析工具、模拟工具以及測試管理(lǐ)工具等。其中,靜态分(fēn)析工具通(tōng)過對(duì)源程序的(de)程序結構、數據流和(hé)控制流進行分(fēn)析,得(de)出程序中函數(過程)的(de)調用(yòng)與被調用(yòng)關系、分(fēn)支和(hé)路徑、變量定義和(hé)引用(yòng)等情況,發現語義錯誤。動态分(fēn)析工具通(tōng)過執行程序,檢查語句、分(fēn)支和(hé)路徑覆蓋,測試有關變量值的(de)斷點,即對(duì)程序的(de)執行流行探測。另一類動态分(fēn)析工具稱爲截獲/播放工具。測試管理(lǐ)工具用(yòng)以控制并協調軟件測試的(de)每一個(gè)主要步驟,進行回歸測試,比較運行結果和(hé)期望輸出之間的(de)差異,并可(kě)實施程序的(de)成批測試。
(6)維護工具:支持軟件維護的(de)工具。大(dà)緻可(kě)分(fēn)爲逆向工程工具和(hé)再生工程工具。逆向工程工具對(duì)已經開發完成的(de)源程序進行分(fēn)析,抽取程序的(de)系統結構、控制結構、邏輯流程、數據結構和(hé)數據流等信息,并生成分(fēn)析和(hé)設計模型以及其它設計信息。再生工程工具用(yòng)來(lái)支持重構一個(gè)功能和(hé)性能更爲完善的(de)、改進的(de)軟件系統。