Сопровождение ПО (Software maintenance)
Сопровождение ПО – совокупность действий по обеспечению работы ПО, а также по внесению изменений в случае обнаружения ошибок в процессе эксплуатации, по адаптации ПО к новой среде функционирования, а также по повышению производительности или других характеристик ПО. В связи с решением проблем 2000года сопровождение стало рассматриваться как более важный процесс, который должен строго обеспечиваться и обновляться участниками разработчиков. Новая версия системы должна решать те же задачи, иметь план переноса информации БД и учет стоимости сопровождения. Сопровождение (согласно стандартов ISO/IEC 12207 и ISO/IEC 14764) считается модификацией программного продукта в процессе эксплуатации при условии сохранения целостности продукта.
Область знаний «Сопровождение ПО (Software maintenance)» состоит из следующих описаний разделов:
– основные концепции (Basic Concepts),
– процесс сопровождения (Process Maintenance),
– ключевые вопросы сопровождения ПО (key Issue in Software Maintenance) ,
– техники сопровождения (Techniques for Maintenance).
Сопровождение рассматривается с точки зрения удовлетворения требований в данном ПО, корректности его выполнения, процессов обучения и оперативного учета процесса сопровождения.
Основные концепции включают базовые определения и терминологию, подходы к эволюции и сопровождению ПО, а также к оценке стоимости сопровождения и др.
К основным определениям относится ЖЦ ПО (стандарт ISO/IEC 12207) и документация. Эта область трактуется, как процесс выполнения, анализа необходимости модификации, оценки стоимости работ по изменению функций. Рассматриваются проблемы, связанные с увеличением сложности продукта при большом количестве изменений и преодоления этого.
Процесс сопровождения включает: модели процесса сопровождения и планирование деятельности людей, которые проводят запуск ПО, проверку правильности его выполнения и внесения в него изменений. Процесс сопровождения согласно стандарту ISO/IEC 14764 проводиться путем:
– корректировки, т.е. изменения продукта при реализации обнаруженных ошибок и нереализованных задач;
– адаптации, т.е. настройки продукта к изменившимся условиям эксплуатации или новой среды выполнения данного ПО;
– улучшения, т.е. изменения продукта для повышения производительности или уровня сопровождения;
– проверки ПО для поиска и исправления скрытых ошибок, обнаруженных при эксплуатации системы.
Ключевые вопросы сопровождения ПО. Основными из этих вопросов являются управленческие, измерительные и стоимостные. Сущность управленческих вопросов состоит в контроле ПО в процессе модификации, совершенствовании функций и недопущении снижения производительности системы. Оценка стоимости затрат на сопровождение зависит от типа ПО, квалификации персонала, платформы и др. Знание этих факторов позволяет не только их сохранить, но и уменьшить. Вопросы измерения относятся к оценке характеристик системы после ее модификации, например, после тестирования оценка качества полученного ПО.
Эволюция ПО. Известный специалист в области ПО Леман (1970г.) предложил рассматривать сопровождение как эволюционную разработку программных систем, поскольку сданная в эксплуатацию система не всегда является полностью завершенной, ее надо изменять в течение срока эксплуатации. В результате программная система становиться более сложной и плохо управляемой, возникает проблема уменьшения ее сложности. К техникам эволюции ПО относятся реинженерия, реверсная инженерия и рефакторинг.
Реинженерия – это улучшение возможностей, функций в устаревшем ПО путем его реорганизации и реструктуризации, перепрограммирования или настройка на другую платформу или среду с обеспечением удобства его сопровождения
Реверсная инженерия состоит в восстановлении спецификации (графов вызовов, потоков данных и др.) по полученному коду системы (особенно, когда в нее внесено много изменений) для наблюдения за ней на более высоком уровне. Восстанавливается идентификация программных компонентов и связей между ними для обеспечения перестройки системы к новой форме.
Рефакторинг ориентирован на улучшение структурных характеристик и качественных показателей объектно-ориентированных программ без изменения их поведения. Этот процесс реализуется путем изменения отдельных операций над текстами, интерфейсами, средой программирования и выполнения ПО, а также настройки или внесения изменений в инструментальные средства поддержки ПО. Если сохраняется форма существующей системы при изменении, то рефакторинг – один из вариантов обратной инженерии.
Таким образом: рассмотренные проблемы сопровождения позволяют специалистам узнать весь круг вопросов сопровождения, эволюции и унаследования старых программных систем.