Что такое uml java

UML для самых маленьких: диаграмма классов

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

Аве, Кодер! Диаграмма классов UML иллюстрирует структуру системы, описывая классы, их атрибуты, методы и отношения между объектами.

Даже самые малые детки знают, что UML происходит от Unified Modeling Language, если по- русски, то — унифицированный язык моделирования, который, как гласит легенда, разработали, когда серьезные дяди и тети в конец задолбались плавать в разнообразии кружочков, черточек и облачков.

Для тех, кому лень читать:

Главное действующее лицо

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

Для начала напомним себе что такое класс? Если в двух словах, то класс представляет собой шаблон для создания объектов, обеспечивающий начальные значения состояний: инициализацию полей-переменных и реализацию поведения полей и методов.

По сути, класс описывает то, каким объект может быть.

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

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

Имя класса пишется в самом верхнем делении, затем идут атрибуты класса, типы которых записываются после двоеточия и, наконец, в нижнем делении идут методы.

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

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

Каждый параметр в методе может также иметь описание направленности метода: in, out, inout.
На этой иллюстрации, method1 использует p1, как входной параметр и значение p1, каким-то образом, используется методом, а метод не изменяет p1.

Method2 принимает p2, как параметр ввода/вывода, значение p2, каким-то образом, используется методом и принимает выходное значение метода, но сам метод также может изменять p2.

Method3 использует p3, как выходной параметр, иными словами, параметр служит хранилищем для выходного значение метода.

Перспективы диаграммы классов в жизненном цикле разработки программного обеспечения

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

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

Концептуальная перспектива — это когда диаграммы интерпретируются как описание вещей в реальном мире. Таким образом, если мы берем концептуальную перспективу, мы рисуем диаграмму, которая представляет концепции в изучаемой области. Эти концепции относятся к классам, которые их реализуют. Концептуальная перспектива считается независимой от языка.

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

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

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

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

Типы отношений

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

Ассоциация.
Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

Аналогично связям, соединяющим объекты, ассоциации соединяют классы. Для того, чтобы между объектами была связь, между ними должна быть ассоциация.

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

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

Например, один студент может учиться у множества преподавателей.
Но и преподаватель может учить множество студентов.

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

Или иногда его еще называют — генерализация.

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

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

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

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

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

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

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

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

Например, у класса Person есть метод hasRead с входным параметром book, который возвращает true, если, к примеру, человек прочитал книгу.

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

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

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

Например, рабочее место программиста состоит из стула, стола, компьютера и вентилятора, но при удалении класса «рабочее место», у нас просто останутся все эти классы, только по отдельности.

Агрегация показана в виде непрерывной линии с полым ромбом направленным от классов, являющимися частью какого-либо класса к классу-агрегатору.

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

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

Например наше тело состоит из органов, но сами по себе они не жизнеспособны.

Композиция обозначается схожим с агрегацией способом, но ромб на этот раз полностью закрашен.

Финалочка

UML бывает очень полезен для новичков, находящихся на этапе понимания «что к чему долждно идти и от чего наследоваться». Как говорят наши англоязычные коллеги: «он помогает увидеть как выглядит весь лес за стволами деревьев».

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

Источник

Русские Блоги

Основы Java: диаграмма классов UML

Каталог статей

1. Символ видимости

+ public
# protected
— private

2. Отношения между классами

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

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

Рисунок 1: Пример общей взаимосвязи диаграмм классов UML

2.1 Обобщение

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

Рисунок 2: Пример отношения обобщения

Два подкласса Fish и Cat наследуются от Animal соответственно.

2.2 Реализация

Реализация относится к отношениям реализации между классом и абстрактным классом или интерфейсом в Java и является наиболее распространенной взаимосвязью между классом и интерфейсом.

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

Рисунок 3: Пример отношения реализации

2.3 Ассоциация (Ассоциация)

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

Рисунок 4: Пример односторонней ассоциации

(1) Односторонняя ассоциация
представлен сплошной линией со стрелкой, которая указывает на указанный или содержащийся класс. Вышеупомянутое демонстрирует одностороннюю связь.

(2) Двусторонняя ассоциация
Используйте сплошную линию без стрелки для соединения двух классов. Так называемая двусторонняя ассоциация означает, что обе стороны содержат переменные-члены другого типа. Например, массив Product [] поддерживается в классе Customer, чтобы указать, какие продукты купил клиент; переменная-член типа Customer поддерживается в классе Product, чтобы указать, какой клиент купил продукт.
Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

Рисунок 5: Пример двусторонней связи

(3) Самоассоциация
В системе могут быть некоторые классы, тип объекта атрибута которых является самим классом, например определение TreeNode в двоичном дереве.
Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

Рисунок 6: Пример самоассоциации

2.4 Зависимость

Дело в том, что один класс A использует другой класс B. Это отношение использования является случайным, временным и очень слабым, но изменение класса B повлияет на A.
проявляется на уровне кода, то есть класс B используется в качестве параметра классом A в определенном методе. Например, параметры метода playToy класса Cat относятся к классу Doll, поэтому они являются зависимостями.

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

Рисунок 7: Пример зависимостей

2.5 Агрегация

Агрегированные отношения подчеркивают взаимосвязь между целым и частью и владением, то есть отношение имеет-есть, в котором части могут существовать без целого, и у них могут быть свои собственные жизненные циклы.
Например, класс Doll состоит из Body и Cloth. Даже если Cloth потеряна, Doll может нормально существовать.
проявляется на уровне кода, который согласуется с отношениями ассоциации и может отличаться только на семантическом уровне.

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

Рисунок 8: Пример отношения агрегирования

2.6 Композиция (композиция)

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

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

Рисунок 9: Пример отношения комбинации

Сила классовых отношений: Комбинация> Агрегация> Ассоциация> Зависимость

Давайте создадим эти классы по идее, поместим их в один и тот же пакет, щелкните пакет правой кнопкой мыши и выберите Диаграммы и взглянем на диаграмму классов UML, автоматически созданную по идее:
Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

Рисунок 10: Диаграмма классов UML, автоматически генерируемая идеей

По сути, это то же самое, что и диаграмма классов UML, представленная нами в целом. Разница в том, что отношение агрегирования и отношение комбинации представлены сплошными ромбиками.

Источник

Отношения классов — от UML к коду

Введение

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

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

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

Рис. 1 — Отношения между классами

Ассоциации имеют навигацию: двунаправленную или однонаправленную, указывающую на направление связи. То есть у каждого вида ассоциации еще есть два подвида, которое на рисунке не показаны.

1. Обобщение

Итак, наша цель — построить UML-диаграмму классов (Class Model), а затем отразить ее в объектно-ориентированном коде.

В качестве прикладной области возьмем отдел кадров некого предприятия и начнем строить его модель. Для примеров будем использовать язык Java.

Отношение обобщения — это наследование. Это отношение хорошо рассматривается в каждом учебнике какому-либо ООП языку. В языке Java имеет явную реализацию через расширение(extends) одного класса другим.

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java
Рис. 2 — Отношение обобщения

Класс «Man»(человек) — более абстрактный, а «Employee»(сотрудник) более специализированный. Класс «Employee» наследует свойства и методы «Man».

Попробуем написать код для этой диаграммы:

2. Ассоциация
2.1 Бинарная

В модель добавили класс «IdCard», представляющий идентификационную карточку(пропуск) сотрудника. Каждому сотруднику может соответствовать только одна идентификационная карточка, мощность связи 1 к 1.
Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java
Рис. 3 — Бинарная ассоциация

В теле программы создаем объекты и связываем их:

Класс Employee имеет поле card, у которого тип IdCard, так же класс имеет методы для присваивания значения(setIdCard) этому полю и для
получения значения(getIdCard). Из экземпляра объекта Employee мы можем узнать о связанном с ним объектом типа IdCard, значит
навигация (стрелочка на линии) направлена от Employee к IdCard.

2.2 N-арная ассоциация

Представим, что в организации положено закреплять за работниками помещения. Добавляем новый класс Room.
Каждому объекты работник(Employee) может соответствовать несколько рабочих помещений. Мощность связи один-ко-многим.
Навигация от Employee к Room.
Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java
Рис. 4 — N-арная ассоциация

Теперь попробуем отразить это в коде. Новый класс Room:

Добавим в класс Employee поле и методы для работы с Room:

2.3 Агрегация

Введем в модель класс Department(отдел) — наше предприятие структурировано по отделам. В каждом отделе может работать один или более человек. Можно сказать, что отдел включает в себя одного или более сотрудников и таким образом их агрегирует. На предприятии могут быть сотрудники, которые не принадлежат ни одному отделу, например, директор предприятия.
Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java
Рис. 5 — Агрегация

Итак, наш класс, помимо конструктора и метода изменения имени отдела, имеет методы для занесения в отдел нового сотрудника, для удаления сотрудника и для получения всех сотрудников входящих в данный отдел. Навигация на диаграмме не показана, значит она является двунаправленной: от объекта типа «Department» можно узнать о сотруднике и от объекта типа «Employee» можно узнать к какому отделу он относится.

Так как нам нужно легко узнавать какому отделу относится какой-либо сотрудник, то добавим в класс Employee поле и методы для назначения и получения отдела.

2.3.1 Композиция

Предположим, что одним из требований к нашей системе является требование о том, чтоб хранить данные о прежней занимаемой должности на предприятии.
Введем новый класс «pastPosition». В него, помимо свойства «имя»(name), введем и свойство «department», которое свяжет его с классом «Department».

Данные о прошлых занимаемых должностях являются частью данных о сотруднике, таким образом между ними связь целое-часть и в то же время, данные о прошлых должностях не могут существовать без объекта типа «Employee». Уничтожение объекта «Employee» должно привести к уничтожению объектов «pastPosition».
Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java
Рис. 6 — Композиция

В класс Employee добавим свойства и методы для работы с данными о прошлой должности:

3. Зависимость

Для организации диалога с пользователем введем в систему класс «Menu». Встроим один метод «showEmployees», который показывает список сотрудников и их должности. Параметром для метода является массив объектов «Employee». Таким образом, изменения внесенные в класс «Employee» могут потребовать и изменения класса «Menu».
Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java
Рис. 7 — Зависимость

Заметим, что класс «Menu» не относится к прикладной области, а представляет собой «системный» класс воображаемого приложения.
Класс «Menu»:

4. Реализация

Реализация, как и наследование имеет явное выражение в языке Java: объявление интерфейса и возможность его реализации каким-либо классом.

Для демонстрации отношения «реализация» создадим интерфейс «Unit». Если представить, что организация может делиться не только на отделы, а например, на цеха, филиалы и т.д. Интерфейс «Unit» представляет собой самую абстрактную единицу деления. В каждой единице деления работает какое-то количество сотрудников, поэтому метод для получения количества работающих людей будет актуален для каждого класса реализующего интерфейс «Unit».

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java
Рис. 8 — Реализация

Реализация в классе «Department»:

Как видим, реализация метода «getPersonCount» не совсем актуальна для класса «Department», так как он имеет метод «getEmployees», который возвращает
коллекцию объектов «Employee».

Выводы

Язык моделирования UML имеет набор отношений для построения модели классов, но даже такой развитой ООП язык, как Java имеет только две явные конструкции для отражения связей: extends(расширение) и interface/implements(реализация).
В результате моделирования получили следующую диаграмму:

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java
Рис. 8 — Диаграмма классов

Литература

1) Г. Буч, Д. Рамбо, А. Джекобсон. Язык UML Руководство пользователя.

3) Эккель Б. Философия Java. Библиотека программиста. — СПб: Питер, 2001. — 880 с.

4) Орлов С. Технологии разработки программного обеспечения: Учебник. — СПб: Питер, 2002. — 464 с.

5) Мухортов В.В., Рылов В.Ю.Объектно-ориентированное программирование, анализ и дизайн. Методическое пособие. — Новосибирск, 2002.

Источник

Зачем нам UML? Или как сохранить себе нервы и время

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

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

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

Программисты, не использующие UML, делятся на несколько групп:

Можно провести аналогию с постройкой дома. Когда кто-то хочет построить дом, он не просто бьет молотком и приступает к работе. Ему нужно иметь план — план проектирования, чтобы он мог анализировать и модифицировать свою систему.

Если вы уже начали описывать на бумаге вашу задачу, это уже огромный плюс.

Что такое UML

UML – унифицированный язык моделирования (Unified Modeling Language) – это система обозначений, которую можно применять для объектно-ориентированного анализа и проектирования. Его можно использовать для визуализации, спецификации, конструирования и документирования программных систем.

Проще говоря, если посмотреть картинки в поисковых системах, то станет понятно, что UML – это что-то про схемы, стрелочки и квадратики.

Важно, что UML переводится как Unified Modeling Language. Главное здесь слово Unified. То есть наши картинки поймём не только мы, но и остальные, знающие UML. Получается, это такой международный язык рисования схем.

Плюсы и минусы UML проектирования

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

Предлагаю познакомиться с одними из самых полезных и часто используемых диаграмм.
Речь пойдет о диаграммах последовательности, состояний, деятельности и самой сложной из них — диаграмме классов.

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

Обычно, мы пишем длинный список этапов, которые должна пройти заявка, чтобы получить гордый статус «Оформлена». Затем описываем, кто именно будет выполнять конкретное действие. И только после этого начинаем программировать.

В чем недостаток данного подхода? Он не нагляден.

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

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

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

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

Диаграмма состояний. Настраиваем старые электронные часы

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

Предположим, мы программируем советские электронные часы.

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

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

Инструкция по настройке и так достаточно небольшая, но благодаря диаграмме состояний она визуально воспринимается гораздо проще.

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

Подробнее о диаграмме состояний можно прочитать здесь.

Диаграмма классов, или как рассказать о своем коде без кода

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

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

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

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

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

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

Рассмотрим, как с помощью диаграммы классов описать известный паттерн проектирования «Посетитель».

«Посетитель» — это поведенческий паттерн проектирования, который позволяет добавлять в программу новые операции, не изменяя классы объектов, над которыми эти операции могут выполняться.

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

Самыми значимыми достоинствами этой диаграммы являются:

Подробнее о диаграмме классов можно прочитать здесь, а о паттерне «Посетитель» здесь.

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

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

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

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

Что такое uml java. Смотреть фото Что такое uml java. Смотреть картинку Что такое uml java. Картинка про Что такое uml java. Фото Что такое uml java

Смысл диаграммы вполне понятен. На ней показана работа с веб-приложением, которое решает некую задачу в удаленной базе данных. Обратите внимание на расположение активностей на этой диаграмме: они как бы разбросаны по трем колонкам, каждая из которых соответствует поведению одного из трех объектов — клиента, веб-сервера и сервера баз данных. Благодаря этому легко определить, каким из объектов выполняется каждая из деятельностей.

Подробнее о диаграмме деятельности можно прочитать здесь.

Заключение

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

Оставьте комментарий, если вы думаете (или знаете), что что-то не так или могло быть описано лучше.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *