Сопровождение программного обеспечения

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

Сопровождение программного обеспечения (сопровождение ПО; англ. Software maintenance) — процесс улучшения, оптимизации и устранения дефектов программного обеспечения (ПО) после передачи в эксплуатацию.

Определение

По мнению ряда специалистов, сопровождение программного обеспечения — это процесс улучшения, оптимизации и устранения дефектов ПО после передачи в эксплуатацию. Одна из фаз жизненного цикла программного обеспечения, следующая за фазой передачи ПО в эксплуатацию. В ходе сопровождения в программу вносятся изменения, с тем, чтобы исправить обнаруженные в процессе использования дефекты и недоработки, а также для добавления новой функциональности, с целью повысить удобство использования (юзабилити) и применимость ПО[1].

Стандарты

Сопровождение программного обеспечения стандартизовано, имеются национальные стандарты Российской Федерации, идентичные международным (ISO/IEC 12207:2008 System and software engineering — Software life cycle processes, ГОСТ Р ИСО/МЭК 12207-2010 «Национальный стандарт Российской Федерации. Информационная технология. Системная и программная инженерия. Процессы жизненного цикла программных средств»; ISO/IEC 14764:99 Information technology — Software maintenance, ГОСТ Р ИСО/МЭК 14764-2002 «Государственный стандарт Российской Федерации. Информационная технология. Сопровождение программных средств»; IEEE 1219).

Виды работ по сопровождению программного обеспечения

Исходя из содержания стандартов, cопровождение программного обеспечения ― это действия (процессы) программного средства на всем его жизненном цикле с целью поддержания эффективности его эксплуатации, включая в себя такие виды работ/услуг, как[2]:

  • обеспечение работоспособности и функционирования программ для ЭВМ, баз данных, в том числе, при первичной интеграции, тестировании, настройках и изменений (адаптации, переустановки) в программно-аппаратной среде пользователя или исполнителя (при использовании программ для ЭВМ, баз данных через удаленный доступ), контроль за соблюдением прав доступа и распределение прав доступа в соответствии с принятой архитектурой прав доступа;
  • настройка, обеспечение работоспособности и функционирования программно-аппаратной среды исполнителя, предоставленной с целью использования пользователями программ для ЭВМ, баз данных через удаленный доступ (в том числе, с целью тестирования, оптимизации и организации функционирования программ для ЭВМ, баз данных в соответствии с требованиями заказчика);
  • мониторинг функционирования (в том числе, производительности, отказоустойчивости и соблюдения информационной безопасности) программ для ЭВМ, баз данных и устранение ошибок и сбоев в работе программ для ЭВМ, баз данных, в том числе путем тестирования, а также иными способами и средствами;
  • исправление ошибок, несоответствий, инцидентов, дефектов, в том числе в рамках существующих или новых версий программ для ЭВМ, баз данных и мер, направленных на решение таких инцидентов;
  • профилактическая модификация программ для ЭВМ, баз данных после поставки в целях обнаружения и корректировки имеющихся в нем скрытых ошибок для предотвращения явного проявления этих ошибок при эксплуатации данных программ для ЭВМ, баз данных;
  • адаптация, сборка, установка, тестирование обновленных версий и доведение таких новых версий до пользователей, проверка наличия всех новых версий у пользователей;
  • адаптация, настройка и дальнейшая техподдержка программ для ЭВМ, баз данных с учетом особенностей программно-аппаратной среды пользователя или исполнителя;
  • аудит (анализ, обследование, мониторинг и т.д.) установленного у заказчика или исполнителя программного обеспечения на совместимость с программно-аппаратной средой заказчика/исполнителя, предназначенной для использования программ для ЭВМ, баз данных;
  • обеспечение автоматического обновления нормативно-справочной информации, необходимой для функционирования программ для ЭВМ, баз данных в соответствии с требованиями Российской Федерации;
  • прием обращений пользователей программ для ЭВМ, баз данных, выполнение работ/услуг, связанных с такими обращениями;
  • информационно-справочная поддержка функционирования программ для ЭВМ, баз данных, в том числе рекомендации, консультации по установке, настройке и работе программ для ЭВМ, баз данных, восстановлению работоспособности, по типовому функционалу и его обновлению, модификации и аналогичных консультаций, связанных с использованием программ для ЭВМ, баз данных;
  • консультирование, обучение, тренинги по вопросам использования (работы) программ для ЭВМ, баз данных, по его функционалу.

Границы применимости

Существуют две точки зрения на границы применимости термина «сопровождение ПО»:

  1. Сопровождение автоматизированных информационных систем не выделяется из сопровождения любого другого ПО.
  2. Сопровождение ПО не включает сопровождение автоматизированных информационных систем (АИС), так как сопровождение последних имеет существенные отличия.

Стадия создания автоматизированной системы «сопровождение автоматизированной системы» включает два этапа работ[3]:

  1. «выполнение работ в соответствии с гарантийными обязательствами»,
  2. «послегарантийное обслуживание».
Сопровождение ПО vs поддержка ПО

С точки зрения границы применимости терминов «сопровождение ПО» и «поддержка ПО»:

  1. Эти два термина — синонимы.
  2. Это два разных термина.

«Сопровождение ПО» осуществляется сопроводителем. Сопроводителем может быть внешняя организация или же сама та организация (её отдел, отдельный сотрудник), которая использует ПО в своей работе. «Поддержка ПО» осуществляется исключительно сотрудниками отдела той организации, которая использует ПО в своей работе (эта организация называется «заказчик» ISO/IEC 14764:99). Это менее квалифицированные специалисты, чем сопроводители, а потому они не выполняют полностью тех работ, которые предусмотрены ISO/IEC 14764:99. Например, сотрудники отдела поддержки не выполняют работы по обнаружению и корректировке скрытых ошибок для предотвращения явного проявления этих ошибок.

Фаза жизненного цикла продукта

В модели водопада[4] «сопровождение ПО» выделяется в отдельную фазу жизненного цикла.

В спиральной модели, возникшей в ходе развития объектно-ориентированного программирования, сопровождение не выделяется как отдельный этап. Тем не менее, эта деятельность занимает значительное место, учитывая тот факт, что обычно около 2/3 жизненного цикла программных систем занимает сопровождение. «Сопровождение программного средства может в стоимостном выражении составлять наибольшую часть жизненного цикла» (ISO/IEC 14764:99).

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

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

«Характеристики, описывающие качественные и количественные требования к сопровождаемости программного средства, устанавливает заказчик. В данных характеристиках должны быть установлены соответствующие критерии и способы их проверки… Разработчики должны реализовывать требования к сопровождаемости, а сопроводители должны контролировать их реализацию» (ISO/IEC 14764:99).

Типы сопровождения

Выделяют три типа сопровождения[5]:

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

Структура сопровождения ПО

Выделяют следующие линии внешнего сопровождения ПО[5]:

  • 0 линия (call-center, информационный центр, горячая линия) — обработка телефонных обращений от клиентов, передача обращений техническим специалистам (1-я линия сопровождения)
  • 1 линия (инженер по сопровождению, инженер технической поддержки, support engineer) — консультация/настройка/устранение ошибок в работе ПО/наполнение базы знаний, составление мануалов
  • 2 линия (инженер по сопровождению, инженер технической поддержки, support engineer) — функциональное сопровождение/проектная деятельность на этапе запуска ПО на машинах заказчика
  • 3 линия (инженер по сопровождению, инженер технической поддержки, support engineer) — системное сопровождение/проектная деятельность на этапе запуска ПО на оборудовании заказчика

Работу инженера по сопровождению ошибочно сравнивают с работой информационного центра. Однако по функционалу эти специалисты принципиально различаются — если call-center фактически аккумулирует обращения пользователей, то сопровождение является центральным звеном в цепочке разработки и доработки ПО, которое решает проблемы, возникающие в период эксплуатации ПО (системы, сервиса)[5].

См. также

Ссылки

Источники

  1. Информационные системы и технологии/науч. ред. В. М. Глущенко ― М.: МГУУ Правительства Москвы, 2012. ― 438 с. ― ISBN 978-5-98279-959-3
  2. 3. По вопросам разъяснения термина "сопровождение" применительно к программам для ЭВМ, базам данных (программным средствам и информационным продуктам вычислительной техники)//Письмо Минцифры России от 07.09.2021 N П11-2-05-200-38749 "О рассмотрении обращений субъектов предпринимательской деятельности и заинтересованных лиц в сфере информационных технологий"
  3. ГОСТ 34.601-90 «Государственный стандарт Союза ССР. Информационная технология. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Стадии создания»
  4. Мезенцев К. Н. Автоматизированные информационные системы: учебник. ― М.: Академия, 2013 ― 176с. ― С. 57-58 ― ISBN 978-5-7695-9885-2
  5. 5,0 5,1 5,2 Федорова Г.Н. Разработка, внедрение и адаптация программного обеспечения отраслевой направленностиМ.:ИНФРА-М, 2016. ― 332с. ― ISBN 978-5-906818-41-6