МИНОБРНАУКИ РОССИИ
федеральное государственное бюджетное образовательное учреждение высшего образования
«Алтайский государственный университет»

Современные технологии разработки программного обеспечения

рабочая программа дисциплины
Закреплена за кафедройКафедра информатики
Направление подготовки09.04.03. Прикладная информатика
ПрофильЦифровые технологии анализа данных для устойчивого развития регионов Северной и Центральной Азии
Форма обученияОчная
Общая трудоемкость4 ЗЕТ
Учебный план09_04_03_Прикладная информатика_ЦТАД_ЦА-2024
Часов по учебному плану 144
в том числе:
аудиторные занятия 42
самостоятельная работа 102
Виды контроля по семестрам
зачеты: 1

Распределение часов по семестрам

Курс (семестр) 1 (1) Итого
Недель 16,5
Вид занятий УПРПДУПРПД
Лекции 16 16 16 16
Лабораторные 26 26 26 26
Сам. работа 102 102 102 102
Итого 144 144 144 144

Программу составил(и):
канд. физ.-мат. наук, доцент, Козлов Д.Ю.

Рецензент(ы):
канд. физ.-мат. наук, доцент, Пономарев И.В.

Рабочая программа дисциплины
Современные технологии разработки программного обеспечения

разработана в соответствии с ФГОС:
Федеральный государственный образовательный стандарт высшего образования - магистратура по направлению подготовки 09.04.03 Прикладная информатика (приказ Минобрнауки России от 19.09.2017 г. № 916)

составлена на основании учебного плана:
09.04.03 Прикладная информатика
утвержденного учёным советом вуза от 26.06.2023 протокол № 4.

Рабочая программа одобрена на заседании кафедры
Кафедра информатики

Протокол от 29.06.2022 г. № 11
Срок действия программы: 2022-2023 уч. г.

Заведующий кафедрой
к.ф.-м.н., доцент Козлов Д.Ю.


1. Цели освоения дисциплины

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

2. Место дисциплины в структуре ООП

Цикл (раздел) ООП: Б1.О.02

3. Компетенции обучающегося, формируемые в результате освоения дисциплины

ОПК-2Способен разрабатывать оригинальные алгоритмы и программные средства, в том числе с использованием современных интеллектуальных технологий, для решения профессиональных задач;
ОПК-2.1 Знает современные интеллектуальные технологии.
ОПК-2.2 Умеет обосновывать выбор современных интеллектуальных технологий и программной среды при разработке оригинальных программных средств для решения профессиональных задач.
ОПК-2.3 Владеет опытом разработки оригинальных алгоритмов и программных средств, в том числе с использованием современных интеллектуальных технологий, для решения профессиональных задач.
ОПК-5Способен разрабатывать и модернизировать программное и аппаратное обеспечение информационных и автоматизированных систем;
ОПК-5.1 Знает современное программное и аппаратное обеспечение информационных и автоматизированных систем.
ОПК-5.2 Умеет разрабатывать программное и аппаратное обеспечение информационных и автоматизированных систем для решения профессиональных задач.
ОПК-5.3 Способен модернизировать программное и аппаратное обеспечение информационных и автоматизированных систем
В результате освоения дисциплины обучающийся должен
3.1.Знать:
3.1.1.понятия регулярных выражений, кодировок текста, системы контроля версий и автоматизированного тестирования ПО;
модели, процессы, этапы жизненного цикла ИС;
процессы реинжиниринга ИС;
современные методологии проектирования ИС, распространённые технологические стандарты;
методики типового проектирования ИС.
3.2.Уметь:
3.2.1.применять регулярные выражения и различные кодировки текста;
использовать системы контроля версий;
производить автоматизированное тестирование ПО;
разрабатывать программы для работы в различных операционных системах;
создавать кроссплатформенные программы на уровне выполнения;
создавать программы на кроссплатформенных интерпретируемых языках
выбирать оптимальный программный продукт и модели информационных технологий из нескольких возможных для решения прикладной задачи.
выбрать программный продукт и технологии для решения задачи с учетом конкретной предметной области.
разрабатывать сервисные программы и сервисные оболочки при разработке приложений с учетом конкретной предметной области.
3.3.Иметь навыки и (или) опыт деятельности (владеть):
3.3.1.навыками применения регулярные выражения и различные кодировки текста;
навыками использования системы контроля версий;
навыками автоматизированного тестирования ПО;
навыками применения информационных технологий и творческого подхода при решении стандартных и нестандартных задач;
навыками выбора программных продуктов и мультиплатформенных технологий для решения задачи;
навыками использования сервисных программ и сервисных оболочек для решения задачи.
навыками работы с объектно-ориентированными языками программирования;
навыками работы с интерпретируемыми языками программирования;
навыками создания кроссплатформенных приложений.

4. Структура и содержание дисциплины

Код занятия Наименование разделов и тем Вид занятия Семестр Часов Компетенции Литература
Раздел 1. Регулярные выражения
1.1. Зачем нужны регулярные выражения? Типы регулярных выражений. PCRE Основные операции с использованием регулярных выражений Квантификаторы Специальные метасимволы "Жадные" и “ленивые" регулярные выражения Группировки Направление просмотра Лекции 1 4 Л2.1, Л2.2, Л1.1, Л2.4, Л1.2, Л1.3
1.2. Зачем нужны регулярные выражения? Типы регулярных выражений. PCRE Основные операции с использованием регулярных выражений Квантификаторы Специальные метасимволы "Жадные" и “ленивые" регулярные выражения Группировки Направление просмотра Лабораторные 1 4 Л2.1, Л2.2, Л1.1, Л2.4, Л1.2, Л1.3
1.3. Зачем нужны регулярные выражения? Типы регулярных выражений. PCRE Основные операции с использованием регулярных выражений Квантификаторы Специальные метасимволы "Жадные" и “ленивые" регулярные выражения Группировки Направление просмотра Сам. работа 1 25 Л2.1, Л2.2, Л1.1, Л2.4, Л1.2, Л1.3
Раздел 2. Системы контроля версий
2.1. История систем контроля версий. Основные понятия. CVS, SVN. Распределённые системы контроля версий. Git Основные сценарии работы. Лекции 1 4 Л2.2, Л1.1, Л2.4, Л1.2
2.2. История систем контроля версий. Основные понятия. CVS, SVN. Распределённые системы контроля версий. Git Основные сценарии работы. Лабораторные 1 8 Л2.2, Л1.1, Л2.4, Л1.2
2.3. История систем контроля версий. Основные понятия. CVS, SVN. Распределённые системы контроля версий. Git Основные сценарии работы. Сам. работа 1 25 Л2.1, Л2.2, Л1.1, Л2.4, Л1.2
Раздел 3. Автоматизация тестирования web-приложений с помощью Selenium WebDriver
3.1. Что такое Selenium WebDriver? Установка Python3 в Windows Переменная среды PATH Создание виртуального окружения для Selenium WebDriver. Установка Selenium в Windows. Установка драйвера для браузера. Пример работы Selenium WebDriver Напоминание о структуре веб-страницы Поиск элементов на веб-странице. Тестовые фреймворки Лекции 1 8 Л2.2, Л1.1, Л2.3, Л2.4, Л1.2
3.2. Что такое Selenium WebDriver? Установка Python3 в Windows Переменная среды PATH Создание виртуального окружения для Selenium WebDriver. Установка Selenium в Windows. Установка драйвера для браузера. Пример работы Selenium WebDriver Напоминание о структуре веб-страницы Поиск элементов на веб-странице. Тестовые фреймворки Лабораторные 1 14 Л2.2, Л1.1, Л2.3, Л2.4, Л1.2
3.3. Что такое Selenium WebDriver? Установка Python3 в Windows Переменная среды PATH Создание виртуального окружения для Selenium WebDriver. Установка Selenium в Windows. Установка драйвера для браузера. Пример работы Selenium WebDriver Напоминание о структуре веб-страницы Поиск элементов на веб-странице. Тестовые фреймворки Сам. работа 1 52 Л2.2, Л1.1, Л2.3, Л2.4, Л1.2

5. Фонд оценочных средств

5.1. Контрольные вопросы и задания для проведения текущего контроля и промежуточной аттестации по итогам освоения дисциплины
Примеры вопросов закрытого типа:
1. Что такое регулярное выражение?
A) Способ хранения данных
B) Механизм для работы с большими данными
C) Шаблон для поиска и манипуляции текстом
D) Функция для выполнения математических расчетов
2. Какой символ в регулярных выражениях используется для обозначения любого символа?
A) *
B) .
C) ?
D) \
3. Как можно указать диапазон символов в регулярном выражении?
A) {}
B) []
C) ()
D) <>
4. Какой символ в регулярном выражении указывает на начало строки?
A) ^
B) $
C) *
D) &
5. Что делает оператор "+" в регулярных выражениях?
A) Ищет 0 или более повторений
B) Ищет 1 или более повторений
C) Ищет точное совпадение
D) Ищет символы в пределах диапазона
6. Какой инструмент используется для управления версиями кода?
A) SQLite
B) Git
C) Docker
D) Jenkins
7. Что такое "репозиторий" в системе контроля версий?
A) Локальное хранилище программного обеспечения
B) Место для хранения старых версий кода
C) Система для создания программного обеспечения
D) Хранилище, где содержится все состояние проекта
8. Какой из следующих вариантов позволяет отменить последний коммит в Git?
A) git remove
B) git revert
C) git undo
D) git delete
9. Что такое "ветвление" в системе контроля версий?
A) Процесс слияния двух репозиториев
B) Создание независимой линии разработки
C) Удаление устаревшего кода
D) Обновление кодовой базы до последней версии
10. Какой командой можно создать новую ветку в Git?
A) git branch
B) git new branch
C) git create branch
D) git add branch
11. Что такое Selenium WebDriver?
A) Инструмент для автоматического тестирования на сервере
B) Библиотека для работы с базами данных
C) Инструмент для автоматизации браузеров
D) Среда разработки для создания веб-приложений
12. Какой метод используется для открытия веб-страницы в Selenium WebDriver?
A) get()
B) open()
C) navigate()
D) start()
13. Какой из следующих языков программирования поддерживается Selenium WebDriver?
A) PHP
B) Python
C) JavaScript
D) Все вышеперечисленные
14. Как происходит взаимодействие Selenium WebDriver с браузером?
A) Через API браузера
B) Через системные команды
C) Через файл конфигурации
D) Через сеть
15. Какой метод в Selenium WebDriver используется для поиска элемента на веб-странице по ID?
A) findElementById()
B) findElement()
C) getElementById()
D) find_by_id()
16. Что такое "assert" в контексте тестирования?
A) Утверждение, которое проверяет условия в тестах
B) Способ установки переменных
C) Способ идеологического описания функции
D) Метод для изменения состояния программы
17. В каком из следующих случаев лучше всего использовать селектор "XPath"?
A) Когда нужно выбрать элемент по классу
B) Когда структура HTML документа сложная
C) Когда селекторы CSS работают быстрее
D) Когда нужно проверить наличие элемента
18. Как в Selenium WebDriver происходит управление окнами браузера?
A) Через метод setWindow()
B) Через метод switchTo()
C) Через метод openNewWindow()
D) Через метод navigateTo()
19. Что такое "headless" режим в контексте Selenium WebDriver?
A) Запуск тестов без графического интерфейса
B) Запуск браузера в режиме максимальной производительности
C) Удаление всех заголовков в HTTP запросах
D) Запуск без сохранения логов
20. Какой из следующих подходов не является частью автоматизации тестирования?
A) Модульное тестирование
B) Интеграционное тестирование
C) Тестирование пользовательского интерфейса
D) Ручное тестирование
Ответы:
1. C
2. B
3. B
4. A
5. B
6. B
7. D
8. B
9. B
10. A
11. C
12. A
13. D
14. A
15. B
16. A
17. B
18. B
19. A
20. D
Примеры воросов закрытого типа:
1. Что такое регулярные выражения?
Ответ: Это шаблон, используемый для поиска и манипуляции текстом, задающий определённые правила для формата строки.
2. Какой символ в регулярных выражениях обозначает "или"?
Ответ: Символ | (вертикальная черта) используется для обозначения альтернатив.
3. Что делает специальный символ "\d" в регулярных выражениях?
Ответ: Символ "\d" соответствует любому цифровому символу (0-9) в строке.
4. Как обозначается ненулевое количество повторов символа в регулярных выражениях?
Ответ: Используется символ "+" (плюс), который указывает на одно или более повторений.
5. Как осуществляется работа с конфликтами в Git при слиянии веток?
Ответ: При возникновении конфликта Git требует разрешения конфликта, и пользователю необходимо вручную отредактировать файлы с конфликтами и затем выполнить коммит.
6. Что такое "коммит" в Git?
Ответ: Коммит — это операция, сохраняющая текущие изменения в репозитории с указанием сообщения, которое описывает внесенные изменения.
7. Что такое "отслеживаемый" и "неотслеживаемый" файлы в Git?
Ответ: Отслеживаемые файлы — это файлы, находящиеся под контролем версий, тогда как неотслеживаемые файлы — это файлы, которые не добавлены в индекс Git и не учитываются в коммитах.
8. Какой метод Selenium WebDriver используется для запуска браузера?
Ответ: Метод driver.get(url) открывает указанную веб-страницу в браузере, который управляется WebDriver.
9. Как выполнить клик по элементу на странице с помощью Selenium WebDriver?
Ответ: Сначала необходимо найти элемент с помощью метода findElement, а затем вызвать метод click() на найденном элементе.
10. Что такое "Page Object Model" (POM) в автоматизации тестирования?
Ответ: Page Object Model — это шаблон проектирования, который разделяет элементы интерфейса и действия над ними в разные классы, что упрощает поддержку и масштабируемость тестов.
11. Что такое "группировка" в регулярных выражениях и как она осуществляется?
Ответ: Группировка в регулярных выражениях позволяет объединять несколько символов или подшаблонов в одну единицу, используя круглые скобки. Это позволяет применять к группе операторов или извлекать соответствующие части строки.
12. Какой оператор в регулярных выражениях используется для обозначения "не" или отрицания?
Ответ: Для обозначения отрицания используется символ "^" внутри квадратных скобок, что позволяет указать, какие символы не должны присутствовать в совпадении.
13. Что такое "ветвление" в системах контроля версий, и как оно используется?
Ответ: Ветвление позволяет создавать независимые версии проекта, где разработчики могут вносить изменения, не влияя на основную кодовую базу, что полезно для разработки новых функций или исправления ошибок.
14. Объясните принцип работы команды git rebase.
Ответ: Команда git rebase позволяет взять набор коммитов, создать на их основе новую ветку и интегрировать изменения, что помогает удерживать историю более линейной и понятной.
15. Каковы основные шаги при создании теста с использованием Selenium WebDriver?
Ответ: Основные шаги включают: инициализацию экземпляра WebDriver, открытие целевой страницы, выполнение действий, таких как клики и ввод текста, и завершение теста путем закрытия браузера.
16. Что делает метод findElement в Selenium WebDriver?
Ответ: Метод findElement используется для поиска первого элемента на веб-странице, который соответствует заданному критерию, таким как идентификатор, класс или CSS селектор.
17. Каковы основные отличия между git pull и git fetch?
Ответ: Команда git fetch загружает изменения из удаленного репозитория, но не объединяет их с текущей веткой, в то время как git pull выполняет как fetch, так и слияние с текущей веткой.
18. Что означает метка "статус" в Git, и какую информацию она предоставляет?
Ответ: Метка "статус" (git status) показывает текущее состояние рабочей директории и области подготовки, указывая на изменения, которые были внесены, но еще не закоммичены.
19. Как можно выполнять ожидания в Selenium WebDriver, чтобы дождаться загрузки элемента?
Ответ: В Selenium WebDriver можно использовать явные ожидания с помощью WebDriverWait для ожидания, пока элемент не станет доступным или видимым перед выполнением дальнейших действий.
20. Как регулярные выражения могут быть использованы валидации форм на веб-сайте?
Ответ: Регулярные выражения могут использоваться для проверки правильности введенных данных, таких как адреса электронной почты, номера телефонов или пароли, гарантируя, что введенные значения соответствуют заданному формату перед отправкой формы.

КРИТЕРИИ ОЦЕНИВАНИЯ ОТКРЫТЫХ ВОПРОСОВ.
«Отлично» (зачтено): Ответ полный, развернутый. Вопрос точно и исчерпывающе передан, терминология сохранена, студент превосходно владеет основной и дополнительной литературой, ошибок нет.
«Хорошо» (зачтено): Ответ полный, хотя краток, терминологически правильный, нет существенных недочетов. Студент хорошо владеет пройденным программным материалом; владеет основной литературой, суждения правильны.
«Удовлетворительно» (зачтено): Ответ неполный. В терминологии имеются недостатки. Студент владеет программным материалом, но имеются недочеты. Суждения фрагментарны.
«Неудовлетворительно» (не зачтено): Не использована специальная терминология. Ответ в сущности неверен. Переданы лишь отдельные фрагменты соответствующего материала вопроса. Ответ не соответствует вопросу или вовсе не дан.

5.2. Темы письменных работ для проведения текущего контроля (эссе, рефераты, курсовые работы и др.)
см.приложение
5.3. Фонд оценочных средств для проведения промежуточной аттестации
см.приложение

6. Учебно-методическое и информационное обеспечение дисциплины

6.1. Рекомендуемая литература
6.1.1. Основная литература
Авторы Заглавие Издательство, год Эл. адрес
Л1.1 Маккинни У. Python и анализ данных: Москва: ДМК Пресс, 2020 https://e.lanbook.com/book/131721
Л1.2 Шарден Б., Массарон Л., Боскетти А. Крупномасштабное машинное обучение вместе с Python: Учебные пособия Издательство "ДМК Пресс", 2018 //ЭБС издательства «Лань» e.lanbook.com
Л1.3 Мельников С. В. Регулярные выражения Perl и их применение: Учебная литература для ВУЗов Национальный Открытый Университет «ИНТУИТ», 2016 biblioclub.ru
6.1.2. Дополнительная литература
Авторы Заглавие Издательство, год Эл. адрес
Л2.1 Хахаев И. А. Практикум по алгоритмизации и программированию на Python: курс М.: Национальный Открытый Университет «ИНТУИТ», 2016//ЭБС «Университетская библиотека online» biblioclub.ru
Л2.2 Л. Рамальо Python. К вершинам мастерства: ДМК Пресс, 2016//ЭБС издательства «Лань» e.lanbook.com
Л2.3 Ошероув Р. Искусство автономного тестирования с примерами на C#: Издательство "ДМК Пресс", 2014 e.lanbook.com
Л2.4 Митчелл Р. Скрапинг веб-сайтов с помощю Python: Самоучители и руководства Издательство "ДМК Пресс", 2016 e.lanbook.com
6.2. Перечень ресурсов информационно-телекоммуникационной сети "Интернет"
Название Эл. адрес
Э1 Программирование на Python stepik.org
Э2 Python: основы и применение stepik.org
Э3 Основы Git stepik.org
Э4 Автоматизация тестирования с помощью Selenium и Python stepik.org
Э5 Сервис построения регулярных выражений regex101.com
Э6 Курс в Moodle "Современные технологии разработки программного обеспечения" portal.edu.asu.ru
6.3. Перечень программного обеспечения
Microsoft Windows 7 Professional
Office 2010 Professional
Acrobat Reader
7-Zip
Интерпретатор языка программирования Python 3

Oracle VirtualBox
GNU/Linux (любой, общего назначения, с поддержкой репозитория)
стандартный набор утилит Linux и Windows
6.4. Перечень информационных справочных систем
Информационная справочная система:
1. СПС КонсультантПлюс (инсталлированный ресурс АлтГУ или http://www.consultant.ru/).
Профессиональные базы данных:
1. Электронная база данных «Scopus» (http://www.scopus.com);
2. Электронная библиотечная система Алтайского государственного университета (http://elibrary.asu.ru/);
3. Научная электронная библиотека elibrary (http://elibrary.ru)

7. Материально-техническое обеспечение дисциплины

Аудитория Назначение Оборудование
110М лаборатория информационных технологий - компьютерный класс – учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 14 посадочных мест; рабочее место преподавателя; доска магнитно-маркерная 1 шт.; компьютеры: марка NAIO Corp Z520 - 14 ед.
109М лаборатория информационных технологий - компьютерный класс – учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 13 посадочных мест; рабочее место преподавателя; доска магнитно-маркерная 1 шт.; компьютеры: марка NAIO Corp Z520 - 13 ед.
108М лаборатория информационных технологий - компьютерный класс – учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 13 посадочных мест; рабочее место преподавателя; доска магнитно-маркерная; интерактивная доска: SMART Board – 1 ед.; персональные компьютеры: NAIO Corp Z520 – 13 ед.
304С лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 15 посадочных мест; рабочее место преподавателя; доска магнитно-маркерная; компьютеры: марка AsusTeK Computer INC модель P8B75-M; мониторы: марка ASUS модель VW224 - 15 единиц; плакат "Компьютер и безопасность"
103С лаборатория информационных технологий - компьютерный класс – учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации; помещение для саостоятельной работы Учебная мебель на 16 посадочных мест; рабочее место преподавателя; доска маркерная; марка ASUSTeK Computer INC модель P8B75-M - 15 единиц; мониторы: марка Asus модель VW224 - 15 единиц
Помещение для самостоятельной работы помещение для самостоятельной работы обучающихся Компьютеры, ноутбуки с подключением к информационно-телекоммуникационной сети «Интернет», доступом в электронную информационно-образовательную среду АлтГУ
208С лаборатория информационных технологий - компьютерный класс – учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 15 посадочных мест; рабочее место преподавателя; доска магнитно-маркерная; компьютеры: марка HP модель ProOne 400 G2 20-in Non-Touch AiO - 15 единиц
Учебная аудитория для проведения занятий лекционного типа, занятий семинарского типа (лабораторных и(или) практических), групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации, курсового проектирования (выполнения курсовых работ), проведения практик Стандартное оборудование (учебная мебель для обучающихся, рабочее место преподавателя, доска)

8. Методические указания для обучающихся по освоению дисциплины

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