BC/NW 2022 № 1 (39):8.2

РАЗРАБОТКА ПРОГРАММНОГО СРЕДСТВА ДЛЯ АВТОМАТИЧЕСКОГО РЕФАКТОРИНГА ИСХОДНОГО ТЕКСТА ПРОГРАММ

Быков А. М., Орлов, Д.А. 

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

Цель данной работы – разработка экспериментальной версии программного средства, проводящего рефакторинг исходного текста программ, разработанных на языках C и C++, методами извлечения класса, удаления параметра, передачи всего объекта и удаления присваиваний параметрам, а также исследование его работы статическим анализатором кода Cppcheck.

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

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

         

Литература

1.    М. Фаулер. , Бек К., Брант Д., Робертс Д., Апдайк У. Рефакторинг: улучшение существующего кода = Refactoring: Improving the Design of Existing Code (2000). — Спб: Символ-Плюс, 2009. — 432 с.

2.    Д. Кериевски. Рефакторинг с использованием шаблонов = Refactoring to Patterns. — Вильямс, 2008. — 400 с.