Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

SE_labs

.pdf
Скачиваний:
23
Добавлен:
01.03.2016
Размер:
3.17 Mб
Скачать

Инженерия программного обеспечения

Рисунок 1.2 – Стартовая страница Redmine

11

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

Рисунок 1.3 – Закладка «Проекты»

12

Инженерия программного обеспечения

Роли пользователей включают в себя набор привилегий, позволяющих разграничивать доступ к различным функциям системы. Помимо администратора системы, незарегистрированного пользователя и не участника проекта, в системе по умолчанию созданы 3 роли участников проекта («Менеджер», «Разработчик», «Ответственный за подготовку документации»), перечень и настройки прав доступа которых можно изменять. Кроме того, пользователям назначается роль в каждом проекте, в котором он участвует, например «менеджер», «разработчик» или «клиент» и т.д.. При выборе Администрирование – Роли – Отчет о правах доступа можно получить полный отчет о правах доступа пользователей системы.

При создании задач проекта можно назначить ответственных за их выполнение, установить предполагаемое время завершения работ, при необходимости включить участников команды в список наблюдателей (которые при изменении состояния задачи будут получать уведомления). Каждая задача связана с определенным видом трекера (или координатора) – основная классификация, по которой сортируются задачи в проекте, например «Новая функция», «Исправление ошибки», «Документирование» (список трекеров можно менять). Задача имеет статус (например, «открыта», «назначена», «решена», перечень также можно изменять), причем существует возможность определения прав на назначение статуса (к примеру, в состояние «закрыта» задачу может перевести только team-лидер). Воркфлоу задач — связь статуса, типа задачи, роли пользователя и возможного перехода. Определяет кто, в каком состоянии задачи, какой тип задачи в какой статус может переводить. Воркфлоу задач настраивается в разделе Администрирование – Последовательность действий (рисунок 1.4).

13

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

Рисунок 1.4 – Настройка Workflow задач

При решении задачи, можно изменить ее статус, поменять исполнителя, % готовности, а также зафиксировать время, потраченное на решение (и оставить комментарий о проделанной работе). Учет затраченного времени удобно использовать для анализа вклада каждого участника в проект. Можно получить отчет, где видно общее время, потраченное каждым из участников на разработку проекта, а также можно посмотреть подробности о проделанной работе.

Задачи могут быть взаимосвязаны: например, одна задача является подзадачей для другой или предшествовать ей.

Система поддерживает учет затраченного времени благодаря сущности «Затраченное время», связанной с пользователями и задачей. Сущность позволяет хранить затраченное время, вид деятельности пользователя (разработка, проектирование, поддержка) и краткий комментарий к работе. Эти данные могут быть использованы, например, для анализа вклада каждого участника в проект или для оценки фактической трудоемкости и стоимости разработки.

Доступен к просмотру список всех задач проекта (с возможностью наложения фильтра), а также информация следующего вида: сколько задач проекта было создано / решено каждым из участников проекта (рисунок 1.5).

14

Инженерия программного обеспечения

Рисунок 1.5 – Получение отчета о задачах проекта

Диаграмма Ганта (Gantt Chart) – это вид диаграммы, используемой для планирования и контроля выполнения проекта (рисунок 1.6). На диаграмме отображаются задачи и стадии проекта с учетом их протяженности во времени. Задачи на диаграмме могут быть зависимыми друг от друга (например, одна задача может начинаться только после завершения другой). Кроме того, может показываться процент выполнения каждой задачи и ответственный за ее выполнение. Диаграмма Ганта проекта в Redmine строится автоматически, отображает задачи и стадии проекта с учетом их протяженности во времени, состояния и процента выполнения.

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

15

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

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

Рисунок 1.6 – Автоматическое построение диаграммы Ганта проекта

На вкладке Активность отображаются все действия по проекту с сортировкой по датам.

Вкаждом проекте присутствуют разделы Документы/Файлы, раздел wiki, в котором можно создавать описание проекта и документацию; есть форум проекта, возможна подписка на разделы, темы; существует раздел новостей.

Вразделах Администрирование – Настраиваемые поля и Администрирование – Справочники можно создавать новые или изменять служебные или пользовательские сущности (новые значения приоритета задачи, категории документов, свойства задач, пользователей, проектов и т.д.)

Внастройках проекта можно указать репозиторий проекта. Система предоставляет веб-интерфейс для просмотра содержимого репозитория, истории изменений, позволяет просматривать различия версий. Существует возможность отслеживания изменений в репозитории, и их привязки к определенным задачам, а также возможно настроить автоматический переход задачи в определенный статус при коммите (например, если указать в комментарии коммита ключевое слово – fixed, то задача будет автоматически переведена в статус «закрыта»).

Активность работы каждого из участников команды можно оценить, просмотрев статистику репозитория.

Redmine содержит систему плагинов, которая предоставляет возможность расширения системы.

16

Инженерия программного обеспечения

1.3 Порядок выполнения работы

1. Формирование команды для выполнения лабораторных работ. Состав команды желательно оставить таким же, как при выполнении КП по дисциплине «ООП», поскольку на базе лабораторных ра-

бот и КП будет выполняться РГР.

2. Установка системы Redmine:

– установить ruby:

для ОС Ubuntu:

$ aptitude install ruby1.8 ruby1.8-dev irb rdoc ri

для ОС Fedora:

$ yum install ruby ruby-devel ruby-libs ruby-mode ruby-rdoc ruby-irb ruby-ri ruby-docs

– скачать менеджер пакетов ruby (пакет rubygems 1.3.7), распаковать и выполнить в корне директории команду:

$ ruby setup.rb

– с помощью менеджера пакетов ruby, установить rails версии 2.3.5, rack 1.0.1 и rake 0.8.3 соответствующими командами, например:

$ gem install rails –v=2.3.5

– установить модуль ruby mysql:

$

gem

install

mysql

–with-mysql-

config=/path/to/mysql_config

скопировать и распаковать пакет redmine-1.0.0.tar.gz;

создать пустую базу данных MySQL и соответствующего пользователя redmine, предоставив ему права на созданную

базу:

create database redmine character set utf8;

create user 'redmine'@'localhost' identified by

'my_password';

all

privileges

on

redmine.*

to

grant

'redmine'@'localhost';

указываем настройки БД для ‘production’ в файле config/database.yml.

создаем ключ сессии, выполнив в корневой директории:

$ rake generate_session_store

и структуру базы данных:

$ rake db:migrate RAILS_ENV="production"

– заполняем БД данными конфигурации:

$

rake

redmine:load_default_data

RAILS_ENV="production"

– настраиваем доступ (пользователь, от имени которого запущен Redmine, должен иметь права на запись к директори-

ям files, log, tmp): $ useradd redmine

$ chown -R redmine:redmine files log tmp public/plugin_assets

17

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

$ chmod -R 755 files log tmp public/plugin_assets

– проверим установку:

$ ruby script/server webrick -e production

По адресу http://localhost:3000 заходим на стартовую стра-

ницу Redmine.

3. Настраиваем веб-сервер apache для работы redmine.

– устанавливаем модуль Passenger Apache: $ gem install passenger

$ cd /var/lib/gems/1.8/gems/passenger-2.2.15 $ bin/passenger-install-apache2-module

– необходимо раскомментировать строку в файле config/environment.rb:

ENV['RAILS_ENV'] ||= 'production'

– в конфигурационный файл apache добавим загрузку модуля passenger:

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger- 2.2.15/ext/apache2/mod_passenger.so

<IfModule passenger_module> PassengerRoot

/usr/lib/ruby/gems/1.8/gems/passenger-2.2.15 PassengerRuby /usr/bin/ruby1.8 PassengerDefaultUser www-data </IfModule>

– создать символическую ссылку на директорию установки redmine:

$ ln -s /opt/redmine/redmine-1.0.0 /var/www/redmine

– создаем виртуальный хост для redmine:

<VirtualHost *:80> ServerName redmine.local

DocumentRoot /var/www/redmine/public LogLevel warn

ErrorLog /var/log/apache2/redmine_error

CustomLog /var/log/apache2/redmine_access combined <Directory /var/www/redmine/public>

AllowOverride all Order allow,deny Allow from all

Options -MultiViews Indexes FollowSymLinks </Directory>

</VirtualHost>

– проверить установку.

4.Изучить функциональные особенности системы.

5.Изучить функции администрирования и настройки системы.

1.4 Задания для самостоятельной работы

Создать собственное оформление (тему) системы.

18

Инженерия программного обеспечения

1.5Содержимое отчета

название и тема лабораторной работы;

цель лабораторной работы;

описание процесса установки Redmine; результаты привести в виде скриншотов;

кратко отобразить изученный функционал системы;

выводы.

1.6Контрольные вопросы

1.Что входит в понятие «ресурсы программного проекта»?

2.Целесообразно ли применение систем управления проектами для heavy- и agile-разработки и для какого типа разработки в большей мере?

3.Перечислите основные характеристики и возможности систе-

мы Redmine.

19

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

2Лабораторная работа №2

Установка и настройка Git-сервера. Интеграция Redmine с Git

2.1 Цель работы

Изучение принципов работы с распределенными системами управления версиями документов на примере Git. Создание Gitрепозитория для проекта и интеграция системы управления проектами

Redmine c Git-репозиторием.

2.2Теоретические сведения

2.2.1ПРОТОКОЛЫ РАБОТЫ С GIT-СЕРВЕРОМ

Git умеет работать с четырьмя сетевыми протоколами для пере-

дачи данных: локальный, Secure Shell (SSH), Git и HTTP.

При использовании локального протокола удаленный репозиторий ― другой каталог на диске.

SSH — наиболее часто используемый транспортный протокол, единственный из сетевых протоколов, предоставляющий доступ и на чтение, и на запись. Два других сетевых протокола (HTTP и Git) в большинстве случаев дают доступ только на чтение. К тому же SSH протокол с аутентификацией, и благодаря его распространенности обычно его легко настроить и использовать.

Git-протокол ― самый быстрый из доступных протоколов. Если у вас проект с публичным доступом и большой трафик, или у вас очень большой проект, для которого не требуется авторизация пользователей для чтения, вам стоит настроить демон Git для вашего проекта. Недостатком Git-протокола является отсутствие аутентификации. Обычно он используется в паре с SSH разработчиков, имеющих доступ на запись, тогда как все остальные используют git:// для доступа на чтение. Кроме того это самый сложный для настройки протокол.

Протоколы HTTP и HTTPS просты в настройке. Использование доступа к репозиторию по HTTP не очень эффективно для пользователей репозитория: операции clone и fetch обычно выполнятся намного дольше, и при этом расходуется намного больше трафика, чем при использовании других протоколов.

2.2.2 УСТАНОВКА И НАЧАЛЬНАЯ НАСТРОЙКА GIT-СЕРВЕРА

Установка Git для ОС Fedora: $ yum install git-core, для Ubuntu: $ aptitude install git-core.

Далее приводятся команды для ОС Ubuntu.

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]