-
軟件再工程
鎖定
- 中文名
- 軟件再工程
- 外文名
- software reengineering
- 主要活動
- 逆向工程、文檔重構、結構重建等
- 目 標
- 提高可維護性等
- 實踐方法
- ”大爆炸”方法等
- 學 科
- 計算機科學技術
軟件再工程簡述
軟件再工程是預防性維護所錄用的主要技術,是為了以新形式重構已存在軟件系統而實施的檢測、分析、受替,以及隨後構建新系統的工程活動。這個過程包括其他一些過程,諸如逆向工程、文檔重構、結構重建、相關轉換以及正向工程等。軟件再工程的目的是理解已存在的軟件(包括規範、設計、實脱),然後對該軟件重新實現以期增強它的功能,提高它的性能,或降低它的實現難度,客觀上達到維持軟件的現有功能併為今後新功能的加入做好準備的目標。
軟件再工程的對象是某些使用中的系統,這些系統常常稱為遺留系統。遺留系統通常缺乏良好的設計結構和編碼風格。因此,對該類軟件的修改費時費力。同時,相關的公司或組織由於長久地依賴它們,不怨或不太可能將這螻遺留系統完全拋棄。這樣,軟件再工程所面臨的挑戰就是對這些系統進行分析研究,利用好的軟件開發方法,重新構造一個新的目標系統,這樣的系統將保持坂系統所需要的功能,並使得新系統易於維護。簡而言之,軟件再工程就是將新技術和新工具應用於老的軟件的一種較徹底的一種預防性維護。軟件再工程還可以理解成“把今天的方法學用於昨天的系統以滿足明天的需要”。
[2]
軟件再工程目標
一般來説,軟件再工程的具體目標有以下4個方面。
(1)為追加、增強功能做準備。軟件再工程通過對原系統用新的設計思想(如面向對象的思想)加以重新實現,對原有文檔實現更新。使今後能方便地對系統進行功能的追加和增強。
(2)提高可維護性。經過不斷維護日趨複雜的系統.經過軟件的再工程和再設計,其模塊劃分會更合理,接口定義更清晰,文檔更齊全,從而更易維護。
(3)軟件的移植。軟件再工程將一些優秀軟件移植到新硬件平台、操作系統或語言環境中,從而使它們能夠利用新環境的新特性,更好地發揮作用。
軟件再工程過程
在Pressman建議的一個軟件再工程過程模型中,它為軟件再方程定義了6類活動:一般情況下,這些活動是順序發生的,但每個活動都可能重複,形成一個循環的過程。這個過程可以在任意一個活動之後結束。以下從信息庫分析開始,依次塒符類活動做簡要説明。
信息庫中保存了由軟件公司維護的所有應用軟件的基本信息.包括應用軟件的設計、開發及維護方面的數據,例如最初構建時間、以往維護情況、訪問的數據庫、接口情況、文檔數量與質量、對象與關係、代碼複雜悱等。在確定對一個軟件實施再工程之前。首先要收集上述這些數據,然後根據業務重要程度、壽命、當前可維護情況等對應軟件進行分析。
文檔重構是重新構建原本缺乏文檔的應用系統的文梢。根據應用系統的重要性和複雜性。可以選擇對文檔全部重構或維持現狀。
逆向工程是一個恢復原設計的過程。通過分析現存的程序,從抽取數據、體系結構和過程的設計信息。
代碼重構是在保持系統完整的體系結構基礎上,對應用系統中難於理解、測試和維護的模塊重新進行編碼,同時更新文檔。
數據重構是重新構建系統的數據結構。數據重構是一個全範圍的再工程活動,它會導致軟件體系架構和代碼的改變。