王 陽, 張振華, 孔祥營
(江蘇自動化研究所, 江蘇 連云港 222061)
復雜軟件系統[1]是指由多個具有獨立功能的子系統集成、耦合而成的大型軟件系統,各軟件子系統間功能相對獨立且關系錯綜復雜,整個系統的行為難以通過各子軟件系統特征的簡單疊加加以刻畫,能夠完成復雜、多任務關聯的大型任務。復雜軟件系統是一個多任務系統相互聯結交互的復雜系統,這些基礎軟件系統的運行狀態直接影響到整個系統的性能與任務的運行安全[2]。
復雜軟件系統包含眾多子系統,每個子系統又包含諸多的功能模塊,子系統間含有繁雜的任務構件等,這些系統不可能由一個開發團隊完成,往往需要多家單位、科研院所協作才能夠完成。對于已經投入使用的復雜軟件系統,由于新的需求、操作使用、運行維護等目的,需要在原有的系統上進行修改和擴充是很困難的,會遇到設計風格不一致、編程語言版本的差異、接口定義的不規范、開發文檔的丟失不完整和難于理解等諸多問題。由于復雜軟件系統運行環境多種多樣,特別是在惡劣、極端環境中,極易影響軟件的正常運行,傳統基于人工調試的軟件維護模式,難以應對錯綜復雜的軟件運行環境。因此軟件系統在所處環境變化時,具有良好的適應能力,變得尤為重要。這時候,為了延長舊系統的生命周期,降低系統維護成本,就可以采用以原有系統進行重構的方法對軟件進行重構,使其在改善程序結構的基礎上適應需求的變化。……