Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка для ИГА.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.58 Mб
Скачать

Вопрос 10 Способы изменения программ.

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

Размножение окрестности

Сначала создается дубль исходного текста программы, содержащей вариантный фрагмент. Порожденный дубль подвергается редактированию, в результате которого старый вариантный фрагмент заменяется новым. Таким образом появляются два текстовых файла-близнеца, отличающиеся друг от друга только вариантными фрагментами. Для участия в последующих трансляции и сборке конкретных конфигураций программы выбирается один из сформированных файлов- близнецов.

Недостатки

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

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

Достоинства

  • Изменение программы, связанное с появлением вариантного фрагмента, выполняются тут безболезненно. Дело в том, что при размножении текста старый текст сохраняется в неизменном виде, тем самым практически исключается возможность нарушения работоспособности отлаженной ранее версии программы.

  • Безболезненно выполняется и обратная операция, ликвидирующая вариантность.

Использование подпрограмм

Вариантный фрагмент извлекается из окружающего его текста и выносится в самостоятельный модуль. На его месте в исходном тексте записывается оператор вызова подпрограммы,

Вынесенный вариантный фрагмент превращается в соответствующую подпрограмму, для этого к нему добавляется заголовок подпрограммы, содержащий имя подпрограммы и спецификации ее параметров. Новый вариантный фрагмент также оформляется в виде подпрограммы, расположенной в отдельном модуле. Тексты заголовков подпрограмм для старого и нового вариантных фрагментов совпадают.

В последующей сборке любой конкретной конфигурации программы участвует только один из модулей-подпрограмм. Заметим, что обычно такое попеременное участие в сборке проще организовать, если сформированные сменные модули-подпрограммы допускают автономную трансляцию.

Недостатки:

  • С точки зрения безболезненности выполнения изменений текста применение подпрограмм значительно уступает размножению окрестности. Исходная версия программы здесь претерпевает значительные изменения: добавляются оператор вызова подпрограммы, заголовок подпрограммы. Работоспособность исходной версии сохранится лишь в случае, если все соответствующие редактирующие действия будут выполнены безошибочно. Предположение о безусловной безошибочности редактирования нельзя при­знать реалистичным. Отсюда следует, что применение аппарата подпрограмм для оформления варианта свойством безболезненности не обладает.

  • Не будет безболезненным и обратное преобразование текста программыя.

Достоинства:

  • При описанном способе оформления варианта в программном фонде дублируются только заголовки формируемых подпрограмм. Размеры заголовков, вообще говоря, существенно меньше, чем размеры повторяющегося текста при размножении окрестности, рассмотренном в предыдущем разделе.

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

  • Кроме того, если обе вариантные подпрограммы уже полностью оформлены, то безболезненно проводятся также подключение и отключение третьего и последующих вариантов. Дело в том, что подключение варианта сводится здесь к добавлению, а отключение — к ликвидации соответствующего сменного модуля-подпрограммы. При этом существующие исходные тексты никак не затрагиваются, а значит, остающиеся версии программы не могут потерять работоспособность