- •Введение о достоинствах визуального моделирования
- •Глава 1 Активные субъекты
- •Создание активного субъекта
- •Варианты использования
- •Создание варианта использования
- •Поток событий для варианта использования
- •Связи вариантов использования
- •Диаграммы вариантов использования
- •Создание основной диаграммы вариантов использования
- •Создание коммуникативной ассоциации
- •Создание включающей связи
- •Создание расширяющей связи
- •Как создать дополнительную диаграмму вариантов использования
- •Диаграммы действий
- •Создание диаграммы действий
- •Как создать точку принятия решения
- •Как создать контролируемый переход
- •Как привести линии диаграммы к ортогональному виду
- •Полосы синхронизации
- •Kак создать полосу синхронизации
- •Как поделить диаграмму действий на зоны
- •Исходное и завершающее действия
- •Как создать исходное (завершающее) действие
- •Резюме к главе 1
- •Глава2 Что такое объект
- •Характеристики объекта
- •Понятие класса
- •Как создать класс
- •Стереотипы и классы
- •Как "находить" классы
- •Классы сущностей
- •Классы границ
- •Классы управления
- •Как определить или создать стереотип класса
- •Документирование классов
- •Как документировать класс
- •Как создать пакет
- •Как разместить класс в пакете
- •Диаграммы классов
- •Как создать основную диаграмму классов
- •Как создать основную диаграмму классов пакета
- •Как установить признак отображения принадлежности класса пакету
- •Резюме к главе 2
- •Глава 3 Реализации вариантов использования
- •Документирование сценариев
- •Диаграммы последовательностей
- •Как создать диаграмму последовательностей
- •Как создать объекты и сообщения в диаграмме последовательностей
- •Как связать объект диаграммы последовательностей с классом
- •Диаграммы последовательностей и классы границ
- •Сложность диаграмм последовательностей
- •Резюме к главе 3
Резюме к главе 2
Объект служит представлением реальной или абстрактной сущности. Объект - это понятие, абстракция или нечто с явно оговоренными границами, смыслом и назначением в контексте программного приложения. Каждый объект системы обладает тремя характеристиками — состоянием, поведением и идентификационным признаком. Состояние объекта определяется набором свойств-атрибутов и связей с другими объектами и представляет собой одно из возможных сочетаний условий, которым объект способен отвечать. Характеристика поведения охватывает функциональную сторону жизни объекта, определяет его реакцию на запросы со стороны других объектов и реализуется в виде набора операций. Идентификационный признак задает свойство уникальности объекта — даже в том случае, если состояние последнего идентично состоянию других объектов.
Класс определяет группу объектов с общими свойствами (атрибутами), поведением (функциями), семантикой и связями с другими объектами. Класс можно трактовать как шаблон для создания объектов. Каждый объект является экземпляром только одного класса. При создании классы следует документировать. Описание должно характеризовать назначение класса, а не его структуру.
Классам отвечают определенные стереотипы, позволяющие создавать новые разновидности элементов моделируемой системы. Стереотипы должны быть основаны на компонентах, служащих частью метамодели UML. К числу наиболее употребительных "стандартных" стереотипов классов относятся, например, entity, boundary и control.
Пакет в контексте логического представления модели — это собрание "родственных" вложенных пакетов и/или классов. Распределение классов по пакетам дает возможность подняться на более высокий уровень восприятия модели; напротив, "углубляясь" в содержимое пакета, мы переходим к отдельным элементам модели.
По мере пополнения модели новыми классами восприятие общей картины все более затрудняется. Диаграммы классов в удобном графическом виде представляют требуемые подмножества пакетов и классов. Основная диаграмма классов модели изображает, как правило, набор пакетов системы. Каждый пакет снабжается собственной основной диаграммой, в которую обычно включаются общедоступные классы, принадлежащие пакету. При необходимости создаются и дополнительные диаграммы классов, в том числе и такие, которые связаны с определенными вариантами использования.
Глава 3 Реализации вариантов использования
Функции, охватываемые вариантом использования, фиксируются в потоке событий. Для описания способов реализации вариантов использования в виде наборов взаимодействий сообществ объектов применяются сценарии. Сценарий (scenario) — это экземпляр варианта использования, т.е. один из возможных путей в графе, отвечающем потоку событий для этого варианта. Сценарии помогают идентифицировать объекты, разработать адекватные классы и выявить примеры взаимодействия объектов в процессе выполнения функций, предусмотренных вариантом использования. Сценарии документируют решения о том, каким образом функции, возлагаемые на вариант использования, распределяются между объектами и классами системы. Наконец, сценарии служат прекрасным средством выражения мнений в ходе обсуждения качеств системы с ее будущими потребителями, т.е. говорят на языке конечного пользователя и эксперта в предметной области.
Каждый вариант использования представляет собой "переплетение" сценариев — как основных, представляющих нормальное течение событий, так и вспомогательных, определяющих логику функционирования системы в ситуациях вида "что произойдет, если...". Для любой системы можно предложить обширное множество различных сценариев — в конечном итоге речь идет о допустимых основных и вспомогательных сценариях для всех вариантов использования. На ранних стадиях анализа вполне достаточно ограничиться рассмотрением основного сценария для каждого выявленного варианта использования. Если в процессе моделирования обнаруживается, что каждый новый сценарий во многом повторяет предыдущие, тогда дальнейшие попытки поиска сценариев, видимо, лишены смысла.