Каким образом, если
архитектура проекта сложна и невозможно понятьИ самое главное, кто за это будет отвечать?
Если архитектура проекта сложна и невозможно понять, как отдельные модули коммуницируют друг с другом, то надо бросать такой проект, ничего здесь уже невозможно сделать.
С другой стороны, если есть хорошая документация и вы понимаете архитектуру, можно сделать приоритетный список, в какой последовательности делать апгрейд каждого модуля (а-ля черного ящика) и что должно получиться на входе и выходе, и вполне можно переписать все компоненты с использованием новейших технологий.
Реализация — это всего-лишь скилет, его можно и нужно периодически менять, а вот данные внутри — это та кровь, которая циркулирует по телу, поэтому плясать в любом проекте нужно от данных, передаваемых с помощью современных коммуникационных стандартов, например, json, OAI или SOAP.
Звучит хорошо, но не проще ли в этом случае переписать все заново? :)