То, что вам нужно, это не AOP, а программа преобразования система, которая обобщает AOP. Это позволяет определить набор автоматических модификаций базы кода и надежно их выполнять. Вы не можете вручную изменять 1000 сложных ссылок; вместо этого вы представляете, как определить преобразование, которое будет обрабатывать все случаи, и позволить инструменту надежно применить его для вас.
Я не могу говорить за ваше веб-приложение, но у меня есть два конкретных примера, где я успешно применил это.
1) Boeing необходимо радикально реструктурировать до 6000 компонентов, каждый из которых закодирован как набор взаимодействующих классов C ++ (часто на общую сумму 3-10 тыс. SLOC) от унаследованной распределенной архитектуры до той, в которой каждый взаимодействующий элемент стал функцией в фасете CORBA. , Используя мою компанию
DMS Software Reengineering Toolkit , система преобразования программ, способная точно преобразовывать C ++, мы внедрили инструмент для осуществления этих изменений. Инструмент изменял в среднем одну строку из трех, но мог преобразовать компонент примерно за 5 минут. Получившееся преобразование было завершено на 98% и потребовало некоторой скромной доработки, но оказалось гораздо более эффективным, чем предполагаемый 1 человеко-месяц, для ручной модификации каждого компонента.
Это лучше всего рассматривать как масштабную реархитектуру структуры программного обеспечения с помощью инструментов.
Вы можете прочитать об этом в технической статье:
Акерс Р., Бакстер И., Мелих М., Эллис Б., Люк К., Практический пример: реинжиниринг моделей компонентов C ++ с помощью автоматического преобразования программ, информационно-программных технологий 49 (3) : 275-291 2007. Доступно с издателя.
2) У ВВС США есть устаревшие системы, которые летают. Одним из них является бомбардировщик B-2, в котором установлены лучшие в мире микропроцессоры 1975 года. Код, используемый в этих программах, - это / был JOVIAL, одобренный язык ВВС до того, как Ада стала излюбленным языком (до того, как все ослабли, и теперь военные рассматривают только ужасные языки для разработки программного обеспечения). Код запускает самолет. OTOH, им нужно было выйти из JOVIAL, потому что поддержка микропроцессоров (например, физической доступности процессоров, инструментов разработки и даже людей, желающих изучать JOVIAL) быстро уменьшалась. Мы создали для них переводчик JOVIAL-C, используя ту же DMS, и выполнили 100% преобразование, даже не увидев оригинальный код (черная программа ...)
См. Преобразование бомбардировщика B-2 для получения дополнительной информации. B-2 модернизируются
с преобразованным программным обеспечением, как мы говорим.
Теперь в обоих случаях потребовалось некоторое время для ручной настройки преобразований. Но усилия по настройке были крошечными по сравнению с оценочной стоимостью выполнения работы вручную.
Итак, да, такие инструменты работают очень хорошо, если вы понимаете, как их использовать, и да, мы абсолютно намерены использовать их снова.