Основы работы в системах контроля версий
Учебный план: 09.03.02, 2023, (4.0), Информационные системы и технологии
Цели и задачи дисциплины
Целью освоения дисциплины «Основы работы в системах контроля версий» является выработка базовых знаний в области поддержки программных проектов, навыков индивидуальной и коллективной разработки программного обеспечения на основе современных методов и стандартов версионирования, разработки, отладки и дальнейшего развития программных продуктов. Задачи дисциплины: 1) дать представление о задаче контроля версий программного обеспечения при его коллективной разработке; 2) дать представление о процессе отслеживании ошибок в программных проектах с большим количеством исполнителей; 3) дать общие представления и знания о разновидностях типовой архитектуры программного обеспечения и способах проектирования архитектуры и разработки ПО коллективами исполнителей.
Краткое содержание дисциплины
Понятие коллективной разработки программного обеспечения. Основные типы программных средств поддержки процесса коллективной разработки ПО. Особенности совместной работы над программными проектами. Среды разработки ПО и их основные функции, обеспечивающие возможность коллективной разработки ПО. Проблема регистрации изменений, синхронизации информации и отмены изменений. Особенности архитектуры локальных, централизованных и распределенных систем управления версиями. Основные операции: обновление рабочей копии, фиксация изменений и слияние версий. Конфликты и способы разрешения конфликтов. Сравнительный обзор возможностей современных систем управления версиями: RCS, CVS, Subversion, Aegis, Monotone, Mercurial, Bazaar, Arch, Perforce, Team Foundation Server, Git. История возникновения, используемая архитектура, основные возможности, достоинства и недостатки, рекомендации по использованию. Общие принципы работы. Централизованные и распределенные системы контроля версий. Система контроля версий Subversion. Структура хранилища данных. Дельта-кодирование. Рабочая копия. Протоколы доступа к хранилищу. Правки: создание, фиксация, смешивание. Справочная система. Идентификация правок: числовые идентификаторы, ключевые слова, даты. Создание рабочей копии. Внесение изменений в рабочую копию. Анализ изменений. Обновление рабочей копии. Публикация изменений рабочей копии в хранилище. Решение конфликтов. Ветвление в Subversion. Использование веток. Создание ветки. Работа с веткой. Копирование изменений между ветками. Копирование отдельных изменений. Слияние веток. Основы работы в GIT. Ветвление, как основа системы контроля версий, достоинства и недостатки. Слепки. Области хранения файлов. Создание и клонирование репозитория. Игнорирование файлов. Жизненный цикл файлов в GIT. Работа с удаленными репозиториями. Отслеживание ошибок, как неотъемлемая часть разработки и сопровождения программного обеспечения. Классификация программных ошибок. Основные атрибуты отчета об ошибке. Жизненный цикл ошибки. Рынок систем отслеживания ошибок. Интеграция в среды разработки ПО. Системы отслеживания ошибок. Интеграция в среды разработки ПО. Системы отслеживания ошибок. Основные понятия о тестировании программного обеспечения. Пирамида автоматизации тестирования. Особенности написания unit-тестов. Тестовый фреймворк NestNG.
Компетенции обучающегося, формируемые в результате освоения дисциплины
Выпускник должен обладать:
- ПК-4 Способен выполнять работы по созданию (модификации), проектированию и сопровождению информационных систем
- УК-3 Способен осуществлять социальное взаимодействие и реализовывать свою роль в команде