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