再生工程

再生工程是軟體工程里一個重要思想,主要出於如下願望:(1)在商業上要提高產品的競爭力;(2)在技術上要提高產品的質量。

再生工程是軟體工程里一個重要思想,主要出於如下願望:(1)在商業上要提高產品的競爭力;(2)在技術上要提高產品的質量。但這種願望無法靠軟體的維護來實現,因為:(1)軟體的可維護性可能極差,實在不值得去做;(2)即使軟體的可維護性比較好,但也只是治表不治本。再生工程乾脆對已有軟體進行全部或部分的改造,賦予軟體新的活力。
再生工程與維護的共同之處是沒有拋棄原有的軟體。如果把維護比作“修修補補”,那么再生工程就算是“痛改前非”。再生工程並不見得一定比維護的代價要高,但再生工程在將來獲取的利益卻要比通過維護得到的多。
再生工程主要有三種類型:重構、逆向工程和前向工程
重構
重構一般是指通過修改代碼或數據以使軟體符合新的要求。重構通常並不推翻原有軟體的體系結構,主要是改造一些模組和數據結構。重構的一些好處如下:
(1)使軟體的質量更高,或使軟體順應新的潮流(標準)。
(2)使軟體的後續(升級)版本的生產率更高。
(3)降低後期的維護代價。
要注意的是,在代碼重構和數據重構之後,一定要重構相應的文檔。
逆向工程
逆向工程來源於硬體世界。硬體廠商總想弄到競爭對手產品的設計和製造“奧秘”。但是又得不到現成的檔案,只好拆卸對手的產品並進行分析,企圖從中獲取有價值的東西。我的很多同學從事積體電路設計工作,他們經常解剖國外的積體電路,甚至不作分析就原封不動地複製該電路的版圖,然後投入生產,並美其名曰“反向設計”(Reverse Design)。軟體的逆向工程在道理上與硬體的相似。但在很多時候,軟體的逆向工程並不是針對競爭對手的,而是針對自己公司多年前的產品。期望從老產品中提取系統設計、需求說明等有價值的信息。
前向工程
前向工程也稱預防性維護,由Miller倡導。他把這個術語解釋成“為了明天的需要,把今天的方法套用到昨天的系統上”。乍看起來,主動去改造一個目前運行得正常的軟體系統簡直就是“惹事生非”。但是軟體技術發展如此迅速,與其等待一個有價值的產品逐漸老死,還不如主動去更新,以獲取更大的收益。其道理就同打預防性針一樣。所以,預防性維護是“吃小虧占大便宜”的事。

相關詞條

相關搜尋

熱門詞條

聯絡我們