Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программная инженерия (Ехлаков Ю.П.).doc
Скачиваний:
160
Добавлен:
09.11.2018
Размер:
1.48 Mб
Скачать
      1. Сопровождение по

Фаза сопровождения в жизненном цикле, обычно, начинается сразу после приемки/передачи продукта и действует в течение периода гарантии или технической поддержки. Объективная потребность в сопровождении связана:

  • с обнаружением при эксплуатации ПП скрытых дефектов и необходимости устранение сбоев;

  • улучшение дизайна;

  • реализации новых функциональных возможностей;

  • созданием интерфейсов взаимодействия с внешними системами;

  • адаптации для обеспечения возможности работы ПП на другой программно-аппаратной платформе;

  • изменением бизнес процессов в предметной области;

  • вывода программного обеспечения из эксплуатации.

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

Область знаний «Сопровождение ПО» состоит из следующих описаний разделов (рис. 20).

Рис. 20. Область знаний «Сопровождение ПО»

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

Этот раздел содержит описание содержания концепции и терминологию, формирующие основы понимания роли и содержания работ по сопровождению ПО.

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

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

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

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

  • модификацией программного продукта в процессе эксплуатации при условии сохранения целостности продукта.

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

В зависимости от исходных условий состояния ПО в стандартах выделяется четыре категории сопровождения:

  • Корректирующее сопровождение: «реактивная» модификация программного продукта, выполняемая уже после передачи в эксплуатацию для устранения сбоев;

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

  • Совершенствующее сопровождение: модификация программного продукта на этапе эксплуатации для повышения характеристик производительности и удобства сопровождения;

  • Профилактическое сопровождение: модификация программного продукта на этапе эксплуатации для идентификации и предотвращения скрытых дефектов до того, когда они приведут к реальным сбоям.

Ключевые вопросы сопровождения программного обеспечения.

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

  • Технические вопросы.

  • Управленческие вопросы.

  • Вопросы оценка стоимости сопровождения.

  • Вопросы измерения.

К группе технических вопросов по сопровождению ПО относятся:

  • анализ и понимание персоналом программного кода ПО, которое он не разрабатывал, а также необходимость внести исправления или изменения в код;

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

  • анализ возможных последствий и влияний изменений, вносимых в существующее ПО, оценка рисков, связанных с внесением изменений.

Сущность управленческих вопросов состоит в контроле качества ПО в процессе модификации функционала и недопущении снижения производительности.

Оценка стоимости затрат на сопровождение зависит от типа ПО, квалификации персонала, платформы и др. Знание этих факторов позволяет не только их сохранить, но и уменьшить.

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

  • Анализируемость: оценка ресурсов, необходимых для диагностики недостатков или причин сбоев, а также для идентификации тех фрагментов ПО, которые должны быть модифицированы.

  • Изменяемость: оценка ресурсов, необходимых для проведения заданных модификаций.

  • Стабильность: оценка режимов непредусмотренного поведения ПО, включая ситуации, обнаруженные в процессе тестирования.

  • Тестируемость: оценка трудозатрат персонала сопровождения и пользователей по тестированию модифицированного программного обеспечения.

Процесс сопровождения.

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

В этом случае возможны четыре варианта развития событий при модификации ПО (рис. 21):

1) пользователям приходится смириться с отсутствием некоторых функциональных возможностей программного обеспечения или их несоответствием новым реалиям и выполнять их либо вручную, либо при помощи подручных инструментов, например Word и Excel. Соответственно возрастает трудоемкость обработки, вероятность ошибок (человеческий фактор), требуется обучение и коррекция мотивации персонала, а главное — теряется драгоценное время;

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

3) если первые два варианта решения неприемлемы, то тогда разработчик начинает реализацию изменений на уровне исходных текстов, что требует ресурсов, а главное — времени на завершение полного цикла разработки, тестирование и разворачивание новой версии ПО;

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

Рис. 21. Варианты модернизации ПО

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

Для реализации изменений программисты тратят значительную часть времени на чтение и формирование понимания в большинстве случаев чужого программного кода. Средства работы с кодом являются ключевым инструментом для решения этой задачи. Четкая, однозначная и лаконичная документация обеспечивает адекватное понимание ПО.

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

Реинжиниринг – это улучшение возможностей, функций в устаревшем ПО, путем его реорганизации и реструктуризации, перепрограммирования или настройка на другую платформу или среду с обеспечением удобства его сопровождения.

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

Рефакторинг – трансформация программного обеспечения, в процессе которого ПО реорганизуется (не переписываясь) с целью улучшения структуры, без изменения ее функционала. Рефакторинг ориентирован на улучшение структурных характеристик и качественных показателей объектно-ориентированных программ без изменения их поведения. Этот процесс реализуется путем изменения отдельных операций над текстами, интерфейсами, средой программирования и выполнения ПО, а также настройки или внесения изменений в инструментальные средства поддержки ПО.