Операция: Проектирование компонентов
Эта операция позволяет уточнить проект системы.
ОписаниеСтруктура работыРаспределение группИспользование рабочего продукта
Взаимосвязи
Родительские операции
Описание

Эта операция преследует следующие цели:

  • Уточните определения элементов проекта деталями реализации поведения, которое ожидается от этих элементов.
  • Уточните и обновите реализацию прецедентов на основе вновь определенных элементов проекта (иными словами, регулярно обновляйте реализацию прецедентов)
  • Уточните проект
Свойства
Управляется событиями
Несколько вхождений
Выполняющийся
Необязательный
Запланированный
Повторяющийся
Персонал

Как правило, один сотрудник или одна небольшая группа отвечает за определенный набор элементов проекта, обычно образующий один или несколько пакетов или подсистем, которые, в свою очередь, содержат другие элементы проекта. Эти сотрудник или группа отвечают за детальное проектирование всех элементов пакета или подсистемы, включая определение операций и связей с другими элементами проекта. В процедуре Задача: проектирование капсулы основное внимание уделяется рекурсивной декомпозиции набора функций системы на капсулы и классы (последние делятся на пассивные классы и классы данных). Процедура Задача: проектирование классов предназначена для определения пассивных классов,  а  Задача: проектирование подсистем  - для определения подсистем, в которых, в свою очередь, находятся другие элементы (капсулы, классы или подсистемы).   Как правило, подсистемы применяются в крупных структурах для систематизации элементов модели, а капсулы - для хранения составных классов. "Обычные" классы обычно хранятся в пассивных хранилищах информации.

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

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

Использование
Указания по использованию

Как правило, эта работа выполняется отдельными специалистами или небольшими коллективами, которые по собственной инициативе обмениваются актуальной информацией об изменениях. По мере уточнения элементы проекта зачастую меняются функциями, и поэтому периодически требуется одновременно вносить изменения в несколько элементов проекта и реализаций прецедентов. Из-за этого обмена функциями практически нереально организовать работу проектировщиков без взаимодействия друг с другом. Для сохранения концентрации на требуемом поведении системы (в соответствии с реализациями прецедентов) обычно применяется следующий шаблон взаимодействия:

  • ответственные сотрудники или группы уточняют элементы проекта
  • небольшой коллектив (2-5 сотрудников) проводит неформальный сбор информации и определяет характер влияния новых элементов проекта на существующие реализации прецедентов
  • определяется набор изменений, которые необходимо внести в реализации прецедентов и соответствующие элементы проекта
  • этот цикл повторяется до тех пор, пока запланированное для данной итерации поведение не будет спроектировано в полном объеме.

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

  • На этапе уточнения сосредоточте внимание на архитектурно значимых аспектах. Не обращайте внимания на прочие "детали".
  • На этапе построения акцент смещается в сторону полноты и целостности проекта, поскольку к концу этого этапа проект должен быть реализован в полном объеме.

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