Сопровождение ПО — совокупность действий по обеспечению работы ПО, а также по внесению изменений в случае обнаружения ошибок в процессе эксплуатации, по адаптации ПО к новой среде функционирования, а также по повышению производительности или улучшению других характеристик ПО. В связи с решением проблемы 2000 года сопровождение стало рассматриваться как более важный процесс, который должны осуществлять разработчики. Новая версия системы должна решать те же самые задачи, иметь план переноса информации в другие обновленные БД и учета стоимости сопровождения. Сопровождение (в соответствии со стандартами ISO/IEC 12207 и ISO/IEC 14764) считается модификацией программного продукта в процессе эксплуатации при условии сохранения целостности продукта.
Область знаний Сопровождение ПО (Software maintenance) состоит из следующих разделов:
- основные концепции (Basic Concepts),
- процесс сопровождения (Process Maintenance),
- ключевые вопросы сопровождения ПО (key Issue in Software Maintenance) ,
- техники сопровождения (Techniques for Maintenance)
Сопровождение рассматривается с точки зрения удовлетворения требований к созданному ПО, корректности его выполнения, процессов обучения и оперативного учета процесса сопровождения.
Сопровождение программного обеспечения определяется как вся совокупность деятельности, необходимой для обеспечения эффективной поддержки программных систем. Эти работы выполняются как перед вводом системы в эксплуатацию, так и после этого. Предварительные работы включают планирование деятельности по сопровождению системы, а также организацию перехода к ее полнофункциональному использованию. Если новая система должна заменить старую систему, предназначенную для решения тех же задач, просто на новом уровне эффективности, стоимости использования, новых функциональных возможностей, в этом случае важно обеспечить плавный переход со старой системы на новую, максимально естественный для пользователей. С этим связано не только планирование, например, переноса информации, хранимой в соответствующих базах данных, но и обучение пользователей.
Сопровождение поддерживает функционирование программного продукта на протяжении всего периода его эксплуатации. В процессе сопровождения фиксируются и отслеживаются запросы на модификацию, оценивается влияние предлагаемых изменений, модифицируется код и другие элементы продукта, проводится необходимое тестирование и, наконец, выпускается обновленная версия продукта. Кроме того, проводится обучение пользователей и обеспечивается их ежедневная поддержка при работе с текущей версией продукта.
Специалист, занимающийся сопровождением, может получать знания о программном продукте непосредственно от разработчиков.
Взаимодействие с разработчиками и раннее привлечение этих специалистов помогает уменьшить усилия, необходимые для адекватного сопровождения программной системы. Передача знаний сопроводителю, его обучение, должно начинаться не позднее начала опытной эксплуатации продукта. Специалист, занимающийся сопровождением должен иметь доступ к активам проекта (описанию его внутренней архитектуры), включая код, документацию. Как правило, основная нагрузка на службу сопровождения приходится на период первых 2-6 недель с момента передачи системы в эксплуатацию.
Инженеры по технической поддержке производителя программного обеспечения должны не просто иметь доступ ко всем ключевым активам проекта (код, документация, спецификации требований, внутренние модели), но в их обязанности входит исправлений ошибок и, в особых случаях, такие изменения, до выпуска новой версии продукта, создаются с привлечением непосредственно разработчиков продукта. При этом, разработчики продукта информируются о найденных ошибках и, в случае нахождения соответствующих решений специалистами технической поддержки, такие решения передаются разработчикам с тем, чтобы те либо включили такие изменения в новую версию программного продукта, в случае успешного прохождения всех необходимых тестов, либо нашли более адекватное решение.
В обязанности инженеров службы сопровождения, в общем случае, входит:
— проверка пользовательского сценария, приводящего к сбою;
— идентификация причин сбоя, т.е. локализация ошибки/причин ее появления;
— предоставление соответствующих исправлений или, при невозможности создания таковых на данном этапе либо в заданные сроки — предоставление обходного пути решения проблемы для достижения требуемых задач;
— журналирование всех работ и операций; помещение описания проблемы и ее решения в базу знаний службы сопровождения; передача всей информации разработчикам.
Процесс сопровождения включает:
модели процесса сопровождения и планирование деятельности людей, которые проводят запуск ПО, проверку правильности его выполнения и внесения в него изменений. Процесс сопровождения согласно стандарту ISO/IEC 14764 проводится путем:
- корректировки, т.е. изменения продукта для устранения обнаруженных ошибок или нереализованных задач;
- адаптации, т.е. настройки продукта в изменившихся условиях эксплуатации или в новой среде выполнения данного ПО;
- улучшения, т.е. эволюционного изменения продукта для повышения производительности или уровня сопровождения;
- проверки ПО с целью поиска и исправления ошибок, обнаруженных при эксплуатации системы.
Ключевые вопросы сопровождения ПО.
Основными из этих вопросов являются управленческие, измерительные и стоимостные. Сущность управленческих вопросов состоит в контроле ПО в процессе модификации, совершенствовании функций и недопущении снижения производительности системы. Вопросы измерения связаны с оценкой характеристик системы после ее модификации, а также повторного тестирования и оценки показателей качества. Стоимостные вопросы связаны с оценкой затрат на сопровождение ПО в зависимости от его типа, квалификации персонала, платформы и др. Знание этих факторов часто позволяет уменьшить затраты.