Most software projects do not have the luxury of starting with a clean slate. Usually, there is a large undocumented legacy code base that must be maintained and extended. This paper presents a case study applying model-based development to maintaining, extending, and replacing an existing code base for a next generation process control system. The piecemeal replacement strategy first breaks the application down into logical components with well defined interfaces, then focuses on improvement and/or replacement within the component boundaries, using UML models. The models provided a robust basis for software development in the face of requirements changes, strict performance and scalability goals, and hardware changes.