Uploaded by Светлана Фролова

Лабораторная работа 5 ПЛАНИРОВАНИЕ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ С ПОМОЩЬЮ SERENA OPENPROJ

advertisement
Лабораторная работа № 5
ПЛАНИРОВАНИЕ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
С ПОМОЩЬЮ SERENA OPENPROJ
Цель работы: изучение принципов календарного планирования процесса разработки
программного обеспечения.
Задачи: получение навыков использования программного продукта Serena OpenProj
для календарного планирования процесса разработки программного обеспечения.
Теоретическая часть
Опции. Каждая функциональная особенность ПО или требование пользователя – это
одна опция, которую заказчик хочет видеть реализованной в ПО. Каждая опция отражает
ТОЛЬКО точку зрения пользователя.
Итерации. С итерацией разработчик проходит те же этапы, что и при работе над целым проектом, и так должно происходить при каждой итерации. Каждая итерация – это мини-проект с отдельными требованиями, дизайном, написанием кода, тестированием и т.д.
Так что в итоге разработчик показывает заказчику хорошо продуманные и качественно написанные части финального проекта. Итерации следует воспринимать как небольшие циклы, на
которых собираются требования, разрабатывается дизайн, пишется код и проводится тестирование.
Таким образом, итерация содержит все стадии отдельного проекта. Готовое работающее ПО в конце каждой итерации подразумевает возможность спросить заказчика, все ли в
порядке. С каждой следующей итерацией ПО разрастается и работа приближается к концу. И
на каждом шаге учитывается то, что не понравилось заказчику на предыдущем.
Итерации должны быть короткими: чем короче итерации, тем больше шансов на то,
что ошибки и необходимости изменения будут сразу обнаружены. С короткой итерацией
разработчик раньше узнает мнение заказчика и внесет изменения дополнительные детали.
Когда реализация одной опции зависит от другой, следует сгруппировать их и разместить в рамках одной итерации. Даже если это предполагает разработку опции с низким приоритетом до разработки высокоприоритетной. В этом случае стоит учитывать приоритет тот,
у которой он выше.
Конечное решение по приоритетам всегда принимает заказчик.
Оценка проекта. Требование – это то, ЧТО должно быть получено в результате.
Оценка – это то, КОГДА результат должен быть получен.
Продолжительность проекта складывается из времени, необходимого на разработку
каждой из опций. При этом нужно учитывать и то время, которое уйдет на доработку, включая все материалы, которые могут потребоваться. Это может быть документация, тестирование, компоновка, в общем-то, все, что должно быть сделано до окончания проекта.
Оценки, превышающие 15 дней, оставляют слишком большой шанс на ошибку. Когда
оценка слишком большая, следует применить правило «И» и разбить ее на более мелкие части.
Скорость работы – это отношение общего числа дней к рабочим дням. По умолчанию
скорость работы команды разработчиков принимается равной 0,7. Это означает, что на каждые 10 дней работы будет выпадать около 3 дней праздников, работы с документами, телефонных звонков и других занятий, не связанных с разработкой. Это консервативная оценка,
в действительности скорость команды разработчиков может быть выше. Если произойдет
именно так, в конце итерации следует пересчитать скорость и, с учетом этого, рассчитать
время на следующую итерацию.
Если взять дни работы, необходимые на разработку опции или итерации, и разделить
это число на скорость, то результатом будет количество дней, необходимых для завершения
работы. Это число всегда должно превышать оценку, чтобы учесть праздники и выполнение
побочных задач. Это реалистичная оценка того, сколько времени на самом деле займет работа.
Задачи. Каждая опция или требование – это набор задач. Задача точно определяет,
какую работу нужно проделать одному из разработчиков, чтобы реализовать часть требования заказчика. У каждой задачи есть название, описание и оценка. Оценки задач делают
оценки требований более точными.
Когда есть две тесно связанных задачи, работать с ними в одно и то же время не проблема. Это как раз тот случай, когда завершение работы в одной задаче может помочь принять решение по поводу другой. Работать над обеими задачами оказывается более эффективно, чем завершить одну, потом начать другую и выяснить, что нужно опять вернуться к первой.
Методика выполнения работы
1. Составить перечень функциональных особенностей программного продукта и требований пользователей – опций (из предыдущих лабораторных работ):
1. Бронирование билетов
2. Покупка билетов через Интернет
3. Выбор места в салоне.
4. Заказ меню.
5. Заказ DVD.
и т.д.
2. Добавить приоритет к каждой опции (от 10 до 50, 10 – наивысший приоритет).
1. Бронирование билетов – 10
2. Покупка билетов через Интернет – 15
3. Выбор места в салоне – 15
4. Заказ меню – 20
5. Заказ DVD – 30
и т.д.
3. Добавить оценку к каждой опции:
1. Бронирование билетов – 10 – 15 дней
2. Покупка билетов через Интернет – 15 – 12 дней
3. Выбор места в салоне – 15 – 5 дней
4. Заказ меню – 20 – 4 дня
5. Заказ DVD – 30 – 1 день
и т.д.
Сложить все оценки для полной оценки проекта.
4. Сгруппировать опции в итерации:
Итерация «Заказ билетов».
1. Бронирование билетов – 10 – 15 дней.
2. Выбор места в салоне – 15 – 5 дней.
3. Покупка билетов через Интернет – 15 – 12 дней
и т.д.
Итерация «Работа с пользователями».
1. Регистрация нового пользователя – 15 – 5 дней.
2. Изменение данных пользователя – 30 – 2 дня.
3. Идентификация пользователя – 10 – 6 дней.
4. Аутентификация пользователя – 10 – 6 дней.
и т.д.
5. Определить количество участников каждой итерации.
5.1. Составить перечень участников группы разработчиков:
– руководитель (1 человек)
– разработчик баз данных (3 человека)
– верстальщик (4 человека)
– дизайнер (2 человека)
– программист (5 человек)
и т.д. (добавить еще не менее двух участников)
5.2. Распределить участников по итерациям проекта:
Итерация «Заказ билетов»:
– руководитель (1 человек)
– разработчик баз данных (1 человек)
– верстальщик (1 человек)
– дизайнер (1 человек)
– программист (2 человека)
и т.д.
6. Оценить каждую итерацию с учетом скорости работы и количества разработчиков.
Примем скорость работы группы разработчиков равной 0,7. Тогда:
Итерация «Заказ билетов»:
Дни, необходимые на разработку итерации, – 120
Количество участников – 8 человек
Оценка итерации – 120 / 0,7 = 171 день.
Оценка итерации с учетом числа разработчиков – 171 / 8 = 21 день.
Аналогичным образом для остальных итераций.
7. Определить порядок реализации итераций в ходе проекта (некоторые итерации
можно выполнять параллельно).
1. Работа с пользователем.
2. Заказ билетов.
и т.д.
8. Разбить опции на задачи.
8.1. Выделить задачи:
Итерация 2 «Заказ билетов»
Опция 1. Бронирование билетов.
Задача 1. Разработка структуры базы данных
Задача 2. Дизайн пользовательского интерфейса
и т.д.
8.2. Оценить каждую задачу (с учетом скорости работы и числа разработчиков):
Итерация 2 «Заказ билетов»
Опция 1. Бронирование билетов – 2 дня
Задача 1. Разработка структуры базы данных – 2 дня.
Задача 2. Дизайн пользовательского интерфейса
и т.д.
8.3. Переоценить опции и итерации с учетом полученных значений, а также скорости
работы и числа разработчиков.
9. Распределить задачи между разработчиками.
Итерация 2 «Заказ билетов»
Опция 1. Бронирование билетов.
Задача 1. Разработка структуры базы данных – разработчик баз данных (1 человек)
Задача 2. Дизайн пользовательского интерфейса – дизайнер (1 человек)
и т.д.
10. Запустить OpenProj и создать новый проект
Пуск → Программы → OpenProj → ф. Добро пожаловать в OpenProj | кн. Создать
проект | Название проекта ← SpaceTravel, Менеджер ← Student, Дата начала ← 03.09.2012,
кн. Ok
11. Определить ресурсы проекта (на основании перечня участников группы разработчиков)
ф. OpenProj | вертикальная панель инструментов | кн. Ресурсы → форма на экране
Название ← Руководитель, Тип ← Работа, E-mail адрес ← boss@somemail, Инициалы
← Р (оставить по умолчанию).
Аналогичным образом ввести остальных участников проекта.
12. Ввести итерации:
ф. OpenProj → вертикальная панель инструментов → кн. Диаграмма Ганта |
Название ← Работа с пользователями, Продолжительность ← 6 дней, перевести курсор на следующую строку.
Аналогичным образом последовательно ввести все остальные итерации в порядке, определенном ранее.
13. Ввести опции итераций:
13.1. Создать новую задачу:
Выбрать итерацию «Работа с пользователями» → перейти на следующую строку →
меню → Вставка → Новая задача/ресурс | Название ← Регистрация нового пользователя,
Продолжительность ← 5 дней.
13.2. Задать принадлежность опции задаче:
Установить курсор в первом столбце текущей строки → контекстное меню → Отступ
→ задача сместится вправо
13.3. Аналогичным образом задать оставшиеся опции итерации «Работа с пользователями», а также опции других итераций.
14. Ввести задачи опций
14.1. Создать задачу:
Выбрать опцию «Регистрация нового пользователя» → перейти на следующую строку
→ меню → Вставка → Новая задача/ресурс | Название ← Создание структуры базы данных,
Продолжительность ← 2 дня.
14.2. Задать принадлежность задачи опции:
Установить курсор в первом столбце текущей строки → контекстное меню → Отступ
→ задача сместится вправо
14.3. Аналогичным образом задать оставшиеся задачи опции «Регистрация нового
пользователя», а также задачи опций других и текущей итераций.
15. Установить последовательность итераций на основе составленного ранее перечня
итераций:
На диаграмме Ганта (справа) выделить курсором итерацию «Работа с пользователями» и перетащить на следующую по порядку итерацию «Заказ билетов». Аналогичным образом установить последовательность всех итераций, задач и опций.
16. Привязать ресурсы к задачам (для каждой задачи выбрать одного исполнителя):
Выбрать задачу в перечне задач → горизонтальная панель инструментов → кн. Назначить ресурсы → ф. Назначить ресурс | выбрать исполнителя, кн. Назначить → закрыть
форму
Download