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

Владимирский Государственный Университет

В мире ежегодно растет число программных систем. Процесс разработки таких систем непрерывно связан cитеративными изменениями, которых называют рефакторингами. Рефакторинг – это изменение внутренней структуры без изменения внешнего поведения[1]. Помимо нового программного обеспечения огромную долю рынка занимает, так называемый  унаследованный код, который в избытке содержит различные дефекты, как архитектурного уровня, так и уровня кода. Данные программные продукты продолжаются поддерживаться и на данную поддержку затрачиваются огромные средства. Частично решить проблемы, связанные с подобным кодом, возможно, с помощью рефакторингов и реструктуризаций – улучшений внутренней архитектуры системы. Рынок вакансий также реагирует на эти изменения – большинство вакансий на должности старших программистов, системных архитекторов содержат требования к знаниям по реструктуризации. Но текущие стандарты [2] не включают подобную дисциплину, поэтому встает вопрос о ее формировании или преподавании в рамках текущих.

Существующая область реструктуризации программного обеспечения лежит на стыке двух других областей – архитектуры программного обеспечения и качества программного обеспечения. Данные области широко представлены в целом ряде дисциплин, таких как «Основы объектно-ориентированного программирования», «Технология программирования», «Тестирование» и др..  

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

 

1.           Roberts, D. Practical Analysis for Refactoring - PhD thesis, University of Illinois at Urbana-Champaign, Department of Computer Science, 1999.

2.      ФГОС ВПО по направлению подготовки 231000. Программная инженерия. Текст. 09.11.2009. - М.: Изд-во стандартов, 2010. - 26 с.

Уровень образования  Высшее профессиональное