Legacy application modernization services: a practical implementation guide
In five phases: assess what the system really does, wrap it in characterisation tests, cut a seam so new code runs beside old, replace modules in business-pain order behind a routing layer, then cut over function by function. Nothing is switched off until its replacement has run in production.