Аннотация:
Эволюция сложных программных систем требует от разработчика повышенного внимания к выбору их архитектуры. Сложившаяся ситуация с проектированием подтверждает, что практически всегда во время разработки программных систем появляются новые требования со стороны заказчика, и приходиться пересматривать первоначальную архитектуру. Не исключены и просчеты исполнителей на этапах проектирования и кодирования системы. Отсюда повышенный интерес к вопросам рефакторинга программных систем. В то же время актуальность проблемы проектирования архитектуры программных систем и ее рефакторинга пока не нашла должного отражения в опубликованной литературе. Вопросам архитектурного рефакторинга посвящено незначительное количество работ. В данной работе рассматривается задача структурного рефакторинга многослойных программных систем c целью повышения производительности системы. Предлагается подход к представлению структур многослойных программных систем. Дается математическая постановка задачи структурного рефакторинга в виде задачи линейного программирования с булевыми переменными и обсуждается подход к ее решению.