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

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

Диаграмма прецедентов

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

Диаграмма прецедентов

На этой диаграмме изображена модель использования системы доставки заказа клиенту. В данном случае “Клиент” и “Курьер” являются пользователями системы, или “Акторами”, а обведенные овалами действия это процессы, которые могут протекать в системе, или “Варианты использования”.

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

Диаграмма классов

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

Диаграмма классов

Эта диаграмма не заменяет, а дополняет диаграмму прецедентов, позволяя изобразить дополнительные компоненты модели, используемые в процессе ее использования, такие как: “Пользователь” - родительский класс для “Курьера” и “Клиента”; “Задача” - вспомогательный класс для регулирования деятельности “Курьеров”.

Диаграмма состояний

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

Диаграмма состояний

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

Диаграмма последовательности

Если необходимо смоделировать последовательности выполнения операций, используется данная диаграмма. Она позволяет задокументировать ход выполнения процесса и взаимодействия компонентов системы.

Диаграмма последовательности

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

Что дальше?

UML не ограничивается описанными в данной статье инструментами. Вы можете изучить его подробнее с помощью таких книг, как: Применение UML 2.0 и шаблонов проектирования, UML 2.0. Объектно-ориентированное моделирование и разработка.

Запомните, UML не является универсальным или необходимым инструментом. Если вам достаточно естественного языка для моделирования предметной области, либо вы с коллегами понимаете задачу настолько хорошо, что отпадает надобность в моделировании - смело отказывайтесь от диаграмм UML в пользу более эффективного и удобного инструмента!