Опубликовано

Проектирование RUP/ICONIX. 6-ой этап

Содержание других частей.

Начинается новая веха ICONIX — окончательный проект. Веха предварительного проекта завершилась на этапе 5. На текущем этапе номер 6 наступает очередь детального проектирования. Откройте проект Sparx EA, в которым работали на предыдущих этапах, и добавьте модель для диаграмм последовательностей.

В новой модели для последовательностей решаются следующие задачи.

  • Распределяют поведение между сущностными и управляющими объектами.
  • Определяют детали взаимодействия между объектами.
  • Распределяют операции по методам классов объектов.

В ICONIX диаграммы последовательности это основной инструмент детального проектирования. Для каждого прецедента модели предметной области и соответственно каждой диаграмме пригодности (т.к. тоже создавались на каждый прецедент на этапе 4) в новой модели для диаграмм последовательности добавьте диаграмму, на которой изобразите основные последовательности и альтернативные последовательности прецедента. Диаграммы последовательности можно организовывать по-разному, но рекомендуется следующий порядок.

  • Слева оставьте место для словесного описания шагов последовательности. Текст разбирается на фрагменты, соответствующие шагам.
  • Из соответствующей прецеденту диаграммы пригодности перенесите объекты (диаграммы пригодности создавались на этапе 4 и уточнялись на этапе 5).
  • Добавьте сообщения между объектами, обозначаемые стрелками.
  • Для каждого сообщения добавьте методоы в классы объектов, куда направлены стрелки. Сообщение — это передача информации тому, кому сообщение направляется в параметрах метода. По сути вызов метода у класса.

Рекомендуемый порядок, расписанный более подробно, при конструировании последовательности такой.

  • Скопировать текст прецедента из его спецификации в текстовую область слева.
  • Добавить сущностные объекты из диаграммы пригодности прецедента.
  • Добавить граничные объекты из диаграммы пригодности прецедента.
  • Сформулировать последовательность прецедента без дополнительных контроллеров диаграммы пригодности, формулируя взаимодействия объектов в виду вызовов методов с соответствующими параметрами или дополнительными структурами. Если не получается, то добавить объекты контроллеров на диаграмму последовательности и направляйте сообщения сперва в них, потом от контроллеров к сущностным объектам и обратно. При добавлении контроллеров старайтесь в них инкапсулировать сложное поведение, перемещая преобразования в них. В ходе работы применяйте паттерны объектно-ориентированного анализа и проектирования (ООП). Сейчас для них самое время.
  • Формировать вспомогательную диаграмму классов для каждой последовательности.

В ходе детальной проработки последовательностей допускают следующие ошибки.

  • Составляют диаграммы последовательностей не для всех прецедентов.
  • Не размещают на диаграмме последовательности текст прецедента.
  • Не выявляют дополнительные объекты на диаграмме пригодности, если таковых не выявлено на предыдущих этапах. Таким образом часть стрелок могут повиснуть в воздухе, и последовательность будет незавершённой.
  • Не детализируют сообщения конкретными методами классов.
  • Не выясняют, какой конкретно объект в данный момент последовательности владеет управлением, и таким образом ошибаются в направлении стрелок последовательности.
  • Игнорируют прнципы ООП и не применяют шаблоны проектирования ООП.
  • Не формируют вспомогательную диаграмму классов, чьи объекты участвуют в последовательности с указанием всех выявленных деталей.

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

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