Кафедра 
Информатики и Математического Обеспечения
ПетрГУ | О кафедре | Мобильные платформы | Проекты по разработке ПО | Публикации | НФИ
Сотрудники | Выпускники | Учебный процесс | Курсовые работы | Вычислительные ресурсы
Архив новостей | Контактная информация | Поиск

Сетевые инструменты распределенной разработки ПО

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

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

Конференция для занятий: https://meet.cs.petrsu.ru/cs.petrsu.ru-chistyakov

 

Практические задания

  1. Автоматизация сборки проекта
  2. Планирование
  3. Системы управления версиями
  4. Проектирование
  5. Стили кодирования
  6. Автоматическая верификация
  7. Автоматическое тестирование
    Вопросы к экзамену IT-специальности

Дополнительная литература







Вверх

1. Автоматизация сборки проекта

ПО и документация

Лекция 1

GNU Make

Apache Ant

Autotools

Задание

Разработать или взять готовый проект, содержащий исходный код и документацию (справка, readme, man, latex, etc.). Создать конфигурационные файлы по выбору для двух утилит из трех: Make (проект на С, С++), Ant (проект на Java) или Autotools (проект на С, С++), удовлетворяющие следующим требованиям:

п.с. по желанию студента можно заменить любой пункт(ы) на ознакомление с инстурментами для автоматизации установки(InnoSetup/NSIS/WiX), развёртывания и управления приложениями(Jenkins/Octopus/Ansible), автогенерация документации(Doxygen), контейнеризация (Docker,Kubernetes) и/или управлением конфигурацией Puppet/Chef/SaltStack/CloudStack/OpenStack.

Срок: 19.02.2023







Вверх

2. Планирование

Лекция 2

ПО для построения диаграмм

Задание

Составить план проекта. Сделать распределение ресурсов (время, стоимость, люди) для каждой задачи. Нарисовать диаграммы Гантта и Перта для точки начала проекта и для произвольного внутреннего состояния проекта. Найти критический путь проекта.

План должен отвечать следующим требованиям:

По результатам работы сформировать отчет содержащий план проекта, распределение ресурсов, диаграммы Гантта и Перта.

Срок: 05.03.2023







Вверх

3. Системы управления версиями

Документация и ПО

Задание

По выбору выполнить задание для репозитория CVS, Subversion или Git:

а) Работа с репозиторием CVS

б) Работа с репозиторием Subversion

в) Работа с репозиторием Git

Срок: 19.03.2023







Вверх

4. Проектирование

Документация и ПО

Задание

Построить высокоуровневые модели (структурные и поведенческие) разрабатываемого ПО. Произвести не менее 3-х детализаций. Произвести автоматическую генерацию кода (если поддерживается). Составить отчет содержащий:

Срок: 02.04.2023







Вверх

5. Стили кодирования

Лекция 5

Документация и ПО

Задание

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

Срок: 16.04.2023







Вверх

6. Автоматическая верификация

Лекция 6

ПО и документация

Задание

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

Срок: 30.04.2023







Вверх

7. Автоматическое тестирование

Лекция 7

Автоматизация тестирования

ПО и документация

Задание

Реализовать набор тестов (не менее 10 тестов, общие, краевые и негативные) и провести автоматическое тестирование программы. По результатам сформировать отчет.

Срок: 21.05.2023



Вопроcы к ЗАЧЕТУ

  1. Назначение и компоненты CASE
  2. Средства автоматизации сборки
  3. GnuMake, понятия правила, цели, зависимости и т.д.
  4. AutoTools, состав, использование, макросы
  5. Планирование, временные и сетевые диаграммы
  6. Системы управления версиями. предпосылки и проблемы
  7. Обзор архитектур, моделей хранения,модель изменения.
  8. CVS, модель, система команд.
  9. SubVersion, модель, система команд.
  10. Моделирование, классический подход, MVC.
  11. Agile Modelling, IDEF
  12. Модель ERD, DFD.
  13. UML, преимущества и недостатки
  14. Стили кодирование, предпосылки и проблемы.
  15. Автоматическая верификация кода.
  16. Методы и инструменты тестирования.
  17. Модель звелости возможностей.