Сопровождение (поддержка) программного обеспечения
Сопровождение (поддержка) программного обеспечения — процесс улучшения, оптимизации и устранения дефектов программного обеспечения (ПО) после передачи в эксплуатацию. Сопровождение ПО —это одна из фаз жизненного цикла программного обеспечения, следующая за фазой передачи ПО в эксплуатацию. В ходе сопровождения в программу вносятся изменения, с тем, чтобы исправить обнаруженные в процессе использования дефекты и недоработки, а также для добавления новой функциональности, с целью повысить удобство использования (юзабилити) и применимость ПО.
В спиральной модели, возникшей в ходе развития объектно-ориентированного программирования, сопровождение не выделяется как отдельный этап. Тем не менее, эта деятельность занимает значительное место, учитывая тот факт, что обычно около 2/3 жизненного цикла программных систем занимает сопровождение. «Сопровождение
программного средства может в стоимостном выражении составлять наибольшую часть жизненного цикла.
Сопровождаемость программного обеспечения —характеристики программного продукта, позволяющие минимизировать усилия по внесению в него изменений:
Характиристики, описывающие качественные и количественные требования к сопровождаемости программного средства, устанавливает заказчик. В данных характеристиках должны быть установлены соответствующие критерии и способы их проверки. Разработчики должны реализовывать требования к сопровождаемости, а сопроводители должны контролировать их реализацию.
Принято выделять несколько линий сопровождения (структура приведена на примере внешнего сопровождения ПО):
Работу инженера по сопровождению ошибочно сравнивают с работой информационного центра. Однако по функционалу эти специалисты принципиально различаются – если call-center фактически аккумулирует обращения пользователей, то сопровождение является центральным звеном в цепочке разработки и доработки ПО, которое решает проблемы, возникающие в период эксплуатации ПО (системы, сервиса).
Сопровождение программных систем
Сопровождение программных систем
Определение процесса сопровождения
Под сопровождением программного обеспечения понимают процесс улучшения, оптимизации и устранения дефектов программного обеспечения (ПО) после передачи в эксплуатацию. К счастью, этот процесс достаточно хорошо стандартизован, и открывать Америку для того, чтобы его разработать и внедрить не придется. Упомянем только некоторые основные стандарты:
Процесс сопровождения является одной из фаз жизненного цикла программного обеспечения, следующей за передачей ПО в эксплуатацию, и завершается выводом его из эксплуатации. В ходе сопровождения в программу вносятся изменения, с тем, чтобы исправить обнаруженные в процессе использования дефекты и недоработки, для добавления новой функциональности, повышения удобства использования (юзабилити) и роста уровня использования ПО. По стандарту ISO/IEC 12207, этот процесс входит в 5 основных процессов жизненного цикла (ЖЦ) ПО: приобретение, поставка, разработка, эксплуатация, сопровождение.
В общем случае процесс сопровождения состоит из следующих задач:
Сопровождение и удовлетворенность пользователей
Именно процесс сопровождения позволяет улучшить удовлетворенность пользователей внедренным ПО. Действительно, общеизвестно, что удовлетворенность пользователей зависит от того, насколько полученный результат соответствует их ожиданиям (т.е. от площади области пересечения ожиданий и результата — см. рисунок 1).
Рис. 1. Область удовлетворенности пользователей.
По неоднократным опросам пользователей, они ждут от нового ПО, разработанного и внедренного, в частности, на платформе «1С:Предприятие» следующего:
Все эти задачи можно и нужно выполнять на этапе сопровождения. Кроме того, присущий человечеству консерватизм определяет негативное отношение большинства пользователей к новому ПО. Именно и только стадия сопровождения позволяет примирить с ним пользователей и приучить их с удовольствием и с пользой применять его в своей деятельности. По статистике, удовлетворенность пользователей через год использования ПО в несколько раз выше, чем сразу после внедрения.
Но, чтобы достичь таких результатов, сопровождение должно осуществляться на должном уровне. Ведь в противном случае эту удовлетворенность можно даже уменьшить.
Типы заявок предложений о модификации
Процесс сопровождения состоит из обработки заявок пользователей. Эти заявки целесообразно классифицировать по типам (см. рис. 2).
Рис. 2. Иерархия типов предложения по модификации ПО (по стандарту ГОСТ Р ИСО/МЭК 14764-2002)
Так, тип сопровождения — корректирующее — это реактивное изменение программного продукта для коррекции обнаруженных проблем (после обнаружения). Проблемы могут относиться к функциональности системы, ее интерфейсам, надежности и производительности работы.
Адаптивное сопровождение — изменение программного продукта после поставки для обеспечения его использования в условиях изменения его (программного продукта) или окружающей среды.
Полное (совершенствующее) сопровождение — изменение программного продукта после поставки для улучшения производительности или удобства эксплуатации.
Профилактическое сопровождение — это изменение программного продукта после поставки для выявления и исправления скрытых дефектов в ПО до того, как они станут явными ошибками.
Следует также отметить, что профилактическое и полное (совершенствующее) сопровождение относятся к проактивному подходу к сопровождению, при котором инициатива исходит от обслуживающего персонала, а корректирующее и адаптивное — к реактивному подходу, инициатива которого находится у пользователей.
Проактивному сопровождению необходимо уделять достаточно внимания, поскольку именно оно в наибольшей степени способствует повышению удовлетворенности пользователей и эффективному развитию программной системы.
Этапы процесса сопровождения
Этапы процесса сопровождения основаны на цикле Деминга PDCA (Plan — Do — Check — Analyze) или «планируй — делай — проверяй — анализируй» (см. рис. 3).
Рис. 3. Общая структура процесса сопровождения (по стандарту ГОСТ Р ИСО/МЭК 14764-2002)
Формирование процесса сопровождения начинается с разработки концепции сопровождения. Такой документ, например, по стандарту ISO/IEC 14764 (Standard for Software Engineering — Software Maintenance), должен содержать следующие разделы:
1. Область сопровождения программного средства.
1.1. Типы выполняемого сопровождения.
1.2. Сопровождаемый уровень документов.
1.3. Реакция (чувствительность) на сопровождение
(определение ожиданий к сопровождению заказчика).
1.4. Обеспечиваемый уровень обучения персонала.
1.5. Обеспечение поставки продукта.
1.6. Организация справочной службы («горячей линии»).
2. Практическое применение (адаптация) данного процесса.
3. Определение организаций (лиц), ответственных за сопровождение.
4. Оценка стоимости сопровождения:
4.1. Проезд до места расположения пользователя.
4.2. Обучение как сопроводителей, так и пользователей.
4.3. СПИ (среда программной инженерии) и СТПС (среда тестирования программного средства) и их ежегодное сопровождение.
4.4. Персонал (зарплата и премии).
Должен быть сформирован соответствующий план сопровождения. Этот план должен подготавливаться одновременно с разработкой программной системы. План должен определять, как пользователи будут размещать свои запросы на модификацию (изменения) или сообщать об ошибках, сбоях и проблемах.
Стандарт ГОСТ Р ИСО/МЭК 14764-2002 предлагает следующий состав такого плана:
a). Введение:
b). Концепция сопровождения (уже кратко описанная выше):
c). Организационные работы и работы по сопровождению:
1. роли и обязанности сопроводителя до поставки программного продукта:
2. роли и обязанности сопроводителя после поставки программного продукта:
3. роль пользователя:
d). Ресурсы:
2. программные средства:
3. технические средства:
4. оборудование (аппаратура):
6. данные;
7. другие требования к ресурсам (при необходимости);
e). Процесс (как должна быть выполнена конкретная деятельность):
1. процесс, выполняемый сопроводителем (приводят общее описание процесса без детализации в плане сопровождения всего процесса);
2. процесс адаптации (практического применения сопровождения к условиям проекта);
f). Обучение:
1. определение уровня обучения, необходимого для сопроводителя и пользователей;
g). Протоколы и отчеты по сопровождению:
1. перечень запросов пользователя на оказание услуг по сопровождению, предложение о модификациях или отчеты о проблемах;
2. состояния запросов (предложений, отчетов) по категориям;
3. приоритеты запросов (предложений, отчетов);
4. контрольные данные, собранные при работах по сопровождению.
Связь сопровождения с эволюцией ПО
Отдельно хочется коснуться связи сопровождения с эволюцией программных систем. В 1969 году Мэнни М. Леман впервые связал деятельность по сопровождению и вопросы эволюции программного обеспечения. Результаты более чем 20-ти летних исследований группы, которой он руководил, привели к формулированию ряда важных положений.
Ключевой результат: деятельность по сопровождению, по сути, представляет собой эволюционную разработку программных систем. Принятию тех или иных решений в процессе сопровождения, помогает понимание того, что происходит с программной системой в процессе ее эксплуатации.
Существующее (особенно корпоративное) программное обеспечение никогда не бывает полностью завершенным и продолжает эволюционировать в течение всего срока эксплуатации. В процессе эволюционирования программная система становится все более сложной до тех пор, пока не прикладываются специальные усилия (в том числе, в рамках специального проекта по модификации) по уменьшению ее сложности.
Леман вместе с Белади (Lehman and Belady) выделили 3 типа программ.
На основании этой классификации для программных систем Е-типа постепенно Леманом были сформулированы законы эволюции:
Сопровождение выгодно всем
В заключение необходимо отметить, что процесс сопровождения ПО важен для всех заинтересованных сторон. Он предоставляет:
Заказчику
Внедренцу — возможность:
Вендору
Тем, кто этого еще не сделал, необходимо обратить свое внимание на процесс сопровождения программного обеспечения.
Поддержка программного обеспечения
Мы завершаем нашу трилогию о принципах разработки, принятых в «Эдисоне», постом о том, как устроена поддержка разработанного ПО, включая внедрение (установку и обучение использованию) и сопровождение (правку выявленных багов и поддержку пользователей).

Надёжная поддержка — это важно
Объекты техподдержки
Профиль нашей деятельности включает как разработку собственных проектов для широкого пользователя, так и разработку софта на заказ.
Кроме техподдержки по произведенным нами продуктам (как тиражируемым, так и сделанным на заказ), мы осуществляем сопровождение сторонних решений, используемых нашими клиентами.
Тиражируемое ПО EDISON
На сегодня в нашем портфолио 4 продукта, доступных для всех желающих:
Заказное программное обеспечение
Системы автоматизации на базе сторонних продуктов
Внедрение и сопровождение решений автоматизации на платформах Oracle, SAP, 1С, Microsoft, а также SpiderProject, ProjectMate, bugzilla, mantiss, jira и других, например:
Специалисты нашей компании отлично разбираются во всем интегрируемом программном обеспечении, а инженеры-программисты, работающие с 1С, имеют глубокие знания в бухгалтерском, управленческом учете и расчете заработной платы.
Как устроена поддержка программного обеспечения в EDISON
В соответствии со статьей № 470 ГК РФ производитель должен давать гарантию на свои программные продукты, а именно: исправлять свои ошибки либо менять продукт на другую версию. Проблема в том, что по закону для этого требуется экспертиза, подтверждающая наличие сбоя, доказывающая вину разработчика, исключающая пользовательское вмешательство в код ПО, гарантирующая корректное использование продукта клиентом и т.д. На время проведения экспертизы неисправности программного комплекса парализуется не только его работа, но и работа аппаратного обеспечения. И это очень неудобно для пользователей сервисов, которые должны работать постоянно.
Услуга техподдержки, в соответствии с которой специалисты EDISON исправляют все недостатки, в том числе инициированные пользователем и не включенные в изначальное ТЗ, призвана компенсировать эти недочёты.
Независимо от того, требуется ли поддержка по корпоративному сайту или системе автоматизации на базе Oracle, порядок ее оказания одинаков (меняется лишь срок в зависимости от сложности задачи).
Техническая поддержка пользователей ПО может включать большое количество опций в зависимости от желаний клиента, например:
За каждым клиентом мы закрепляем проект-менеджера, с которым ведется вся коммуникация. Для контроля за ходом работы и затраченным на выполнение задач временем клиенту предоставляются неограниченные по времени доступы к репозиторию, системе управления проектами и программе учета времени ББ, о которой мы писали выше.
Сайты могут управляться клиентами самостоятельно, используемые нами CMS: Bitrix, WordPress, Joomla, Drupal, Amiro, Frog, Kentico, AxCMS, Sitefinity. Поддержка веб-сайта включает в себя, в том числе, своевременное информирование о необходимости оплаты хостинга и домена.
Преимущества в поддержке программного обеспечения
Доработка программного обеспечения
IT-рынок — структура быстро растущая и динамичная (меняются стандарты, требования, технологии), и бизнес наших клиентов тоже не стоит на месте (появляются новые задачи), поэтому помимо поддержки программного обеспечения EDISON осуществляет доработки ПО, а именно:
Реинжиниринг программного обеспечения
В случае если разработчик продукта более не поддерживает установленное у клиента программное обеспечение, переход на новое проблематичен, и поддержка существующей системы обходится слишком дорого, при наличии технической возможности производится реинжиниринг — то есть создание перепроектированной версии старого ПО с учетом новых требований. Миграция происходит постепенно, что позволяет избежать рисков.
Интернационализация и локализация программного обеспечения
Хотя оба этих понятия относятся к «язычности» продукта, интернационализация подразумевает адаптацию под любой язык (конфигурация изменяемых при смене языка параметров, таких как вывод чисел, дат, денежных знаков), тогда как локализация — перевод языка интерфейса, файлов программы и справки на конкретный язык.
Портирование и миграция
К этим доработкам относятся работы по переносу, конвертации форматов БД, межплатформенной миграции, переводе ПО с одного языка программирования на другой и адаптации.
Один из примеров, демонстрирующих портирование и миграцию:
При доработке программного обеспечения мы действуем по тем же принципам, что и при его создании, что гарантирует высокое качество работы в нужный срок.
Есть замечания по нашей методологии или вы хотите поделиться своим опытом? Рады будем пообщаться в комментариях или на нашей странице в Фейсбуке.
Что такое сопровождение программного обеспечения
ГОСТ Р ИСО/МЭК 14764-2002
ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
СОПРОВОЖДЕНИЕ ПРОГРАММНЫХ СРЕДСТВ
Information technology. Software maintenance
Дата введения 2003-07-01
1 РАЗРАБОТАН Всероссийским научно-исследовательским институтом стандартизации (ВНИИстандарт) Госстандарта России, Московским научно-исследовательским центром (МНИЦ) Минсвязи России и Институтом радиотехники и электроники Российской академии наук (ИРЭ РАН)
ВНЕСЕН Всероссийским научно-исследовательским институтом стандартизации (ВНИИстандарт) Госстандарта России
2 ПРИНЯТ И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Госстандарта России от 25 июня 2002 г. N 248-ст
3 Настоящий стандарт содержит полный аутентичный текст международного стандарта ИСО/МЭК 14764-99 «Информационная технология. Сопровождение программных средств»
Введение
Настоящий стандарт уточняет требования к процессу сопровождения программных средств. Сопровождение программных средств является одним из основных процессов их жизненного цикла, что описано в ГОСТ Р ИСО/МЭК 12207. Процесс сопровождения состоит из работ и задач, реализуемых персоналом сопровождения (сопроводителем). Настоящий стандарт является составной частью документов, в том числе рекомендаций (руководств), семейства ГОСТ Р ИСО/МЭК 12207. Настоящий стандарт детализирует процесс сопровождения, установленный в ГОСТ Р ИСО/МЭК 12207. В настоящий стандарт включены только пункты ГОСТ Р ИСО/МЭК 12207, содержащие обязательные требования. Данные пункты в тексте настоящего стандарта заключены в прямоугольные рамки. Номер соответствующего пункта ГОСТ Р ИСО/МЭК 12207 указан в этих рамках.
В большинстве проектов, особенно имеющих продолжительный жизненный цикл, сопровождение программных средств наверняка будет одним из основных рассматриваемых вопросов.
Из-за ограничений в стоимости и сроках разработки, а также отсутствия опыта в применении ГОСТ Р ИСО/МЭК 12207 программные средства нередко поставляют в «сыром» виде. Поэтому возникает необходимость в последующей корректировке ошибок, обнаруженных при их эксплуатации. Часто необходимо модернизировать программное средство, чтобы удовлетворить изменившимся требованиям пользователя. Сопровождение программного средства может в стоимостном выражении составлять наибольшую часть жизненного цикла.
Настоящий стандарт предназначен для пользователей, знакомых с сопровождением программных средств. Рекомендуется, чтобы пользователь, незнакомый с сопровождением программных средств, до практического применения настоящего стандарта изучил соответствующие учебники или прошел практическое обучение.
Сопровождение программных средств может быть проведено с использованием соответствующего конгломерата инструментальных (вспомогательных) программных средств, методов и технологий программной инженерии. Настоящий стандарт не определяет, как следует применять или выполнять работы и задачи в процессе сопровождения программного средства, поскольку это должно быть определено договорными или организационными условиями. Требования к сопровождению программных средств остаются постоянными безотносительно к инструментальным средствам реализации данного процесса.
В настоящем стандарте учтены обобщенные предложения по практическому применению концептуальных положений и понятий ГОСТ Р ИСО/МЭК 12207, представленные Техническим комитетом по стандартизации ТК 22 «Информационные технологии».
1 Область применения
В настоящем стандарте более подробно описано управление процессом сопровождения программных средств, установленным в ГОСТ Р ИСО/МЭК 12207. В стандарте также установлены определения различных типов сопровождения. В стандарте приведены рекомендации по планированию и выполнению процесса сопровождения, контролю и надзору за ним, оценке и завершению (прекращению) указанного процесса. Область применения настоящего стандарта охватывает сопровождение различных программных средств при использовании одинаковых ресурсов сопровождения. Термин «сопровождение (maintenance)» в настоящем стандарте означает сопровождение программного средства, если не указан иной его смысл.
Настоящий стандарт устанавливает основную структуру, в пределах которой могут быть выполнены, оценены и практически реализованы общие и конкретные планы сопровождения применительно к области действия и объему заданных программных средств (продуктов).
Настоящий стандарт определяет основные положения, точную терминологию и процессы, позволяющие последовательно применять соответствующие технологии (инструментальные средства, методологии и методы) при сопровождении программных средств.
В настоящем стандарте даны рекомендации по сопровождению программных средств. Основой для описания в настоящем стандарте процесса сопровождения и его работ являются определения, установленные в ГОСТ Р ИСО/МЭК 12207. Данный процесс определяет работы (виды деятельности) и задачи (задания) по сопровождению программного средства и устанавливает требования к планированию сопровождения. Он не описывает эксплуатацию программного средства и эксплуатационные функции, например резервирования, восстановления, системного администрирования, которые обычно выполняет персонал, эксплуатирующий программное средство.
Настоящий стандарт, в основном, предназначен для организаций, сопровождающих программные средства (персонала сопровождения, сопроводителей), а также может быть использован субъектами, отвечающими за разработку и обеспечение качества этих средств. Стандарт может быть применен заказчиками и пользователями систем, содержащих программные средства, которые могут представлять исходные данные для плана сопровождения.
Настоящий стандарт содержит рекомендации по управлению (или выполнению) процессом сопровождения. Стандарт определяет использование (привлечение) процесса сопровождения в процессах заказа и эксплуатации.
Настоящий стандарт содержит рекомендации по планированию сопровождения и сопровождению программных продуктов (средств) и услуг, выполняемому как внутри организации, так и вне ее. Стандарт не распространяется на эксплуатацию программных средств.
Стандарт позволяет обеспечить двусторонние отношения между организациями и может быть использован, когда обе стороны принадлежат к одной организации. Настоящий стандарт также может быть использован одной из сторон для решения задач самоконтроля (см. ГОСТ Р ИСО/МЭК 12207).
Настоящий стандарт не предназначен для применения пользователями готовых программных продуктов, не входящих в состав поставляемого продукта (см. ГОСТ Р ИСО/МЭК 12207). Например, организации могут захотеть применить настоящий стандарт при сопровождении шаблонов или макросов обрабатываемого текста, проходящего через данную организацию.
Настоящий стандарт не предназначен для временно или эпизодически используемых программных средств (продуктов).
Стандарт может быть использован разработчиками готовых программных продуктов для самоконтроля при сопровождении данных продуктов. Стандарт не предназначен для программных продуктов, заказанных пользователями, и продуктов, сопровождаемых конечными пользователями. Объектами сопровождения являются компьютерные программы, программы в машинных кодах, данные и соответствующие документы. Стандарт применяют к программным продуктам, создаваемым при разработке конкретного программного средства. В состав таких продуктов могут входить тестовые программные средства, тестовые базы данных, среда тестирования программного средства (СТПС, STE) или среда программной инженерии (СПИ, SEE).
Настоящий стандарт используют во всей деятельности по сопровождению независимо от модели жизненного цикла программного средства (каскадной, инкрементной, эволюционной) или применительно к методу разработки (например, ускоренная разработка приложений, прототипирование, макетирование).
Настоящий стандарт устанавливает основную структуру процесса сопровождения программных средств, но не определяет подробности реализации или выполнения работ и задач, входящих в данный процесс.
В стандарте приведен ряд перечислений (списков). Однако ни одно из них не является исчерпывающим. Эти перечисления приведены в качестве примеров.
Этапы применения настоящего стандарта указаны в ГОСТ Р ИСО/МЭК ТО 15271.
2 Соответствие
Соответствие настоящему стандарту обеспечивают при выполнении требований ГОСТ Р ИСО/МЭК 12207.
3 Нормативные ссылки
В настоящем стандарте использованы ссылки на следующие стандарты:
ИСО/МЭК 2382-1-93* Информационная технология. Словарь. Часть 1. Основополагающие термины
ИСО/МЭК 2382-20-90* Информационная технология. Словарь. Часть 20. Разработка систем
ИСО 8402-94* Управление качеством и обеспечение качества. Словарь
4 Определения
В настоящем стандарте применены термины с соответствующими определениями по ИСО/МЭК 2382-1, ИСО/МЭК 2382-20, ИСО 8402 и ГОСТ Р ИСО/МЭК 12207, а также приведенные ниже:
4.1 адаптивное сопровождение (adaptive maintenance): Изменение (модификация) программного продукта после поставки, обеспечивающее его работоспособность в измененных или изменяющихся условиях (среде).
4.2 базовая линия (baseline): Официально принятая версия элемента конфигурации, независимая от среды, формально обозначенная и зафиксированная в конкретный момент времени жизненного цикла элемента конфигурации (3.5 ГОСТ Р ИСО/МЭК 12207).
4.3 корректирующее сопровождение (corrective maintenance): Реактивное изменение программного продукта, выполняемое после его поставки для корректировки обнаруженных проблем (несоответствий, ошибок).
4.4 план сопровождаемости (maintainability plan): Документ, излагающий соответствующие методы обеспечения сопровождаемости, описывающий необходимые для этого ресурсы и работы применительно к программным средствам.
4.5 сопровождаемая модернизация (maintenance enhancement): Сопровождаемая модернизация является изменением программного средства, не связанным с корректировкой самого программного средства.
4.6 план сопровождения (maintenance plan): Документ, излагающий соответствующие методы сопровождения, описывающий необходимые ресурсы и работы применительно к сопровождению программного продукта.
4.7 процесс сопровождения (maintenance process): Работы (виды деятельности) и задачи (задания), выполняемые организацией, осуществляющей сопровождение (персоналом сопровождения, сопроводителем).
4.8 программа сопровождения (maintenance program): Организационная структура, обязанности, процедуры, процессы и ресурсы, используемые при выполнении плана сопровождения.
4.9 предложение о модификации (ПР) (modification request [MR]): Общий термин, используемый для определения предполагаемых изменений в сопровождаемом программном продукте.
4.10 полное сопровождение (perfective maintenance): Модификация программного продукта после поставки для повышения его рабочих характеристик или улучшения сопровождаемости.
4.11 профилактическое сопровождение (preventive maintenance): Модификация программного продукта после поставки в целях обнаружения и корректировки имеющихся в нем скрытых ошибок для предотвращения явного проявления этих ошибок при эксплуатации данного продукта.
4.12 отчет о проблеме (ОП) (problem report [PR]): Термин, используемый для определения и описания проблем, обнаруженных в программном продукте.
4.13 среда программной инженерии (СПИ) (software engineering environment [SEE]): Набор автоматических инструментальных средств, программно-аппаратных и технических средств, необходимых для выполнения объема работ по программной инженерии.




