Связи диаграмм классов UML с примерами
Опубликовано: 2012-03-01Диаграммы классов являются основными строительными блоками объектно-ориентированного моделирования, поэтому важно, чтобы вы понимали различные взаимосвязи диаграмм классов и то, как они влияют на ваше решение. Мы перечислили их ниже с примерами.
Creately упрощает создание диаграмм классов, показывая логическую связь на основе контекста.
Отношения диаграммы классов
Классы взаимосвязаны друг с другом определенным образом. В частности, отношения на диаграммах классов включают различные типы логических связей. Ниже приведены такие типы логических соединений, которые возможны в UML:
- Ассоциация
- Направленная ассоциация
- Рефлексивная ассоциация
- Множественность
- Агрегация
- Сочинение
- Наследование/обобщение
- Реализация

Ассоциация

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

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

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

является активной логической ассоциацией, когда изображается кардинальность класса по отношению к другому. Например, один парк может включать несколько самолетов, в то время как один коммерческий самолет может содержать от нуля до многих пассажиров. Обозначение 0..* на диаграмме означает «ноль ко многим».
Агрегация

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

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

Чтобы показать композиционное отношение на диаграмме UML, используйте линию направления, соединяющую два класса, с закрашенным ромбом, примыкающим к классу-контейнеру, и стрелкой направления к содержащемуся классу.
Наследование / Обобщение

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

обозначает реализацию функциональности, определенной в одном классе, другим классом. Чтобы показать взаимосвязь в UML, прерывистая линия с незакрашенной сплошной стрелкой рисуется из класса, определяющего функциональность класса, реализующего функцию. В этом примере настройки печати, заданные с помощью интерфейса настройки принтера, реализуются принтером.
Рисование диаграмм классов с помощью Creately
Мы много думали об отношениях, когда создавали наши инструменты построения диаграмм классов. Наши коннекторы подстраиваются под контекст и показывают только самые логичные отношения при соединении классов. Это значительно уменьшило ваши шансы на ошибку.
Создайте диаграмму классов >>
Рисовать с нуля может быть обременительно. Вы можете сразу приступить к работе, используя наши профессионально разработанные диаграммы классов. Просмотрите наши примеры диаграмм классов и выберите тот, который тесно связан с вашей системой.
Что такое диаграммы классов?
Диаграммы классов являются основным строительным блоком в объектно-ориентированном моделировании. Они используются для отображения различных объектов в системе, их атрибутов, их операций и отношений между ними.
На следующем рисунке показан пример простого класса:

В примере изображен класс под названием «кредитный счет». Классы на диаграммах классов представлены блоками, разделенными на три части:
- Верхний раздел содержит имя класса.
- Средняя часть содержит атрибуты класса.
- Нижний раздел показывает возможные операции, связанные с классом.
Пример показывает, как класс может инкапсулировать все соответствующие данные конкретного объекта очень систематическим и понятным способом. Диаграмма классов — это набор классов, подобных приведенному выше.
Есть еще вопросы об отношениях диаграмм классов?
Надеюсь, я ясно объяснил различные отношения между диаграммами классов. Они не так сложны, как вы думаете, и их можно освоить после некоторой практики. А с помощью нашего инструмента у вас не должно возникнуть проблем с диаграммами классов. Если у вас есть еще вопросы, не стесняйтесь задавать их в разделе комментариев. Кроме того, ознакомьтесь с этим руководством по типам диаграмм UML с примерами для дальнейшего чтения.
Использованная литература:
1. Основы UML: диаграмма классов . Введение в структурные диаграммы в UML 2 Дональда Белла.
2. Диаграмма классов , опубликованная на сайте Википедии.
3. Диаграмма классов UML, часть 1 , опубликованная на веб-сайте developer.com.
4. Диаграмма классов из Visual Case Tool — UML Tutorial , опубликованная на веб-сайте Visual Case.
5. Ассоциации , опубликованные на веб-сайте Sybase.
