Методы и средства инженерии программного обеспечения

       

Сопровождение ПО (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г.) предложил   рассматривать сопровождение как эволюционную разработку программных систем, поскольку сданная в эксплуатацию система не всегда является полностью завершенной,  ее надо изменять  в течение срока эксплуатации. В результате программная система становиться более сложной и плохо управляемой, возникает проблема уменьшения ее сложности. К техникам эволюции  ПО относятся реинженерия, реверсная инженерия и рефакторинг.

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

Реверсная инженерия  состоит в восстановлении  спецификации (графов вызовов, потоков данных и др.) по  полученному коду системы (особенно,  когда в нее  внесено много изменений) для  наблюдения за ней на более высоком уровне. Восстанавливается идентификация программных компонентов и связей между ними для обеспечения перестройки системы к новой форме.  

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

 

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

 


Содержание раздела