В статье рассматриваются основы сопровождения программного обеспечения, выделяются ключевые аспекты процесса сопровождения, формулируются должностные обязанности обслуживающего персонала.
Главным условием полноценного функционирования программы учета компьютерного оборудования ИнЕУ является постоянное ее сопровождение. В связи с этим возникает необходимость правильной организации данного процесса.
Стандартом IEEE Standard for Software Maintenance (IEEE 1219) сопровождение программного обеспечения определяется как модификация программного продукта после передачи в эксплуатацию для устранения сбоев, улучшения показателей производительности и/или других характеристик (атрибутов) продукта или адаптации продукта для использования в модифицированном окружении. Учитывая специфику и многофункциональность программы учета компьютерного оборудования, сопровождение должно стать неотъемлемой частью ее эксплуатации.
Сопровождение поддерживает функционирование программного продукта на протяжении всего операционного жизненного цикла, то есть периода его эксплуатации. В процессе сопровождения фиксируются и отслеживаются запросы на модификацию (также называемые «запросами на изменения» – change requests, в частности, в контексте конфигурационного управления), оценивается влияние предлагаемых изменений, модифицируются код и другие активы (артефакты) программы, проводится необходимое тестирование и, наконец, выпускается обновленная версия программы. Кроме того, проводится обучение пользователей и обеспечивается их ежедневная поддержка при работе с текущей версией программы. С точки зрения операций отслеживания и контроля, сопровождение обладает большим содержанием, чем разработка (в общем понимании). Применительно к разрабатываемой программе учета компьютерного оборудования процесс сопровождения обязательно должен включать в себя полноценный инструктаж, проводимый персоналом по сопровождению для следующих должностных лиц университета: бухгалтера материального отдела, техника сервисного обслуживания и прочих материально ответственных лиц.
Сегодня определяют четыре категории сопровождения:
- Корректирующее сопровождение (corrective maintenance): «реактивная» модификация программного продукта, выполняемая уже после передачи в эксплуатацию для устранения сбоев.
- Адаптирующее сопровождение (adaptive maintenance): модификация программного продукта на этапе эксплуатации, для обеспечения продолжения его использования с заданной эффективностью (с точки зрения удовлетворения потребностей пользователей) в изменившемся или находящемся в процессе изменения окружении.
- Совершенствующее сопровождение (perfective maintenance): модификация программного продукта на этапе эксплуатации для повышения характеристик производительности и удобства сопровождения.
- Профилактическое сопровождение (preventive maintenance): модификация программного продукта на этапе эксплуатации для идентификации и предотвращения скрытых дефектов до того, когда они приведут к реальным сбоям [1].
Специалисты по сопровождению (персонал сопровождения) могут получать знания о программном продукте непосредственно от разработчика. Взаимодействие с разработчиком и раннее его привлечение поможет уменьшить усилия, необходимые для адекватного сопровождения программной системы. Передача знаний персоналу сопровождения, его обучение должно начинаться не позднее начала опытной эксплуатации продукта. В противном случае усилия на одновременную поддержку прикладной системы и обучение соответствующих специалистов не только превысят реально допустимые нормы загрузки персонала (как группы или службы сопровождения и техподдержки, так и разработчика программы), но и снизят эффективность поддержки пользователей на критически важном этапе первоначального использования новой системы [2].
Из-за сложности системы учета компьютерного оборудования пик нагрузки на службу сопровождения придется на период введения программы в реальную эксплуатацию. К тому же разработчик не всегда может быть привлечен к обучению и поддержке персонала сопровождения по тем или иным причинам. Это создает дополнительные трудности для специалистов, обеспечивающих сопровождение. В то же время инженеры, занимающиеся технической поддержкой (несколько более узкий круг в команде сопровождения, включающей менеджеров, администраторов и других специалистов), должны иметь доступ к активам проекта (описанию его внутренней архитектуры), включая код, документацию и т.п. Именно таким образом начнет формироваться информационная инфраструктура службы технической поддержки и сопровождения.
Инженеры по технической поддержке программного обеспечения должны не просто иметь доступ ко всем ключевым активам программы (код, документация, спецификации требований, внутренние модели и т.п.), но в их обязанности должны входить создание «патчей» (patch – «заплата»), исправление ошибок. В особых случаях такие изменения, до выпуска новой версии продукта, должны создаваться с привлечением непосредственно разработчика программы. При этом, разработчик программного обеспечения информируются о найденных ошибках. В случае нахождения соответствующих решений специалистами технической поддержки либо тех изменений, которые включены в новую версию программы, такие решения передаются разработчику с тем, чтобы тот либо включил такие изменения в новую версию программы (безусловно, в случае успешного прохождения всех необходимых тестов), либо нашел более адекватное решение в контексте новой функциональности [3]. В обязанности инженеров службы сопровождения входят: проверка пользовательского сценария, приводящего к сбою; идентификация причин сбоя, т.е. локализация ошибки/причин ее появления; предоставление соответствующих исправлений или (при невозможности создания таковых на данном этапе либо в заданные сроки) предоставление обходного пути решения проблемы для достижения требуемых задач (такие обходные пути, обычно, называют «workaround»); журналирование всех работ и операций; помещение описания проблемы и ее решения в базу знаний службы сопровождения; передача всей информации разработчикам; своевременное информирование пользователей о статусе запроса и некоторые другие работы, содержание которых может варьироваться [4].
Сопровождение необходимо для обеспечения того, чтобы программа учета компьютерного оборудования на протяжении всего периода эксплуатации удовлетворяла требованиям пользователей. Изменения программной системы могут быть обусловлены как действиями по корректировке ее поведения, так и действиями, не связанными с необходимостью корректировки (повышение производительности или расширение функциональности).
Работы по сопровождению должны проводиться для решения следующих задач:
- устранение сбоев;
- улучшение дизайна;
- реализация расширений функциональных возможностей;
- создание интерфейсов взаимодействия с другими (внешними) системами;
- адаптация (например, портирование) для возможности работы на другой аппаратной платформе (или обновленной платформе), применения новых системных возможностей, функционирования в среде обновленной телекоммуникационной инфраструктуры и т.п.
- миграция унаследованного (legacy) программного обеспечения;
- вывод программного обеспечения из эксплуатации.
Деятельность персонала сопровождения должна включать четыре ключевых аспекта:
- поддержка контроля (управляемости) программного обеспечения в течение всего цикла эксплуатации;
- поддержка модификаций программного обеспечения;
- совершенствование существующих функций;
- предотвращение падения производительности программной системы до неприемлемого уровня.
Работы по сопровождению потребляют если не большую, то значительную часть финансовых ресурсов жизненного цикла программы. Существуют как технические, так и другие (например, организационные) факторы, оказывающие влияние на стоимость сопровождения:
- тип приложения;
- новизна программного обеспечения;
- наличие и квалификация персонала по сопровождению;
- длительность использования программной системы;
- характеристики и специфика аппаратной части (а также телекоммуникационной инфраструктуры);
- качество дизайна (например, модульность или масштабируемость), кода, документации и соответствующих работ по тестированию системы.
Литература
- Вигерс Карл И. Разработка требований к программному обеспечению. - М.: Русская Редакция, – 576 с.
- Макконнелл С. Совершенный код. Практическое руководство по разработке программного обеспечения. - Спб.: Питер, 2005. – 896 с.
- Калбертсон Р., Браун К., Кобб Г. Быстрое тестирование. - М.: Вильямс, 2002. – 384 с.
- Дастин Э., Рэшка Дж., Пол Д. Автоматизированное тестирование программного обеспечения: внедрение, управление и эксплуатация / Пер. с англ. - М.: Лори, 2003. - 567 с.