Системы управления проектами. Лекция 3. Тема 1. Стандарты в области разработки ПО

1.

Системы управления
проектами
Лекция 3
Тема 1: Стандарты в области разработки ПО
1

2.

Системы управления
проектами
Расширение системы контроля версий
Добавляется задача организационного
управления процессом разработки
Возможность управления «виртуальным»
коллективом разработчиков
2

3.

Системы управления проектами
Процесс управления проектом =
процесс управления конфигурацией
англ. Software Configuration Management (SCM)
Конфигурация – состав и взаимосвязь
составных частей
Проект (процесс) – усилия с определенными
датами начала и окончания, предпринятые
для создания продукции или услуг в
соответствии с заданными ресурсами,
областью применения, требованиями и
ответственностью
3

4.

Конфигурационное управление
Конфигурационное управление – комплекс
методов, направленных на:
систематический учет изменений, вносимых
разработчиками в программный продукт в процессе
его разработки и сопровождения
сохранение целостности системы после изменений
формализацию процесса внесения изменений
предотвращение нежелательных и
непредсказуемых эффектов
Конфигурационное управление = Управление проектом
4

5.

Цели конфигурационного У.
Контроль (отслеживание изменений,
соблюдение процесса разработки)
Управление (управляющие решения на
основе результатов контроля)
Экономия средств (снижение рисков
потерь)
Качество (достижение и сохранение)
6

6.

Задачи конфигурационного У.
идентификация конфигурации
контроль изменения конфигурации
учет текущего состояния конфигурации
управление процессом разработки
управление сборкой
управление окружением
отслеживание задач, проблем, ошибок
7

7.

Примеры
Redmine – универсальная СУП – работа с любыми
СКВ, LDAP и БД
RhodeCode – коммерческая СУП, работа с любыми
СКВ, платная
На основе СКВ Git (GitHub, GitLab) – все задачи и
процедуры конфигурационного управления именно в
терминологии Git, плюс открытость и доступность к
использованию
GitFlic – отечественная СУП, только хранение проектов,
удаленный доступ, командная работа, остальной функционал
в разработке
Gitee, Gogs – китайские аналоги с бОльшим количеством
социальных инструментов для обмена информацией
9

8.

Redmine, Gitlab, Github
Кроссплатформенное приложение с web-интерфейсом
Ведение нескольких проектов, иерархия проектов
Доступ по ролевой модели с поддержкой LDAP
Роль пользователя в каждом проекте может быть своей
Запрос пользователя – новая задача в проекте
Взаимосвязь задач и их иерархия, любое события в
процессе разработки – задача со своими сроками,
статусом и ответственным
Системы отслеживания задач (ошибок, улучшений,
документирования, поддержки)
Взаимосвязь задач и их иерархия
10

9.

Redmine, Gitlab, Github
Учет времени, сетевое и линейное (календарное)
планирование
Управление проектами (файлами, документацией,
новостями)
Система оповещения об изменениях (почта, лента
новостей)
Форумы
Легкая интеграция с системами контроля версиями, СУБД
Возможность локальной установки без Интернет для
Redmine и GitLab
11

10.

Интерфейсы GitLab
Работа через Git по интерфейсам HTTP,
HTTPS, SSH
Работа через веб-интерфейс
Неудобно писать код, но для этого есть свои среды
разработки
Решение задач управления проектом
Постановка задачи со сроками и ответственными
Назначение и изменение ролей участников
проекта
Инспекция кода и комментарии
Слияние веток (запрос и разрешение)
12

11.

Веб-интерфейс GitLab
13

12.

Readme.md
14

13.

Доступные проекты (Shift+p)
Слайд выбор проектов, доступных
пользователю
15

14.

Активность проекта (gv)
16

15.

Страница пользователя
17

16.

Визуализация активности
18

17.

Визуализация активности (gd)
19

18.

Анализ содержимого (gd)
20

19.

Список коммитов (gc)
21

20.

Содержание коммита
22

21.

Ветки проекта
23

22.

Метки проекта
24

23.

Граф изменений (gn)
25

24.

Роли пользователей в проекте
Guest (Гость)
Reporter (Докладчик)
Developer (Разработчик)
Maintainer (Управляющий)
Owner (Владелец)
26

25.

Роли пользователей в проекте
27

26.

Задачи – Issues – Assignee (gi)
28

27.

Задачи (Метки – Labels)
29

28.

Этапы – Milestones
30

29.

Доски Boards (gb)
31

30.

Merge request – Запрос на слияние (gm)
32

31.

Требования – Requirements
33

32.

CI/CD – непрерывная
интеграция и развертывание
Continuous Integration & Continuous Delivery
Непрерывная интеграция
изменения вносятся в код регулярно, до нескольких раз в
день
каждое изменение автоматически тестируется и
интегрируется в проект
проект тестируется целиком
Непрерывное развертывание
после подтверждения работоспособности изменения
вносятся в основную ветку проекта и доводятся до заказчика
(в автоматическом или ручном режиме)
34

33.

CI/CD (gj)
35

34.

Задачи по расписанию
36

35.

Сочетания клавиш «?»
37

36.

Общение
Оповещение о событиях
Внутренние – Assigned issues, ToDo
Внешние – почта
Форумы
Только сторонние
38

37.

Системы управления
проектами
Лекция 3
Тема 1: Стандарты в области разработки ПО
39

38.

Вопросы
1.
2.
Системы управления проектами. Назначение.
Понятия «Конфигурация» и «Проект». Цели и
задачи конфигурационного управления. Примеры.
Система управления проектами GitLab.
40
English     Русский Правила