Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Современные средства разработки программного обеспечения. Учебное пособие
.pdf
Министерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Оренбургский государственный университет»
Кафедра программного обеспечения вычислительной техники
и автоматизированных систем
Н.А. Тишина, Е.Н. Чернопрудова, В.Н. Костин
СОВРЕМЕННЫЕ СРЕДСТВА РАЗРАБОТКИ
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Учебное пособие
Рекомендовано ученым советом федерального государственного бюджетного
образовательного учреждения высшего образования «Оренбургский
государственный университет» для обучающихся по образовательным программам
высшего образования по направлениям подготовки 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 Windows 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.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
