Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
406.pdf
Скачиваний:
61
Добавлен:
07.01.2021
Размер:
479.9 Кб
Скачать

Серия внутривузовских методических указанийСибАДИ

Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

«Сибирский государственный автомобильно-дорожный университет (СибАДИ)» Кафедра «Прикладная информатика в экономике»

РЕФАКТОРИНГ И ТЕХНОЛОГИИ УПРАВЛЕНИЯ ПРОГРАММНЫМ КОДОМ

Методическиеуказания

Составитель С.Н. Чуканов

Омск 2018

УДК 004

_____________________________

Согласно 436-ФЗ от 29.12.2010 «О защите детей от информации,

ББК 32,97

причиняющей вред их здоровью и развитию» данная продукция

маркировке не подлежит.

Р45

_____________________________

Рецензент

Доктор технических наук В.А Мещеряков (Проректор по информационным технологиям ФГБОУ ВО СибАДИ.)

Работа утверждена редакционно-издательским советом университета в качестве методических указаний.

Р45 Рефакторинг и технологии управления программным кодом,

методические указания / сост. С.Н. Чуканов – (Серия внутривузовских методических указаний СибАДИ). – Электрон. дан. – Омск : СибАДИ, 2018. – Режим доступа:…..……………………………………………….., свободный после авторизации. – Загл. с экрана.

По темам изложен материал, необходимый для выполнения, лабораторных и контрольных работ, дана рекомендуемая литература и перечень дополнительных ресурсов, необходимых для освоения дисциплины «Рефакторинг и технологии управления программным кодом». Для самостоятельной подготовки к промежуточной аттестации сформированы вопросы и типовые тесты.

Имеется интерактивное оглавление в виде закладок.

Методические указания предназначены для обучающихся направления магистратуры 09.04.01 «Информатика и вычислительная техника» и направления подготовки бакалавров 09.03.03 «Прикладная информатика». Также могут быть использованы как дополнительный учебный материал в различных информационных дисциплинах для формирования профессиональных компетенций.

Издание подготовлено на кафедре «Прикладная информатика в экономике».

Текстовое (символьное) издание

Системные требования: Intel, 3,4 GHz; 150 Мб; Windows XP/Vista/7; DVD-ROM; 1 Гб свободного места на жестком диске; программа для чтения pdf-файлов:

Adobe Acrobat Reader; Foxit Reader

Издание первое. Дата подписания к использованию 20.12.2018 Издательско-полиграфический комплекс СибАДИ. 644080, г. Омск, пр. Мира, 5

РИО ИПК СибАДИ. 644080, г. Омск, ул. 2-я Поселковая, 1

© ФГБОУ ВО «СибАДИ», 2018

СОДЕРЖАНИЕ

ВВЕДЕНИЕ...............................................................................................................................

3

1.ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ К ЛАБОРАТОРНЫМ РАБОТАМ И

КОНТРОЛЬНЫМ ЗАДАНИЯМ .............................................................................................

4

1.1. Основные проблемы и ошибки при написании программного кода...........................

4

1.2. Написание корректного программного кода. Версионирование..................................

6

1.3. Рефакторинг кода..............................................................................................................

8

1.4. Оптимизация кода...........................................................................................................

10

1.5. Дебаггинг .........................................................................................................................

12

2. ЛАБОРАТОРНЫЕ РАБОТЫ ............................................................................................

14

2.1. Лабораторная работа № 1 «Модифицирование программного кода» .......................

14

2.2 Лабораторная работа №2 «Рефакторинг программного кода»....................................

15

2.3 Лабораторная работа №3 «Оптимизация программного кода»...................................

16

2.4 Лабораторная работа №4 «Отладка программного кода»............................................

18

3. ТЕМЫ ДЛЯ ПОДГОТОВКИ К ЗАЧЕТУ.........................................................................

21

4. ТИПОВЫЕ ТЕСТОВЫЕ ЗАДАНИЯ................................................................................

21

4.1. Типовой вариант по теме «Основные проблемы и ошибки при написании

программного кода»...............................................................................................................

21

4.2. Типовой вариант по теме «Написание корректного программного кода.

Версионирование»..................................................................................................................

23

4.3. Типовой вариант по теме «Рефакторинг кода»............................................................

24

4.4. Типовой вариант по теме «Оптимизация кода»...........................................................

25

4.5. Типовой вариант по теме «Дебаггинг».........................................................................

25

5. КОМПЛЕКТ ЗАДАНИЙ ДЛЯ КОНТРОЛЬНОЙ РАБОТЫ ..........................................

26

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ................................................................

29

ПЕРЕЧЕНЬ РЕСУРСОВ СЕТИ «ИНТЕРНЕТ», РЕКОМЕНДУЕМЫХ ДЛЯ ОСВОЕНИЯ

ДИСЦИПЛИНЫ.....................................................................................................................

29

ВВЕДЕНИЕ

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

Для освоения дисциплины «Рефакторинг и технологии управления программным кодом» необходимы знания, полученные при изучении следующих дисциплин:

«Технологии разработки программного обеспечения».

«Тестирование программного обеспечения».

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

Задачи дисциплины: изучить проблемы и ошибки при написании программного кода; алгоритмы и приемы написания корректного программного кода; методы и средства рефакторинга и оптимизации программного кода; безопасность программного кода и отладка программ.

Лабораторные работы помогут студентам приобрести навыки в сфере технологий управления программным кодом и возможность применять на практике рефакторинг. Приобретенные навыки будут актуальны для прохождения практик и написания выпускной квалификационной работы (магистерской диссертации).

Врезультате изучения дисциплины студент должен знать:

Способы оптимизации и приемы рефакторинга.

Инструментальные средства анализа алгоритма.

Методы организации рефакторинга и оптимизации кода.

Принципы работы с системой контроля версий.

1. ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ К ЛАБОРАТОРНЫМ РАБОТАМ И КОНТРОЛЬНЫМ ЗАДАНИЯМ

1.1. Основные проблемы и ошибки при написании программного кода

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

Рекомендуемая литература: 1, 2.

Перечень дополнительных ресурсов: 2, перечень ресурсов в сети Интернет.

Наименование вида самостоятельной работы: изучение литературы, выполнение тестовых заданий.

Компьютерное программирование это огромное поле с сотнями языков, которые используют миллионы приложений.

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

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

Сложные программные комплексы при сборке могут потребовать большого количества файлов, которое может исчисляться целыми сотнями.

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

В таблице представлены основные виды ошибок:

Типы ошибок

 

 

Описание

 

 

Логическая ошибка

Наиболее серьезная из всех ошибок, когда

 

 

написанная

программа компилирует и

 

 

работает

правильно,

но

выдает

 

 

неправильный вывод.

 

 

Синтаксическая

 

Каждый

компьютерный

язык

имеет

ошибка

 

специфический синтаксис, в котором будет

 

 

написан код. Когда программист не

 

 

придерживаться

 

"грамматики"

 

 

спецификациями

компьютерного

языка,

 

 

возникнет ошибка синтаксиса. Они легко

 

 

устраняются на этапе компиляции.

 

Ошибка компиляции

Многие виды ошибок могут происходить на

 

 

этом этапе, в том числе и синтаксические

 

 

ошибки. Иногда, синтаксис исходного кода

 

 

может быть безупречным, но ошибка

 

 

компиляции все же может произойти.

 

Ошибка

среды

Программный код успешно скомпилирован,

выполнения

 

и исполняемый файл был создан. Ошибки

 

 

при

выполнении

программы

могут

 

 

возникнуть в результате аварии или

 

 

нехватки ресурсов носителя.

 

 

Арифметическая

Арифметические ошибки возникают, когда

ошибка

 

компьютер не может справиться с

 

 

проблемами, такими как "Деление на ноль",

 

 

или ведущие к бесконечному результату.

Ошибки ресурса

Ошибка ресурса возникает, когда значение

 

 

переменной

переполняет

максимально

 

 

допустимое значение.

 

 

Ошибка

 

Они могут возникнуть в связи с

взаимодействия

 

несоответствием программного обеспечения

 

 

с

аппаратным

интерфейсом

или

 

 

интерфейсом

 

прикладного

 

 

программирования.

 

 

 

Также, наряду с

ошибками возникают и другие проблемы

процесса программирования, такие, как:

 

 

 

Многопоточность.

 

 

 

 

 

Замыкания.

Использование больших данных.

Проблемы NP-полной задачи (полиномиальная для недетерминированной машины Тьюринга задача поиска и принятия решения).

Безопасность.

Управление идентификацией.

Шифрование.

Надежность измерения.

1.2.Написание корректного программного кода. Версионирование

Вопросы для рассмотрения: Функциональные, структурные, динамические модели. Создание двух взаимосвязанных моделей. Автоматизированное конструирование моделей бизнес-процессов.

Рекомендуемая литература: 2.

Перечень дополнительных ресурсов: 2, 3, перечень ресурсов в сети Интернет.

Наименование вида самостоятельной работы: изучение ли-

тературы, выполнение тестовых заданий, подготовка к лабораторным работам.

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

Обычно качественный код характеризуется несколькими параметрами:

Читаемость кода. Одного взгляда на него должно хватать, чтобы обобщенно понять, что реализуется участком кода.

Присутствие понятных и ёмких комментариев. Данный параметр очень сильно влияет на читаемость, легкость в отладке, тестирование поддержки и устранение ошибок программного кода.

Низкая сложность.

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

Отсутствие мусора. То есть не используемых переменных или

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

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

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

Существует два требования при работе с системой версионирования:

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

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

Наряду с контролем версионности кода выделяют такой критерий, как его понятность. Если ИС активно эксплуатируется и развивается, то ее код приходится читать гораздо чаще, чем писать. Зачастую вносить изменения в код модуля приходится спустя длительное время после его написания и, возможно, другому разработчику, чем тот, кто писал исходный код. Как добиться читаемого кода:

Все методы (а так же переменные, классы и все прочие сущности) должны иметь читаемые, значимые и понятные имена. Чтобы прочитав название метода можно было сразу понять его назначение. И, разумеется, название должно соответствовать реальному поведению метода. Если назначение метода меняется в ходе внесения доработок, то он должен быть переименован.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]