В связи с тем, что почти каждые 8–10 лет происходит смена архитектур компьютеров, ЯП и операционных сред, возникают проблемы сопровождения готовых ПС и их компонентов в новой среде или архитектуре, решение которых приводит к изменению либо обновлению отдельных элементов системы или системы полностью.
В общем, процесс изменения ПС проводятся путем:
– анализа исходного кода для внесения в него изменений;
– настройки компонентов и системы на новые платформы;
– кодирования и декодирование данных при переходе с одной платформы на другую;
– изменения функций системы или добавления новых;
– расширения возможностей (сервиса, мобильности и др.) компонентов;
– преобразования структуры системы или отдельных ее компонентов.
Сущность всех видов изменений в один компонент и совокупности компонентов ПС направлена на придание старой ПС нового назначения и определения условий применения.
Методы изменения ПС служат способом продления жизни наследуемых и стареющих программ. С теоретической точки зрения эти методы изучены недостаточно, а с практической точки зрения многие программисты решают задачи внесения изменений в ПС постоянно. Например, широкий круг специалистов охватила проблема 2000 года и ее решение мировым сообществом, а также создание современных оффшорных зон (Индия, Россия, Украина и др.) для систематической переделки функционирующих программ к новым возможностям ОС, языков и платформ современных компьютеров и т.п.
Процесс обновления компонента включает в себя [14–20]:
– реинженерию, целью которой является перепрограммирование отдельных компонентов с учетом новых ЯП и условий новых платформ и сред, а также расширение возможностей ПС;
– рефакторинг, в задачу которого входит изменение существующего компонента или его адаптация к новым условиям вместе с изменением его интерфейсов (добавление, расширение и т.д.) или изменения механизмов управления экземплярами компонентов (добавление новых функций) или системных сервисов;
– реверсная инженерия, цель которой – перестройки или полная переделки компонентов, а иногда и перепрограммирование системы в новый ЯП.