QuEye CIA 軟體變更衝擊分析器
軟體變更衝擊分析器
軟體開發人員最怕的就是軟體需求變更時修改不完全或改A錯B,導致系統上線出問題。當今系統不僅龐大且變更頻繁,單靠人工依據文件與記憶去分析並找出變更時到底有哪些程式需要修改是非常辛苦且高風險。
QuEye CIA能協助將系統裡眾多程式相互呼叫之關係,以及與資料庫表之關聯性建立完整相依圖,幫助軟體開發人員做好軟體需求追溯及變更衝擊分析工作。
不論新專案開發或既有系統的維護,軟體開發週期中,不同開發階段與不同角色常面臨以下問題:
需求管理的需求追溯課題,如:系統分析師或專案經理需要追溯每個需求是否被落實?
變動管理中衝擊分析課題,如:開發或維護階段面臨需求變動時,如何避免改了一個功能卻創造出其他Bug的窘境?在系統文件不足或文件內容與原始碼脫節情況下接手維護系統,如何快速掌握某個功能相關的原始碼與資料庫表格?
在當前十分重視的資訊安全議題,如何從被掃瞄出的安全弱點中快速評估受影響的程式與功能項目,擬定有效的落實計畫?
軟體變更帶來的衝擊:
成本衝擊: 額外投入修改人力
時程衝擊: 額外投入修改時間
需求品質衝擊: 不正確、不完整、不一致的修改
為何要做變更衝擊分析?
找出影響範圍,避免改 A 壞B
估計變更成本,選擇安全方案
評估變更影響,決定資源配置
查明變更影響,安排迴歸測試
串連資訊孤島,接軌需求追溯與衝擊分析
在軟體的開發生命週期中,各個階段會產出不同類型的產出物,如:系統分析階段的功能性或非功能性需求項目、設計階段的資料模型與資料庫表格、程式開發階段的原始碼與資料庫預儲程序,以及整合測試階段的測試案例與測試程式等各類型的軟體組態項目。要避免前述改了A功能壞了B功能的問題,必須能有效追溯軟體建項目間的相依性,發掘出需求變更所影響的直接與間接關連之原始碼、資料庫表格、…等。目前市場上應用於軟體變更管理的相關工具,需求管理工具、IDE、資料庫管理系統等,分別管理了需求項目、原始碼、資料庫表格與預儲程序等組態項目,但卻是各別儲存而成為資訊孤島不利於相異類型軟體組態項目間的追溯。QuEye CIA 整合了這些不同來源與類型的組態項目,建構了end-to-end 的相依關連(如圖一所示),可透過瀏覽器追溯從需求項目到資料庫表格間相關原始碼與資料庫物件,讓開發人員能從單一視覺化界面,了解落實某個需求的原始碼執行順序與相依關係,大幅改善開發人員切換不同工具的不便,有利維護人員快速掌握系統的實作內容。
圖一. end-to-end 的軟體組態項目追溯
在提升軟體組態項目間相依性追溯的效率方面,QuEye CIA無縫接軌追溯過程與衝擊分析結果,讓需求變更的影響範圍能在分析過程中逐一而完整地記錄下來。如圖二所示的六個步驟,從早期分析階段的需求項目為始,追溯程式開發階段產出的相關原始碼並立即加入初始影響集合;當評估完初始影響集合中各原始碼的修改方式後,可立即追溯初始影響集合的變動,所連鎖影響的其他程式;若找出的影響程式過多,還可利用關連類型、關鍵字等條件縮小範圍,更有效率地評估影響範圍;而在連鎖影響評估過程中所確認須修改的程式,同樣也能立即加入影響集合中,最後匯集初始影響集合的項目而完整記錄需求變動須修改的預估影響集合,包含修改A功能直接影響的程式與呼叫前述程式而受影響的B功能程式。
產品特色
提供端到端的組態項目間的關聯追溯(tracebility)能力,即從需求項目、功能項目到原始碼、資料庫物件(包含資料表格與預儲程序)、與測試案例等類型的關聯追溯。
提供獨特可分析程式、儲存程式(Stored Procedure)與資料表等不同類型軟體組態項目的關聯。
可追溯前端網頁與後端程式間的http request 等動態呼叫關聯。
特殊的封裝寫法無法由靜態分析發掘的相依關聯,也能透過人工建立關聯後由系統自動學習,找出類似的呼叫關聯,提高衝擊分析的正確性與有效性。
同時提供視覺化圖形(call graph) 及相依結構矩陣(Dependency Structure Matrix),以利分析往前(forward)關聯及往後(backward)關聯與呈現直接關聯及間接關聯。
提供Drill-Down的原始碼檢視及搜尋能力,可直接同步檢視程式碼間呼叫的段落,讓新手快速掌握程式邏輯,輕鬆上手,以利分析判斷。
可整合多類型版控系統,以取得待分析的原始碼組態項目。
可整合多類型版控庫與多種資料庫管理系統,以取得待分析的資料庫物件(包含資料表格與預儲程序)組態項目。
提供單一Web介面,可在單一整合平台有效追溯不同類型軟體組態項目的相依關聯,省卻了在不同工具間切換的不便與耗時,消除資訊孤島的困擾。
與問題追蹤系統整合,提供開發人員可以在處理問題單的時候,可以很直覺的進入衝擊分析的評估,減少軟體變更流程中因使用工具的不同而造成斷點,讓開發人員自然而然遵循軟體變更流程。
功能規格
1. 管理組態項目與組態項目間的關聯
建立組態項目: 建立需求項目、功能項目、原始碼、資料庫物件(包含資料表格與預儲程序)、與測試案例等類型的組態項目(Configuration Item) 。
建立組態項目間的關聯: 利用管理介面建立組態項目間的關聯,也可以用Excel格式的關聯清單整批上傳,快速自動建立關聯。
2. 自動解析關聯
⽀援項⽬
程式語⾔
Java、C#、VB、HTML、JavaScript、TypeScript、ANSI SQL-92
軟體框架
Spring MVC、Hibernate、JPA 2.0、Java JAX-RS ASP.NET MVC、NHibernate、ASP.NET Web API、ASP.NET WCF、ASP.NET WebForm、ADO.NET Entity Framework、ADO.NET Data Services
版控系統
Git、Subversion、TFSVC
資料庫類型
Oracle、MSSQL、PostgreSQL、MySQL、Maria、Informix、DB2
3. 相依性查詢
運用相依矩陣圖顯示組態項目之間的關聯,進行相依性查詢。
提供各種不同類型組態項目間的相依資訊,讓不同角色依據各自的需求,選擇適合的角度追溯任二類型組態項目間相依關聯強度。
4. 變更衝擊分析
運用相依樹狀圖進行變更衝擊分析。分析及記錄軟體需求或功能異動所影響的相關組態項目,例如:需求、功能項目、程式碼、或資料表格等,藉由記錄這些異動組態項目的修改說明與預估工時,可以評估需求異動的影響幅度。
提供程式原始碼檢視與相依性關聯等超連結,讓分析的過程能快速掌握相關資訊,以判斷那些組態項目受到影響。
自動解析支援項目
系統效益
產品優勢
執行環境架構
執行環境規格
硬體: 硬碟空間20 GB 以上(不含OS) ;CPU 2 Cores ; RAM 8 GB 以上
作業系統: Linux (CentOS 6) 或Windows, JDK 7
資料庫: PostgreSQL 9.x
Web Application server: Tomcat 7