Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Современные средства разработки программного обеспечения. Учебное пособие

.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Министерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Оренбургский государственный университет»
Кафедра программного обеспечения вычислительной техники
Н.А. Тишина, Е.Н. Чернопрудова, В.Н. Костин
СОВРЕМЕННЫЕ СРЕДСТВА РАЗРАБОТКИ
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Учебное пособие
Рекомендовано ученым советом федерального государственного бюджетного образовательного учреждения высшего образования «Оренбургский государственный университет» для обучающихся по образовательным программам высшего образования по направлениям подготовки 09.04.01 Информатика и вычислительная техника и 09.04.04 Программная инженерия
Оренбург
2024
2
УДК 004.4’2(075.8) ББК 32.972я73 Т 47
Рецензент – кандидат педагогических наук, доцент Наточая Е.Н.
Тишина, Н.А.
Современные средства разработки программного обеспечения [Элек­тронный ресурс]: учебное пособие / Н.А.Тишина, Е.Н. Чернопрудова, В.Н. Костин; Оренбургский гос. ун-т. – Электрон. текстовые дан. (1 файл: 1,9 Мб). – Оренбург: ОГУ, 2024. – 1 электрон. опт. диск (CD-R): зв., цв.; 12 см. – Системные требования: Intel Core или аналогич.; Microsoft Win­dows 7, 8 и выше; 512 Mб; монитор, поддерживающий режим 1024х768; мышь или аналогич. устройство. – Загл. с этикетки диска.
ISBN 978-5-7410-3274-9
В учебном пособии содержатся материалы, необходимые студентам для
изучения дисциплины «Современные средства разработки программного обес­печения».
В разделах учебного пособия рассматриваются теоретические и практи­ческие основы разработки программного обеспечения на языке Python: базовые типы данных, операторы, работа со словарями, списками, фай­лами, форматами данных; объектно-ориентированное программирование, логи­рование, автоматическое тестирование, методические материалы к лаборатор­ным работам.
Учебное пособие предназначено для обучающихся по направлениям под-
готовки 09.04.01 Информатика и вычислительная техника, 09.04.04 Программ­ная инженерия для изучения дисциплины «Современные средства разработки программного обеспечения».
ISBN ISBN 978-5-7410-3274-9 © Тишина Н.А.,
Чернопрудова Е.Н., Костин В.Н., 2024
© ОГУ, 2024
УДК 004.4’2(075.8) ББК 32.972я73
Т 47
3
Содержание
Введение ....................................................................................................................... 7
1 Инструменты разработки программного обеспечения ..................................... 8
1.1 Инструментарий технологии программирования ....................................... 8
1.2 Выбор языка программирования................................................................. 10
1.3 Контрольные вопросы .................................................................................. 12
2 Начало работы в Python. Типы данных языка Python..................................... 13
2.1 Подготовка к работе с Python ...................................................................... 13
2.1.1 Настройка среды ..................................................................................... 13
2.1.2 Инструмент виртуального окружения ................................................. 17
2.1.3 Установка IDE ......................................................................................... 21
2.2 Типы данных ................................................................................................. 21
2.3 Лабораторная работа .................................................................................... 26
2.3.1 Цель и задания ........................................................................................ 26
2.3.2 Порядок выполнения лабораторной работы........................................ 26
2.3.3 Индивидуальные варианты заданий к лабораторной работе ............. 27
2.4 Контрольные вопросы .................................................................................. 29
3 Базовый синтаксис языка Python. Условия, циклы и функции ..................... 30
3.1 Условные операторы .................................................................................... 30
3.2 Циклы ............................................................................................................. 32
3.3 Функция ......................................................................................................... 36
3.4 Лабораторная работа .................................................................................... 40
3.1.1 Порядок выполнения лабораторной работы ........................................... 41
3.1.2 Индивидуальные варианты заданий к лабораторной работе ................ 41
3.5 Контрольные вопросы .................................................................................. 44
4 Объектно-ориентированное программирование ............................................. 45
4.1 Понятия объектно-ориентированного подхода ......................................... 45
4.2 Принципы объектно-ориентированного программирования ................... 50
4.3 Лабораторная работа .................................................................................... 56
4
4.3.1 Порядок выполнения лабораторной работы ........................................... 57
4.3.2 Индивидуальные варианты заданий к лабораторной работе ................ 57
4.4 Контрольные вопросы .................................................................................. 58
5 Итераторы и генераторы .................................................................................... 60
5.1 Итераторы ...................................................................................................... 60
5.2 Итерирование с помощью цикла for ........................................................... 61
5.3 Генераторы .................................................................................................... 62
5.4 Модуль itertools ............................................................................................. 64
5.5 Контрольные вопросы .................................................................................. 65
6 Модульность, обработка исключений в Python .............................................. 67
6.1 Модули, пакеты, библиотеки, фреймворки ............................................... 67
6.2 Обработка исключений ................................................................................ 71
6.3 Ведение журнала в Python ........................................................................... 74
6.4 Контрольные вопросы .................................................................................. 80
7 Списки в Python .................................................................................................. 82
7.1 Создание списка ............................................................................................ 82
7.2 Доступ к элементам списка Python ............................................................. 83
7.3 Получение размера списка Python .............................................................. 84
7.4 Получение входных данных из списка Python .......................................... 85
7.5 Добавление элементов в список Python ..................................................... 86
7.6 Переворачивание списка .............................................................................. 88
7.7 Удаление элементов из списка .................................................................... 88
7.8 Срезы списка ................................................................................................. 90
7.9 Сортировка списков ...................................................................................... 92
7.10 Копирование списков ................................................................................ 93
7.11 Сравнение списков на равенство ............................................................. 95
7.12 Генераторы (comprehension) списков ...................................................... 97
7.13 Методы списков ......................................................................................... 98
7.14 Лабораторная работа ............................................................................... 100
7.14.1 Порядок выполнения лабораторной работы...................................... 100
5
7.14.2 Индивидуальные варианты заданий к лабораторной работе ........... 101
7.15 Контрольные вопросы ............................................................................. 104
8 Словари в Python .............................................................................................. 106
8.1 Определение словаря .................................................................................. 106
8.2 Генерация словарей (dictionary comprehensions) ..................................... 117
8.3 Лабораторная работа .................................................................................. 121
8.3.1 Порядок выполнения лабораторной работы ......................................... 121
8.3.2 Индивидуальные варианты заданий к лабораторной работе .............. 122
8.4 Контрольные вопросы ................................................................................ 124
9 Строки и регулярные выражения ................................................................... 125
9.1 Понятие строк в Python .............................................................................. 125
9.2 Основные строковые методы и операции ................................................ 125
9.3 Регулярные выражения .............................................................................. 130
9.4 Контрольные вопросы ................................................................................ 133
10 Работа с файлами в Python ............................................................................... 135
10.1 Работа с текстовыми и бинарными файлами в Python ........................ 135
10.2 Модуль pickle ........................................................................................... 143
10.3 Работа с CSV-файлами в Python ............................................................ 144
10.3 Лабораторная работа ............................................................................... 154
10.3.1 Порядок выполнения лабораторной работы...................................... 154
10.3.2 Индивидуальные варианты заданий ................................................... 154
10.4 Контрольные вопросы ............................................................................. 157
11 Форматы данных .............................................................................................. 158
11.1 Виды форматов данных .......................................................................... 158
11.2 Сравнение форматов данных .................................................................. 159
11.3 Интеграция с общими форматами данных ........................................... 160
11.4 Работа с Json в Python .............................................................................. 161
11.5 Контрольные вопросы ............................................................................. 171
12 Инструменты автоматического тестирования в Python ............................... 172
12.1 Базовые понятия тестирования .............................................................. 172
6
12.2 Работа с unittest ........................................................................................ 174
12.3 Контрольные вопросы ............................................................................. 181
13 Общие указания к выполнению лабораторных работ .................................. 183
13.1 Порядок выполнения работ .................................................................... 183
13.2 Требования к структуре отчета .............................................................. 184
Список использованных источников .................................................................... 186
7
Введение
В данном учебном пособии содержатся материалы, необходимые студентам для формирования компетенций магистра по направлению «Программная инженерия» в рамках дисциплины «Современные средства разработки программного обеспечения» (ССРПО).
Важной составляющей компетенций магистра по направлению «Программная инженерия» является способность разрабатывать и модернизировать программное обеспечение информационных и автоматизированных систем.
В результате изучения дисциплины, студент должен овладеть современным языком и инструментальными средствами, системами программирования. Научиться обосновывать выбор современных средств, разрабатывать оригинальные программ­ные средства для решения профессиональных задач.
В разделах учебного пособия представлены теоретические и практические ос­новы разработки программного обеспечения на языке Python для начального и сред­него уровня владения.
Начальные сведения: базовые типы данных, операторы, работа со словарями, списками, базовые файловые операции, написание базовых скриптов.
Средний уровень: форматы данных; объектно-ориентированное программиро­вание, итераторы и генераторы, логирование, автоматическое тестирование.
Для поддержки формирования умений и навыков в учебном пособии приведено множество практических примеров, а также включены методические материалы к ла­бораторным работам, содержащие: формулировки целей; задания и порядок выпол­нения работы; индивидуальные варианты заданий; контрольные вопросы, общие ука­зания к выполнению лабораторных работ.
8
1 Инструменты разработки программного обеспечения
1.1 Инструментарий технологии программирования
Процесс разработки программного обеспечения (ПО) сложен на всех его эта­пах, начиная со всеобщего согласия относительно того, что программное обеспечение должно делать, и заканчивая решениями о дизайне, тестированием кода и устране­нием ошибок, сопровождении.
На протяжении всего жизненного цикла разработки ПО (ЖЦ или англ. SDLC Software Development Life Cycle) для поддержки процедур планирования, анализа требований, проектирования, создания, тестирования, развертывания и сопровожде­ния программного обеспечения или приложения существует большое разнообразие средств разработки программного обеспечения, в том числе автоматизирующих ряд задач ЖЦ.
Под средствами разработки программного обеспечения понимают совокуп­ность приемов, методов, методик, а также набор инструментальных программ (ком­пиляторы, прикладные/системные библиотеки и т.д.), используемых разработчиком для создания программного кода программы, отвечающего заданным требованиям.
Под инструментарием технологии программирования понимают программные продукты поддержки (обеспечения) технологии программирования.
К этой категории относятся программные средства, которые позволяют специ­алистам по разработке ПО создавать стабильное программное обеспечение, соответ­ствующее потребностям или целям заказчика.
В процессе разработки ПО используется большое разннообразие инструментов разработки ПО, таких как компоновщики, компиляторы, редакторы кода, разработ­чики графического интерфейса пользователя, ассемблеры, отладчики, инструменты анализа производительности и многие другие.
Инструменты разработки ПО можно разделить на следующие типы:
− IDE (интегрированная среда разработки) – помогает редактировать, отлажи-
вать и запускать исходный код.
9
− Фреймворки – предоставляют платформу для разработки программных при-
ложений.
− Облачные инструменты – предлагает различные услуги по разработке про-
граммного обеспечения для быстрого и простого создания программных приложений.
− Инструменты для обработки данных – предоставляет подробную аналитику
для улучшения программного продукта.
− Инструменты управления версиями – предлагает простое управление исход-
ным кодом для проектов разработки программного обеспечения.
− Инструменты прототипирования – позволяют создавать прототипы про-
граммного обеспечения.
− Инструменты DevOps – помогают управлять процессом развертывания про-
граммного обеспечения и автоматизировать его.
− Инструменты UML – помощь в документации по программному обеспече-
нию.
При большом количестве различных языков программирования и продуктов, созданных с их использованием, каждый день разрабатываются новые инструменты разработки программного обеспечения. Некоторые компании внедряют собственные среды разработки, разработанные специально для удовлетворения их конкретных по­требностей и рабочего процесса.
Есть некоторые факторы, которые необходимо учитывать при выборе соответ­ствующих средств разработки, в зависимости от типа дизайна.
Ниже приведены некоторые из таких факторов:
− критерии компании;
− полезность инструмента;
− интеграция одного инструмента с другим;
− выбор подходящей среды.
В быстро меняющемся мире разработки программного обеспечения использо­вание современных инструментов могут существенно повлиять на эффективность, совместную работу и успех проекта.
10
Первоочередным инструментом разработки ПО является система программи­рования – комплекс средств, включающих в себя входной язык программирования,
транслятор, машинный язык, библиотеки стандартных программ, средства отладки оттранслированных программ и компоновки их в единое целое.
1.2 Выбор языка программирования
Правильный выбор языка программирования также существенно влияет на успех проекта, эффективность разработки и долгосрочную ремонтопригодность.
На выбор у разработчиков представляется множество разнообразных языков программирования. Каждый язык обладает своими сильными и слабыми сторонами, заслуживающими внимания. При выборе лучшего языка программирования для каж­дого проекта в игру вступают несколько факторов: характер проекта, требования к масштабируемости и знание языка командой разработчиков.
В выборе языка программирования также помогают различные платформы, сервисы и статьи по анализу популярности языков программирования.
Одним из показателей популярности языков программирования является ин­декс сообщества программистов TIOBE, обновляющийся раз в месяц. Рейтинги язы­ков программирования в данном индексе основаны на количестве квалифицирован­ных инженеров по всему миру, курсах и сторонних поставщиках. Для расчета рейтин­гов используются популярные веб-сайты Google, Amazon, Википедия, Bing и более 20 других. Важно отметить, что индекс TIOBE не касается лучшего языка програм­мирования или языка, на котором было написано большинство строк кода [1]. На ри­сунке 1.1 представлен рейтинг TIOBE за 2002 – 2023 годы.
Также интерес представляет рейтинг на основе измерения количества запросов на извлечение на GitHub и обсуждения Stack Overflow, который составляет плат­форма RedMonk [2]. Часть рейтинга представлена на рисунке 1.2.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]