在軟體專案管理中,訂製軟體需求規格是很重要的關鍵,實務中便是根據需求規格進行設計和開發。然而,如果在完成實作後才發生改變需求的狀況,其所需的代價端看要如何選擇什麼樣的解決策略。如果是在現有架構下進行重組重構、或是整體重新設計軟體架構,所需要的人力時間成本是各不相同的。 M-FTVM是中央大學資訊工程研究所平行與分散式運算實驗室提出針對網路服務的容錯系統架構。在進行相關研究時發現,商用虛擬化軟體VMware可以在虛擬機失效轉移後,無痛地繼續對虛擬機進行容錯保護。但M-FTVM在設計之初,便已分歧為主要端和備援端不同的需求,依各自的需求進行開發。因此在現行設計下,無法在失效轉移後繼續對虛擬機提供容錯保護。如果要重新開啟容錯,必須關閉再重啟虛擬機,而虛擬機上的網路服務勢必會中斷。為了解決這樣新的需求,將主要端和備援端程式合併會是必要條件。儘管主要端和備援端是基於同一份開源專案,雖然它們功能相異但當中仍具有部分重疊函式,這樣特殊狀況對於合併可能會造成未知的衝突。因此,本研究基於已知的重組方法,提出了一個有系統地合併方法得保證行為和正確性,並應用此方法成功合併了M-FTVM主要端和備援端,並添加無痛重啟容錯的功能。 ;Regarding software project management, defining software requirement specifica-tion(SRS) is the most important step, that’s what programmers’ implementation de-pending on during the development practice. But what if the requirement was modified after implementation completed, and what’s the cost of corresponding strategy? It takes different man-month cost if refactoring/restructuring under current architecture or re-designing the entire software architecture. M-FTVM is a virtual machine fault-tolerance mechanism based on KVM pro-posed by NCU PDC-Lab. However, when surveying the fault tolerance related works, we found the commercial virtualization software VMware can re-active the fault toler-ance mechanism with less penalty after VM failover. On the other hand, M-FTVM had branched into Primary and Backup from the initial design because different requirement. Which means, under current designed architecture, M-FTVM cannot re-active fault-tolerance mechanism directly after failover. if we would like to re-active fault-tolerance mechanism, it has to re-create VM, then the service on the VM must in-terrupt. To solve this new requirement for M-FTVM, merging Primary and Backup program would be necessary. In spite of Primary/Backup is based on the same open-source project and different functionality, but there are still partial-overlapped functions in each other, these cases might cause unknown conflict during mergence. Therefore, this paper proposed a systematically merging methodology based on known restructuring techniques to preserve the behavior and correctness. By applying this method, we merged M-FTVM successfully, added the function of re-active fault-tolerance mechanism directly after failover.