Павловская Паскаль Программирование на Языке Высокого Уровня


SoftCraft: простые ситуации эволюционного расширения
Октябрь 17, 2016 – 11:30
6 Языки программирования

© 2011 г.
Легалов Александр Иванович,
Легалов Игорь Александрович,
Солоха Арсений Федорович

Статья первоначально опубликована в трудах XVI Байкальской Всероссийской конференции «Информационные и математические технологии в науке и управлении» и имеет следующие выходные данные:
Легалов А.И., Легалов И.А., Солоха А.Ф. Эволюционное расширение программ при различных парадигмах программирования. - Труды XVI Байкальской Всероссийской конференции «Информационные и математические технологии в науке и управлении». Часть III. - Иркутск: ИСЭМ СО РАН, 2011. ISBN 978-5-93908-094-1. - С. 42-49.

Преамбула

Эволюционная разработка характеризуется добавлением новых программных объектов в уже написанный код. Эти добавления могут быть комплексными и порождать разнообразные комбинации. Можно выделить ряд типичных ситуаций расширения кода, часто встречающихся на практике [1]:

  • расширение обобщений специализациями и, как следствие, расширение обрабатывающих их обобщающих процедур;
  • добавление новых процедур, обеспечивающих дополнительную функциональность;
  • добавление новых полей данных в существующие типы и изменение в соответствии с этим процедур, осуществляющих обработку измененных программных объектов;
  • добавление новых процедур, предназначенных для обработки только одной из специализаций некоторого обобщения;
  • создание нового обобщения на основе существующих специализаций;
  • добавление в программу мультиметодов, осуществляющих обработку двух или более обобщенных параметров;
  • изменение мультиметодов при добавлении ноавых специализаций в обобщения, используемые в качестве аргументов мультиметодов.

Эти варианты могут встречаться как раздельно, так и совместно. В последнем случае порождаются разнообразные комбинации, реализация которых требует нетривиальных алгоритмических решений. Сложность и гибкость этих решений зависит от используемой парадигмы программирования, которая в ряде случаев позволяет реализовать требуемую ситуацию с применением прямого использования предоставляемых ею инструментальных средств.

Однако существуют ситуации, когда требуемое решение достигается за счет использования дополнительных программных решений, реализующих требуемый конструктив за счет использования множества взаимодействующих между собой программных объектов. Наиболее удачные из таких решений часто оформляются в виде паттернов [2]. В работе рассматриваются особенности прямой реализации описанных выше простых ситуаций для трех парадигм программирования: процедурной, объектно-ориентированной и процедурно-параметрической. Анализируется возможность расширения программы без изменения уже написанного кода...

Source: www.softcraft.ru
Похожие публикации