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

SE_labs

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

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ, МОЛОДЕЖИ И СПОРТА УКРАИНЫ

ЧЕРНИГОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ

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

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

К ВЫПОЛНЕНИЮ ЛАБОРАТОРНЫХ РАБОТ

ДЛЯ СТУДЕНТОВ ПРОФЕССИОНАЛЬНОГО НАПРАВЛЕНИЯ

6.050102 – «КОМПЬЮТЕРНАЯ ИНЖЕНЕРИЯ»

Обсуждено и рекомендовано на заседании кафедры информационных и компьютерных систем.

Протокол № 10 от 26 мая 2011 г.

ЧЕРНИГОВ ЧГТУ 2011

Інженерія програмного забезпечення. Методичні вказівки до виконання лабораторних робіт для студентів професійного напряму 6.050102 – «Комп’ютерна інженерія». / Укл.: Пріла О.А. – Чернігів: ЧДТУ, 2011. - 57 с., рос. мовою.

Укладач: ПРІЛА ОЛЬГА АНАТОЛІЇВНА, асистент кафедри інформаційних та комп’ютерних систем.

Відповідальний за випуск: КАЗИМИР ВОЛОДИМИР ВІКТОРОВИЧ, завідувач кафедри інформаційних та комп’ютерних систем, доктор технічних наук, професор.

Рецензент: НІКІТЕНКО ЄВГЕНІЙ ВАСИЛЬОВИЧ, кандидат фізико-математичних наук, доцент кафедри інформаційних та комп’ютерних систем Чернігівського державного технологічного університету.

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

 

Содержание

 

ВСТУПЛЕНИЕ.......................................................................................

5

1 ЛАБОРАТОРНАЯ РАБОТА №1 ИНСТРУМЕНТЫ УПРАВЛЕНИЯ

 

ПРОЕКТАМИ (PROJECT MANAGEMENT)..........................................................

6

1.1

Цель работы..........................................................................

6

1.2

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

6

1.2.1 Актуальность и особенности командной

и

 

удаленной работы...........................................................

6

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

 

проектами........................................................................

 

 

 

6

1.2.3 Требования к системам управления проектами ............

8

1.2.4 Основные характеристики системы Redmine...............

9

1.2.5 Обзор функциональности Redmine .............................

10

1.3

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

............................................

 

17

1.4

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

18

1.5

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

 

 

19

1.6

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

 

 

19

2 ЛАБОРАТОРНАЯ РАБОТА №2 УСТАНОВКА И НАСТРОЙКА GIT-

 

СЕРВЕРА. ИНТЕГРАЦИЯ REDMINE С GIT.......................................................

 

 

20

2.1

Цель работы........................................................................

 

 

 

20

2.2

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

 

 

20

2.2.1 Протоколы работы с git-сервером...............................

20

2.2.2 Установка и начальная настройка Git-сервера ...........

20

2.2.3 Настройка

доступа

к

Git-серверу

с

 

использованием Gitosis ................................................

 

 

22

2.2.4 Настройка публичного доступа к репозиторию с

 

использованием Gitweb................................................

 

 

24

2.2.5 Интеграция

системы

управления проектами

 

Redmine с Git ................................................................

 

 

 

25

2.3

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

............................................

 

26

2.4

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

26

2.5

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

 

 

26

2.6

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

 

 

27

3 ЛАБОРАТОРНАЯ РАБОТА №3 ИНСТРУМЕНТЫ СБОРКИ ПРОЕКТОВ .28

3.1

Цель работы........................................................................

 

 

 

28

3.2

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

 

 

28

3.3

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

............................................

 

29

3.3.1 Организация сборки многомодульного проекта.........

29

3.3.2 Maven-изация курсового проекта по дисциплине

 

«Моделирование».........................................................

 

 

42

3.4

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

43

3

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

3.5

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

 

 

43

3.6

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

 

 

44

4 ЛАБОРАТОРНАЯ РАБОТА №4 НАГРУЗОЧНОЕ ТЕСТИРОВАНИЕ .......

45

4.1

Цель работы........................................................................

 

 

45

4.2

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

 

 

45

4.2.1 Понятие и назначение нагрузочного тестирования....

45

4.2.2 Основные принципы нагрузочного тестирования......

47

4.2.3 Инструментарий

для

тестирования

 

 

производительности.....................................................

 

 

48

4.3

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

 

50

4.4

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

 

56

4.5

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

 

 

56

4.6

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

 

 

56

РЕКОМЕНДОВАННАЯ ЛИТЕРАТУРА.....................................................

 

 

57

4

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

Вступление

Курс «Инженерия программного обеспечения» посвящен изучению основных принципов управления программными проектами, методологий и технологий поддержки и оптимизации разработки качественного программного обеспечения.

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

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

Методические указания могут использоваться при выполнении командных курсовых проектов и работ студентами выпускных курсов (например, по таким дисциплинам как «Объектно-ориентированное программирование», «Моделирование», «Технологии проектирования программных систем» и др.) с целью изучения принципов настройки и использования инструментария поддержки процесса разработки, а также управления конфигурациями разрабатываемого программного обеспечения.

5

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

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

Инструменты управления проектами (Project Management)

1.1 Цель работы

Изучить функции современных систем управления проектами и научиться применять их на практике. Получить навыки установки, настройки и администрирования системы управления проектами Redmine.

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

1.2.1АКТУАЛЬНОСТЬ И ОСОБЕННОСТИ КОМАНДНОЙ И УДАЛЕННОЙ РАБОТЫ

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

Экономическая целесообразность таких проектов очевидна:

снижение затрат на аренду офиса и разработку его инфраструктуры;

снижение налоговых отчислений и оптимизация численности участников проекта за счет привлечения фрилансеров;

выбор руководителем профессионалов для участия в проекте не ограничен географическим фактором.

Microsoft, IBM, oracle, google, а также сотни менее известных компаний, проводят политику перемещения рабочих мест из офиса в домашние условия. В связи с этим появились и развиваются co-working centers (центры «совместной работы»).

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

1.2.2 СЛОЖНОСТЬ ОРГАНИЗАЦИИ КОМАНДНОЙ РАЗРАБОТКИ,ПРЕИМУЩЕСТВА ИСПОЛЬЗОВАНИЯ СИСТЕМ УПРАВЛЕНИЯ ПРОЕКТАМИ

Управление проектами – это достижение четких целей в определенные сроки. Достаточно сложно точно определить, как достичь поставленной цели в заданный срок, в условиях ограниченности ресурсов

6

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

и непредсказуемых внешних условий. Управление проектами всегда связано с рисками и наиболее наглядно представляется в виде треугольника из трех взаимозависимых факторов – время, ресурсы (материальные средства, участники, внешние аутсорсинговые услуги) и качество результата (рисунок 1.1). Управление проектами – это принятие решений в отношении 3 этих факторов. Например, можно пойти на снижение качества результата, и повышение затрат, но уложиться в срок.

Рисунок 1.1 – Треугольник ограничений проекта

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

При управлении проектами важнейшую роль играет вопрос координации работы всех участников, обмена информацией, учета и планирования работ. При создании проектов проходит множество обсуждений, обмена email, телефонных звонков, но все это сводится к формированию четкого задания «выполнить задачу такую-то». Причем таких средств как email, icq, skype, форумы для организации коммуникаций сегодня уже не хватает. Необходим инструмент, с помощью которого можно четко определить перечень задач (причем каждая из этих задач может иметь сложный жизненный цикл); распределять и выполнять контроль за статусом этих задач; вести перечень уже сделанных работ и затраченных на это ресурсов; вести журнал ошибок, выявленных в проекте, и исправлений; централизованно хранить документацию по проекту и т.д. Все действия по проекту должны быть четко зафиксированы.

7

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

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

Применение таких систем эффективно не только в сфере разработки программных продуктов, но и в других областях, где можно четко сформировать задания, этапы работы и их жизненный цикл. Одним из примеров являются службы customer support – в таких системах каждая поступившая заявка регистрируется и в зависимости от своего типа (техническая, финансовая, жалоба на качество обслуживания) назначается на ответственное лицо. Как только проблема будет решена, то пользователю придет извещение на электронную почту. Подобные системы применяются не только для общения внутри технических отделов, но и служат «точкой доступа» для клиентов, чтобы они могли в любой момент времени зайти на сайт компании-партнера и увидеть ход выполнения работ. Применение могут найти и в сфере торговли, к примеру, предоставление клиентам возможности получать информацию о процессе выполнения их online-заказа. Использование систем управления будет полезно также и при индивидуальной работе над проектом.

1.2.3 ТРЕБОВАНИЯ К СИСТЕМАМ УПРАВЛЕНИЯ ПРОЕКТАМИ

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

1.Учет и планирование рабочего времени. Для каждого из заданий можно назначать планируемое и реальное время выполнения работы и таким образом оценивать продуктивность работы команды.

2.Наличие интеграции с системами контроля версий.

3.Средства интеграции с программами, специализированными для подготовки документации. Для ведения подобных документов существует множество коммерческих и свободных проектов, наиболее известной из которых является mediawiki.

4.Настраиваемая схема оповещения всех заинтересованных участников об изменениях в проекте.

5.Поддержка большого количества проектов.

6.Удобный и функциональный web-интерфейс.

7.Поддержка многоязычности.

8.Организация внутрикомандного взаимодействия разработчи-

ков.

9.Простота доработки и внесения изменений.

8

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

Существуют платные системы управления проектами (Team Foundation Server, JIRA и др.) и open source системы (Mantis Bug Tracker, Trac, Redmine и др.). Полный обзор систем приведен на сайте http://en.wikipedia.org/wiki/Comparison_of_project_management_software.

Основные недостатки проприетарных систем:

материальный аспект;

часто излишняя функциональность, которая делает систему слишком запутанной и сложно настраиваемой;

невозможность расширения функционала таких систем.

1.2.4 ОСНОВНЫЕ ХАРАКТЕРИСТИКИ СИСТЕМЫ REDMINE

Система Redmine доступна под лицензией GPL, свободна к использованию, модификации и распространению. Написана на Ruby on Rails. Официальный сайт – http://www.redmine.org, сайт русскоязычных пользователей www.redmine.net.ua.

Инсталляционный пакет Redmine доступен на сайте RubyForge http://rubyforge.org/frs/?group_id=1850. Инсталляционный пакет Bitnami

включает в себя все необходимое для запуска (Redmine, Apachе, MySQL): http://bitnami.org/stack/redmine. Возможно получение послед-

ней версии исходников из SVN-репозитория, расположенного на

Rubyforge: http://redmine.rubyforge.org/svn.

Основные характеристики Redmine:

кроссплатформенный, присутствует поддержка различных СУБД;

удобный пользовательский интерфейс;

включает подсистему локализации (из коробки присутствует поддержка около 30 языков, в том числе русский и украинский), причем локализация не только на уровне приложения, но и на уровне отдельных пользовательских аккаунтов;

мультипроектность с поддержкой вложенности проектов;

настраиваемость – можно настраивать дополнительные поля, типы задач, порядок смены статуса задач; система позволяет настраивать внешний вид;

для каждого проекта присутствует wiki, форум, раздел новостей, хранилище файлов и документов; диаграмма Ганта и календарь;

интеграция из коробки с svn, cvs, git, mercurial и рядом других систем управления версиями;

настройка схемы оповещения об изменениях в проекте с помощью RSS-потоков и электронной почты;

учёт временных затрат;

гибкая и понятная система разграничения прав доступа пользователей, основанная на ролях;

9

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

поддержка LDAP-аутентификации;

исходники хорошо структурированы, написаны с использованием модели MVC, так что возможна простая доработка системы.

1.2.5 ОБЗОР ФУНКЦИОНАЛЬНОСТИ REDMINE

На стартовой странице (рисунок 1.2) можно просмотреть информацию о сайте, новости, а также последние созданные проекты. Возможен поиск в системе по ключевым словам.

Если перейти по ссылке Проекты (рисунок 1.3), то можно просмотреть все активные проекты с учетом их иерархической вложенности. Существует возможность архивировать, копировать, удалять проекты.

Тема — оформление системы. По умолчанию в системе присутствуют 2 темы, кроме того на сайте http://www.redmine.org/wiki/redmine/Theme_List есть около 20 готовых схем, которые можно скачать и подключить. Можно формировать собственные темы, для чего создается соответствующий css-файл.

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

В этом же разделе задаются настройки параметров аутентификации (обязательна или нет аутентификация, минимально-допустимое количество символов в пароле, возможность восстановления пароля).

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

Здесь же доступны настройки уведомления пользователей по email об изменениях проекта. При изменении задач, оценки, добавления комментариев и т.д. система отправляет соответствующие сообщения в почту пользователям, которых это касается. Для настройки параметров уведомления, необходимо указать параметры SNMP-сервера в файле config/email.yml.

10

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