Методы организации работы в команде разработчиков. Системы контроля версий. Лекция №3

Содержание

Слайд 2

Все множество разработок в зависимости от количества участников и типов взаимоотношений

Все множество разработок в зависимости от количества участников и типов взаимоотношений

между ними может быть сведено к триаде разработок.
Слайд 3

1. Авторская разработка Авторская разработка - принцип создания программных продуктов, при

1. Авторская разработка
Авторская разработка - принцип создания программных продуктов, при котором

весь жизненный цикл разработки поддерживается одним единственным человеком.
2. Коллективная разработка
Одним из основных вопросов коллективной разработки является разделение труда - от равноправных соисполнителей до организации в виде жесткой иерархии (например, бригады главного программиста).
3. Общинная модель разработки
Идеология общинной ("базарной") модели разработки сформулирована в программной статье Эрика Раймонда (Eric Raymond) "Собор и Базар". Общинная модель характеризуется тремя основными факторами: децентролизованность разработки, разработка ведется на базе открытых исходных текстов, большое количество внешних тестеров (бета-тестеров), позволяющих быстро обнаруживать ошибки и проблемы в программе.
Слайд 4

Коллективная разработка Бригада равноправных соисполнителей обычно состоит из специалистов, занимающихся примерно

Коллективная разработка
Бригада равноправных соисполнителей обычно состоит из специалистов, занимающихся примерно подобными

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

ОСНОВНЫЕ ЭТАПЫ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Анализ - определение процесса разработки ПО

ОСНОВНЫЕ ЭТАПЫ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Анализ - определение процесса разработки ПО
Проектирование -

управление проектом разработки
Конструирование - описание целевого программного продукта
Программирование - проектирование продукта
Разработка продукта
Тестирование - тестирование частей программного продукта
Отладка - интеграция частей и тестирование продукта в целом
Развертывание - сопровождение продукта, обучение пользователей
Выпуск продукта
Слайд 6

МИНИМАЛЬНЫЕ ФУНКЦИИ СИСТЕМЫ КОЛЛЕКТИВНОЙ РАЗРАБОТКИ: это регистрация изменений, вносимых в проект, хранение файлов проекта.

МИНИМАЛЬНЫЕ ФУНКЦИИ СИСТЕМЫ КОЛЛЕКТИВНОЙ РАЗРАБОТКИ:

это регистрация изменений, вносимых в проект,
хранение

файлов проекта.
Слайд 7

Системы управления версиями (version control systems, VCS) или системы управления исходным

Системы управления версиями (version control systems, VCS) или системы управления исходным

кодом (source management systems, SMS) — важный аспект разработки современного ПО. Это программное обеспечение , предназначенное для работы с постоянно изменяющейся информацией. VCS предоставляет следующие возможности: 1) поддержка хранения файлов в репозитории. 2) поддержка истории версий файлов в репозитории. 3) нахождение конфликтов при изменении исходного кода и обеспечение синхронизации при работе в многопользовательской среде разработки. 4) отслеживание авторов изменений.

Система контроля версий

Слайд 8

1) централизованные/распределённые — в централизованных системах контроля версий вся работа производится

1) централизованные/распределённые — в централизованных системах контроля версий вся работа

производится с центральным репозиторием, в распределённых — у каждого разработчика есть локальная копия репозитория. 2) блокирующие/не блокирующие — блокирующие системы контроля версий позволяют наложить запрет на изменение файла, пока один из разработчиков работает над ним, в неблокирующих один файл может одновременно изменяться несколькими разработчиками. 3) для текстовых данных/для бинарных данных — для VCS для текстовых данных очень важна поддержка слияния изменений, для VCS с бинарными данными важна возможность блокировки.

Классификация систем контроля версий

Слайд 9

МОНИТОРИНГ РАБОТОСПОСОБНОСТИ НЕКОТОРЫХ ИЗ СИСТЕМ КОНТРОЛЯ ВЕРСИЙ. Bazaar, ранее известная как

МОНИТОРИНГ РАБОТОСПОСОБНОСТИ НЕКОТОРЫХ ИЗ СИСТЕМ КОНТРОЛЯ ВЕРСИЙ.

Bazaar, ранее известная как Bazaar-NG,

утилита командной строки bzr, — это распределённая система управления версиями, разработка которой спонсируется фирмой Canonical Ltd, в последнюю версию по сравнению с предыдущей было внесено более 50 изменений. Данная система разработана в целях облегчения создания и развития проектов для пользователей.
Mercurial, в переводе с англ. «подвижный», — распределённая система управления версиями, способная функционировать на многих операционных системах и различных аппаратных платформах, разработанная для эффективной работы с очень большими кодами.
Git — распределённая система управления версиями файлов. Код программы был написан на языке «С», проект создан Линусом Торвальдсом в 2005 году для управления разработкой ядра Linux, является общедоступным программным обеспечением. Данная система была введена многими ведущими разработчиками, используется в известных Linux-сообществу проектах.
Concurrent Versions System (или CVS, в переводе «Система Одновременных Версий») — представляет собой программный продукт, который относится к разряду систем управления версиями. Программа хранит историю изменений исходного кода программного обеспечения, тем самым облегчая совместную работу программистов над одним проектом. CVS популярна в мире открытого программного обеспечения.