Инструкция по работе на курсе
ПРАКТИКА РАЗРАБОТКИ ТЕХНИЧЕСКОГО ЗАДАНИЯ НА ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ





Как проходит обучение
1 неделя до начала курса
1 неделя до начала курса
Подготовка к участию в курсе
За 7–3 дней
За 7–3 дней
Заполните анкету: ваши ожидания от участия в курсе
За 7–3 дней
За 7–3 дней
Предложите темы проектов, для которых вам было бы интересно разработать техническое задание
За 2 дня
За 2 дня
Проголосуйте за темы проектов, предложенные другими участниками, с которыми вам было бы интересно поработать на курсе
Каждая сб., вск. с 10 до 14:00 (мск)
в течение 3-х недель
Каждая сб., вск. с 10 до 14:00 (мск)
в течение 3-х недель
Участие в курсе
Галактионов Евгений, ведущий курса
Подготовьте свое рабочее место: персональный компьютер с выходом в Интернет и наличие микрофона – обязательны.

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

В будние дни предполагается индивидуальная работа участников по доработке результатов совместной работы.
1 мес. после окончания
1 мес. после окончания
Сессия вопрос-ответ с ведущим (по запросу)

1
Этап 1. Подготовка к участию в курсе
Расскажите о себе
Чтобы курс прошел эффективно, поделитесь вашими ожиданиями от тренинга заранее!
Предложите темы проектов
  1. Предложите темы проектов (1–3), для которых вам было бы интересно разработать техническое задание и выступить в роли Заказчика.
  2. Проголосуйте за темы, предложенные другими участниками.

2
Этап 2. Участие в курсе
День 1
Формирование групп по темам проектов, предложенных участниками
Задание 1. Первичное описание проекта
День 2
Задание 2. Разработка контекстной диаграммы




Задание 3. Разработка функциональных требований к проектируемой системе
День 3
Задание 4. Разработка модели данных предметной области



Задание 5. Разработка диаграммы состояний для объектов системы


Задание 6. Разработка словаря данных
Задание 1. Первичное описание проекта
Составьте карточку проекта, указав его ключевые характеристики:
– тема проекта;
– категория системы;
– информация о заказчике;
– цель заказчика;
– решаемая проблема;
– варианты решения;
– целевая аудитория (пользователи системы);
– назначение системы;
– системы-аналоги;
– системы-конкуренты.
Работа проходит в группе, в формате интервью. Для этого распределите роли между участниками группы: Заказчик, Интервьюер, Секретарь.
Проведите интервью с Заказчиком, ответы внесите в таблицу.
Задание 2. Разработка контекстной диаграммы
Разработайте контекстную диаграмму для проектируемой системы:
  • проектируемая система изображается в виде овала в центре;
  • прямоугольниками обозначаются роли взаимодействующих с системой пользователей и смежные системы – контрагенты;
Распределите контрагентов между участниками команды и определите входные и выходные потоки данных, которыми контрагенты обмениваются с системой.
Задание 3. Разработка функциональных требований
1. Выберите способ группировки требований:
  • по фичам (высокоуровневым свойствам);
  • по ролям пользователей и смежных систем;
  • по этапам реализации или др.
2. Распределите фичи / роли между участниками команды.
3.Опишите функциональные требования к системе формате: "Система должна ...".
4. Домашнее задание: доработать функциональные требования к проектируемой системе.
Задание 4. Разработка модели данных предметной области
Представьте модель данных вашего приложения в виде диаграммы предметной области. Прямоугольниками изобразите объекты и понятия, с которыми работает ваше приложение. Нарисуйте связи между объектами.
Задание 5. Разработка диаграммы состояний для объектов системы
Разработайте диаграмму состояний для одного из объектов системы:
1. Выберите одну сущность с нетривиальным жизненным циклом.
2. Представьте возможные состояния этой сущности.
3. Укажите допустимые направления переходов между состояниями.
4. Продумайте условия переходы между состояниями.
Задание 6. Создание словаря данных
Создайте словарь данных проектируемой системы:
1. Распределите сущности для описания между участниками команды.
2. Опишите атрибуты каждой сущности.
3. Совместно доработайте словарь данных, чтобы он содержал описание основных объектов.
День 4
Задание 7. Разработка сценариев использования проектируемой системы
Задание 8. Формирование перечня системных юскейсов

Задание 9. Описание основных и альтернативных потоков для выбранных юскейсов
День 5
Задание 10. Разработка требований к внешнему качеству системы
Задание 11. Разработка требований к качеству в использовании

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

День 6
Задание 13. Разработка модели данных предметной области
Задание 14. Взаимное рецензирование разработанных ТЗ


Задание 7. Разработка сценариев использования проектируемой системы
Разработайте диаграмму использования (use case) для проектируемой системы:
  • проектируемую систему изобразите в виде прямоугольника;
  • изобразите фигуры ролей пользователей и смежные системы за границами прямоугольника;
  • внутри прямоугольника в овалах поместите юскейсы;
  • укажите связи ролей с юскейсами.
Задание 8. Формирование перечня системных юскейсов
1. На основе выделенных в диаграмме сценариев использования сформируйте перечень системных юскейсов.
2. Занесите выбранные юскейсы в таблицу реестра юскейсов.
3. Заказчик системы должен проставить приоритет реализации юскейсов.
4. Распределите юскейсы между участниками команды для описания (на каждого участника не менее 2-х юскейсов, один из которых должен относится к 1 уровню приоритета).
Задание 9. Описание основных и альтернативных потоков для выбранных юскейсов
Совместно в группе выберите один сценарий использования и опишите для него основной поток.
Домашнее задание: каждый участник должен самостоятельно описать 4-5 сценариев использования (основные и альтернативные потоки).
Задание 10. Разработка требований к внешнему качеству системы
1. Определите, к какому классу систем относится проектируемая система.
2. Распределите атрибуты внешнего качества между участниками команды.
3. Перенесите «вектор» профиля качества для проектируемой системы
в документ требований.
4. Выберите рекомендуемые значения требований к вашим атрибутам, используя таблицу.
5. Скорректируйте численные значения требований к внешнему качеству, учитывая специфику проекта.
Задание 11. Разработка требований к качеству в использовании
1. Распределите атрибуты качества в использовании между участниками команды.
2. Перенесите «вектор» профиля качества в использовании в документ требований.
3. Выберите из таблицы значения конкретных требований.
4. Скорректируйте уровень качества для конкретного атрибута или его значение с учётом специфики проекта.
Задание 12. Выявление ограничений
Разработайте требования вида «ограничения».
В них должны входить требования к совместимости, оборудованию и пользователям. Также необходимо учесть требования к среде разработки и платформе разработки (если они заданы заказчиком).
Заказчик: необходимо сформулировать требования к интеграции со смежной системой — протокол взаимодействия, ссылка на описание API/структур данных смежной системы.
Задание 13. Сборка итогового документа
Оформите итоговый документ технического задания в соответствии с шаблоном.
Задание 14. Взаимное рецензирование
Каждый участник выбирает для себя одну из ролей:
  • Руководитель проекта (РП)
  • Разработчик (Р)
  • Проектировщик интерфейсов (ПИ)
  • Тестировщик (Т)
Определите, в зависимости от выбранной роли:
  • РП — готовы ли по такому ТЗ составить план разработки с точностью до 20% по срокам и деньгам.
  • Р и ПИ — готовы ли по такому ТЗ вести разработку?
  • Т — готовы ли по такому ТЗ вести тестирование?
Обоснуйте свое решение:
  • Да – почему;
  • Нет – почему, и чего не хватило в ТЗ.