軟體再工程
出自 MBA智库百科(https://wiki.mbalib.com/)
目錄 |
軟體再工程是對成品軟體系統進行再次開發.軟體維護期的適應性維護、完善性維護和預防性維護都屬於再工程範疇。與從無到有的軟體開發不同,再工程面對的不是原始需求.而是已經存在的軟體系統.是從已經存在的軟體起步開發出新軟體的過程很多遺產系統正在被逐步地利用起來.但利用遺產系統的同時。會遇到許多困難。最重要的一個問題就是:現有的遺產系統沒有好的可演化性.這樣就使得我們無法利用簡單的方法把遺產系統轉化為一個新的系統。在這種情形下.再工程變得越來越重要。通過再工程提供的一整套嚴格定義的方法和活動,可以有效地使遺產系統得到再利用,提高其可演化性.適應新的軟體生存周期模型的需求。
軟體再工程是為了以新的形式重構已存在的軟體系統而進行的檢測、分析、更替、以及隨後的對新形式的實現。這個過程包括了其他一些過程.諸如逆向工程、文檔重構、結構重建、相關轉換以及正向工程等。它的目的是理解一已存在的軟體,然後對它重新實現以期增強它的功能.提高它的性能,或降低它的實現難度。客觀上達到維持軟體的現有功能併為今後新功能的加入做好準備的目標。
軟體再工程有兩個突出特征:
一是比一次軟體工程更迫切地需要電腦輔助支持,二是測試工作比例遠大於一次軟體工程。前者在再工程方法學研究和軟體模式運動推動下可以找到自動化解決方案,後者則須強化對測試方法學體系的研究。
二者恰好構成了對軟體工程方法學薄弱環節研究的推動力。這種推動力來勢之猛很難估量,上個世紀末以來發展迅速的電子商務、電子政務等都屬再工程範疇。微軟的WilliamGates在1999年曾指出,測試將是今後軟體工程最重要的研究領域。更有不少人指出:21世紀軟體維護技術與測試技術將並行發展。
嚴格地說,再工程的潛在需求儘管大得不可估量,但目前只能說是進入了再工程時代。其理由眾所周知:一是資金不足一再工程需要大量投資;二是軟體開發人員不足。所以除了應付尚未實施的一次軟體工程外,可以有計劃地投人再工程的資源很有限。目前的再工程主要為三類:
1.適應性維護的再工程
(1)伴隨硬體和操作系統更新換代的軟體維護。像小型機換PC機、PC機換Unix工作站、Win95換WinXP所帶來的軟體維護。
(2)業務環境變化帶來的軟體維護。譬如由於企業業務的發展和系統使用年限的增加,既存系統的存儲媒體和數據管理系統滿足不了數據量及其種類劇增的要求,需要更新資料庫系統;隨外部條件變化而必須修改部分數據變數定義或演算法,例如征收消費稅的法律修訂、郵政編碼位數改變、2000年問題等。
(3)系統運行環境變化帶來的軟體修正。如由主機方式變為客戶/伺服器方式,由客戶/伺服器方式變為Web方式,這時的系統體繫結構必須做相應的改變。
(4)適應系統開發環境變化的軟體維護。有一些軟體,主要是定製軟體,如ERP軟體等,其軟體再工程常伴隨企業的BPR發生,所以開發環境也需隨經常性的系統完善性再工程而更新,譬如PowerBuilder等開發環境的升級換代如同操作系統一樣頻繁發生。
2.善性維護的再工程
增加或修改功能,以提高系統的安全性、處理能力等性能。
3.預防性維護的再工程
為了提高可維護性而對系統進行優化(再結構化、再標淮化等),對文檔進行重構,對數據進行重組。