Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
74
Добавлен:
10.02.2015
Размер:
289.79 Кб
Скачать

VI. Ввод программы в действие

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

  • Индивидуальная доставка (как правило, разработка для конкретного заказчика).

  • Коробочная доставка.

  • Доставка через Интернет.

В последнем случае есть несколько основных разновидностей доставки.

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

  • Возможность скачать из сети программу и установить ее на своих компьютерах, подобно установке программы, поставляемой в коробке. Интернет неожиданно просто решает проблему распространения программнообеспечения и доставки его до пользователя. На смену десятилетию "коробочных продуктов" (1985—1995) пришли "продукты из Интернета.Причем в Интернете есть две группы программных продуктов:

  • свободно распространяемые программные продукты;

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

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

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

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

VII. Эксплуатация и сопровождение

Под сопровождением будем понимать все действия по повышению надежности программного продукта после завершения отладки и разработку усовершенствованных версий. Пожалуй, основнымпринципом сопровождения является закон Биледи: используемый программный продукт подвергается непрерывным изменениям для поддержания его экономической выгоды [Гласе, Нуазо 1983].

Перечислим четыре основные класса задач, решаемых на этапе сопровождения:

  • адаптация, как правило, заключающаяся в модификации функций.

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

  • коррекция или исправление ошибок.

  • упреждение проблем, которые могут возникнуть в будущем.

Эти категории задач достаточно условны и проблема может быть перенесена из одной категории в другую.

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

  • незначителъные (локальные) изменения;

  • реструктурирование кода — повторная разработка небольшой части программы. При этом интерфейс этой части с остальной программой остается неизменным;

  • реинжиниринг — перестройка существующего программного продукта. Обычно реинжиниринг применяется для приведения кода программы в соответствие с современными методологиями программирования (например, объектно-ориентированной);

  • программирование заново

На выбор типа сопровождения влияют два фактора.

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

  • Стоимость сопровождения. При высокой стоимости сопровождения рекомендуется ориентироваться на реструктурирование и реинжиниринг, при низкой — на незначительные изменения.

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

Существует ряд методов, которые помогают добиться высокого качества провождения.

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

  • Самодокументируемость изменений.

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

  • если никто из коллег не выступит против (в случае пассивного сопротивления);

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

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

  • Функционирование на нескольких аппаратных платформах.

  • Наличие большого количества пользователей.

  • Необходимость тщательного тестирования.

  • Наличие устаревших алгоритмов.

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

Источниками ("возбудителями") основных классов задач сопровожден могут быть:

  • пользователи компилятора, находящие ошибки;

  • разработчики взаимозависимых компонентов (например, отладчика);

  • инженеры, сопровождающие компилятор (например, предлагая повысить эффективность компилятора).

Теперь рассмотрим — как четыре основных класса задач по сопровождению решаются применительно к компиляторам.

  • Адаптация компиляторов предполагает их приспособление к изменившимся условиям работы системы. Все причины изменений могут быть сведены к трем основным.

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

Изменения в операционной системе. Например, операционная система может начать поддерживать многопоточное исполнение, начиная с некоторой версии.

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

  • Усовершенствование компиляторов предполагает внесение в них измененияв интересах заказчика. Выделим несколько основных направлений совершенствования.

Повышение эффективности. Например, оптимизация алгоритмов се­мантического анализа.

Повышение надежности. Информацию к размышлению здесь можнополучить после обработки программы на языке С утилитой расширенного синтаксического анализа lint или утилитой поиска ошибок времени исполнения bcheck.

Необходимость соответствия стандарту языка. В случае изменения стандарта или появления комментариев к стандарту, компилятор должен все эти изменения учитывать.

Необходимость соответствия популярному диалекту языка. Как это ни печально, но иногда даже полностью соответствующий стандартукомпилятор должен допускать (в специально задаваемом пользователем режиме) обработку конструкций, допускаемых другим популярным компилятором. Обычно это диктуется соображениями экономической выгоды.

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

  • Предупреждение проблем может быть проиллюстрировано ставшей уже классической "проблемой 2000 года".

Соседние файлы в папке Лекции разработка ПО