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