Сопровождение программного обеспечения
Сопровождение программного обеспечения (сопровождение ПО; англ. 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]:
- обеспечение работоспособности и функционирования программ для ЭВМ, баз данных, в том числе, при первичной интеграции, тестировании, настройках и изменений (адаптации, переустановки) в программно-аппаратной среде пользователя или исполнителя (при использовании программ для ЭВМ, баз данных через удаленный доступ), контроль за соблюдением прав доступа и распределение прав доступа в соответствии с принятой архитектурой прав доступа;
- настройка, обеспечение работоспособности и функционирования программно-аппаратной среды исполнителя, предоставленной с целью использования пользователями программ для ЭВМ, баз данных через удаленный доступ (в том числе, с целью тестирования, оптимизации и организации функционирования программ для ЭВМ, баз данных в соответствии с требованиями заказчика);
- мониторинг функционирования (в том числе, производительности, отказоустойчивости и соблюдения информационной безопасности) программ для ЭВМ, баз данных и устранение ошибок и сбоев в работе программ для ЭВМ, баз данных, в том числе путем тестирования, а также иными способами и средствами;
- исправление ошибок, несоответствий, инцидентов, дефектов, в том числе в рамках существующих или новых версий программ для ЭВМ, баз данных и мер, направленных на решение таких инцидентов;
- профилактическая модификация программ для ЭВМ, баз данных после поставки в целях обнаружения и корректировки имеющихся в нем скрытых ошибок для предотвращения явного проявления этих ошибок при эксплуатации данных программ для ЭВМ, баз данных;
- адаптация, сборка, установка, тестирование обновленных версий и доведение таких новых версий до пользователей, проверка наличия всех новых версий у пользователей;
- адаптация, настройка и дальнейшая техподдержка программ для ЭВМ, баз данных с учетом особенностей программно-аппаратной среды пользователя или исполнителя;
- аудит (анализ, обследование, мониторинг и т.д.) установленного у заказчика или исполнителя программного обеспечения на совместимость с программно-аппаратной средой заказчика/исполнителя, предназначенной для использования программ для ЭВМ, баз данных;
- обеспечение автоматического обновления нормативно-справочной информации, необходимой для функционирования программ для ЭВМ, баз данных в соответствии с требованиями Российской Федерации;
- прием обращений пользователей программ для ЭВМ, баз данных, выполнение работ/услуг, связанных с такими обращениями;
- информационно-справочная поддержка функционирования программ для ЭВМ, баз данных, в том числе рекомендации, консультации по установке, настройке и работе программ для ЭВМ, баз данных, восстановлению работоспособности, по типовому функционалу и его обновлению, модификации и аналогичных консультаций, связанных с использованием программ для ЭВМ, баз данных;
- консультирование, обучение, тренинги по вопросам использования (работы) программ для ЭВМ, баз данных, по его функционалу.
Границы применимости
Существуют две точки зрения на границы применимости термина «сопровождение ПО»:
- Сопровождение автоматизированных информационных систем не выделяется из сопровождения любого другого ПО.
- Сопровождение ПО не включает сопровождение автоматизированных информационных систем (АИС), так как сопровождение последних имеет существенные отличия.
Стадия создания автоматизированной системы «сопровождение автоматизированной системы» включает два этапа работ[3]:
- «выполнение работ в соответствии с гарантийными обязательствами»,
- «послегарантийное обслуживание».
- Сопровождение ПО vs поддержка ПО
С точки зрения границы применимости терминов «сопровождение ПО» и «поддержка ПО»:
- Эти два термина — синонимы.
- Это два разных термина.
«Сопровождение ПО» осуществляется сопроводителем. Сопроводителем может быть внешняя организация или же сама та организация (её отдел, отдельный сотрудник), которая использует ПО в своей работе. «Поддержка ПО» осуществляется исключительно сотрудниками отдела той организации, которая использует ПО в своей работе (эта организация называется «заказчик» 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].
См. также
Ссылки
- ISO/IEC 14764:2006 Software Engineering — Software Life Cycle Processes — Maintenance
- Сергей Орлик. Программная инженерия. Сопровождение программного обеспечения. (недоступная ссылка). — Перевод главы из SWEBOK с комментариями. Дата обращения: 17 февраля 2010. Архивировано 28 сентября 2014 года.
Источники
- ↑ Информационные системы и технологии/науч. ред. В. М. Глущенко ― М.: МГУУ Правительства Москвы, 2012. ― 438 с. ― ISBN 978-5-98279-959-3
- ↑ 3. По вопросам разъяснения термина "сопровождение" применительно к программам для ЭВМ, базам данных (программным средствам и информационным продуктам вычислительной техники)//Письмо Минцифры России от 07.09.2021 N П11-2-05-200-38749 "О рассмотрении обращений субъектов предпринимательской деятельности и заинтересованных лиц в сфере информационных технологий"
- ↑ ГОСТ 34.601-90 «Государственный стандарт Союза ССР. Информационная технология. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Стадии создания»
- ↑ Мезенцев К. Н. Автоматизированные информационные системы: учебник. ― М.: Академия, 2013 ― 176с. ― С. 57-58 ― ISBN 978-5-7695-9885-2
- ↑ 5,0 5,1 5,2 Федорова Г.Н. Разработка, внедрение и адаптация программного обеспечения отраслевой направленности ― М.:ИНФРА-М, 2016. ― 332с. ― ISBN 978-5-906818-41-6