Найти в Дзене

Зачем нужен UML?

Всем привет! Сегодня мы поговорим о мировом стандарте в области проектирования программных систем - языке UML.

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

Диаграмма прецедентов - отражает, что должна делать система, но не как делать.
Диаграмма прецедентов - отражает, что должна делать система, но не как делать.

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

Диаграмма классов - показывает структуру программного комплекса.
Диаграмма классов - показывает структуру программного комплекса.

2. Диаграмма классов (Class Diagram) - также одна из популярнейших диаграмм UML. Она позволяет показать архитектуру программной системы, выделив основные классы объектов. Диаграмма классов имеет два уровня: концептуальный и программный. На концептуальном уровне описываются объекты в привязке к непосредственно предметной области (например, предприятию), тогда как на программном - уже приближенно к языку программирования. На этой диаграмме удобно показать различные взаимосвязи между классами, например, где используются переменные или методы определенного класса. Безусловно, это очень полезная и важная диаграмма на всех этапах разработки. Помимо диаграммы классов структуру программной системы также описывают диаграммы пакетов и компонентов, но уже на более высоком уровне. Поэтому, если ваш проект небольшой, то использование этих диаграмм особого смысла не имеет.

Диаграмма последовательности - отражает взаимодействие между компонентами системы
Диаграмма последовательности - отражает взаимодействие между компонентами системы

3. Диаграмма последовательности (Sequence Diagram) - встречается реже, но все также полезна, как и предыдущие две. Она позволяет показать взаимодействие уже внутри системы между ее объектами, а также взаимодействие между пользователем и системой. На ней четко видно, какие объекты на каком этапе создаются, какие взаимодействия между ними осуществляются. Полезна данная диаграмма будет при составлении алгоритмов различных модулей. В качестве альтернативы используется диаграмма коммуникаций, но она жутко неудобная и не позволяет визуально представить именно последовательность действий.

Диаграмма видов деятельности - хорошее решение для описания любого процесса.
Диаграмма видов деятельности - хорошее решение для описания любого процесса.

4. Диаграмма видов деятельности (Activity Diagram) - диаграмма, которая имеет самое широкое применение: моделирование бизнес-процессов, процессов разработки ПО, моделирование выполнения одного или нескольких методов и пр. Напоминая обычную блок-схему, данная диаграмма содержит ряд дополнительных элементов, которые позволяют описать процесс наиболее точно.

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