Пояснення стрілок UML


244

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

Чи є приємний ресурс, який міг би пояснити кожну стрілку (звичайну, просту, пунктирну, заповнену діамантом, алмазом)?

Було б найкраще, якщо вони будуть мати для них кілька прикладів коду.


4
Я настійно рекомендую розглянути це: dzone.com/refcardz/getting-started-uml
trinity

Відповіді:


475

Ось декілька пояснень документів Visual Studio 2015:

Діаграми класів UML: Довідка : https://msdn.microsoft.com/library/dd409437%28VS.140%29.aspx

Діаграма класів UML

5 : Асоціація : відносини між членами двох класифікаторів.

: Агрегація : Асоціація, що представляє спільні відносини власності. Aggregation властивість власника ролі встановлюється в Shared .

5b : Склад : Асоціація, що представляє взаємні стосунки. Aggregation властивість власника ролі встановлюється в Composite .

9 : Узагальнення : конкретний класифікатор успадковує частину свого визначення від загального класифікатора. Загальний класифікатор знаходиться на кінці стрілки з'єднувача. Атрибути, асоціації та операції успадковуються певним класифікатором. Використовуйте інструмент « Спадщина » для створення узагальнення між двома класифікаторами.

Пакетна схема

13 : Імпорт : співвідношення між пакетами, що вказує на те, що один пакет включає всі визначення іншого.

14 : Залежність : визначення або реалізація залежного класифікатора може змінитися, якщо змінити класифікатор на кінці стрілки.

Зв'язок реалізації

15 : Реалізація : клас реалізує операції та атрибути, визначені інтерфейсом. Використовуйте інструмент Спадкування для створення реалізації між класом та інтерфейсом.

16 : Реалізація : Альтернативна презентація тих же відносин. Мітка на символі льодяника визначає інтерфейс.

Діаграми класів UML: Настанови : http://msdn.microsoft.com/library/dd409416%28VS.140%29.aspx

Властивості Асоціації

Агрегація : це виходить у вигляді ромба на одному кінці з'єднувача. Ви можете використовувати його для вказівки, що екземпляри в ролі, що агрегує, є власними або містять інстанції іншої.

Є навігація : якщо вірно лише для однієї ролі, у напрямку навігації з’являється стрілка. Ви можете використовувати це для вказівки на рухливість посилань та співвідношення баз даних у програмному забезпеченні.


Узагальнення : Узагальнення означає, що спеціалізований або похідний тип успадковує атрибути, операції та асоціації загального або базового типу. Загальний тип з'являється на кінчику стрілки, що стосується стрілки.

Реалізація : Реалізація означає, що клас реалізує атрибути та операції, визначені інтерфейсом. Інтерфейс знаходиться в кінці стрілки роз'єму.

Повідомте мене, якщо у вас є додаткові запитання.


1
Приємна посилання, але для мене меню -> MenuItem має таке ж відношення, як і Order -> OrderItem, тому вони обидва є композиціями.
Ігнасіо Солер Гарсія

4
Це означає лише те, що елемент замовлення належить до замовлення і його неможливо перемістити, тоді як пункт меню може регулюватися - користувач може змінити положення пункту меню. Це обране рішення. Чому ні?
Gangnus

@Gangnus, дякую Це пояснення прояснило різницю, яка мені довго уникала.
JMD

1
@JMD, Елементи замовлення також можна перемістити. Композиційна агрегація визначається у специфікації UML наступним чином: Композиційна агрегація - це сильна форма агрегації, яка вимагає включення об'єкта частини щонайменше до одного складеного об'єкта за один раз. Якщо складений об’єкт видалено, усі його речовини, що є об'єктами, видаляються разом із ним. Об'єкт частини може (якщо інакше дозволено) бути видалений із складеного об'єкта перед тим, як складений об'єкт буде видалений, і таким чином не може бути видалений як частина складеного об'єкта.
www.admiraalit.nl

2
@aGer Дякую, я оновив посилання на тему та зображення.
Естер-фан - MSFT

154

введіть тут опис зображення

введіть тут опис зображення

Я думаю, що ці картини зрозумілі.


Хіба деякі з цих понять не перетинаються? A залежить B. A має доступ до B. Чи не асоціація завжди залежність, а залежність - це завжди асоціація?
EresDev

1
На діаграмі Реалізація повторюється двічі, але з різним малюнком. Будь ласка, можете детальніше розібратися?
змінна

23

Приємний шпаргалка (http://loufranco.com/wp-content/uploads/2012/11/cheatsheet.pdf) :

Він охоплює:

  • Діаграма класів
  • Діаграма послідовності
  • Пакетна схема
  • Об'єктна діаграма
  • Використовуйте діаграму випадку

І надає кілька зразків.

Елементи діаграми класу, такі як відносини батько-дитина, підклас, інтерфейс та реалізатор, а також елементи діаграми послідовності


3
Я шукав саме це протягом останніх 30 хвилин. Я знаю поняття, я просто забуваю символи.
aclave1

13

Мій улюблений UML "шпаргалка" - це UML Distilated , Мартін Фаулер. Це єдина з його книг, яку я прочитав і рекомендую.


1
Цікаво, що мені дуже сподобався Рефакторинг. Це те, на що ви маєте свої думки.
djna

Так, мені все це було явно очевидним, і концентрація на Java не сподобалась. Крім того, будь ласка, не сприймайте мою відповідь так, що інші його книги - сміття.

Книга Фаулера також має шпаргалку на внутрішній стороні обкладинки книги. Дійсно добре для початку, тим більше, що наступним питанням буде те, в якому напрямку рухаються стрілки?
Тед Джонсон

12
185 сторінок здається трохи надмірним для "шпаргалки"!
cdyson37


9

Для швидкого ознайомлення з чіткими стислими прикладами, Коротка довідка UML Аллена Голуба чудова:

http://www.holub.com/goodies/uml/

(У першому стовпчику таблиці є досить багато конкретних прикладів стрілок і вказівників, а в другому - описи.)


Мені сподобався його найперший приклад і сподівався, що тесак буде поступово йти по одній лінії з основами, але це добре читати
killjoy

6

Опис дуже легкий для розуміння - це документація yuml із прикладами для діаграм класів, випадків використання та діяльності.


Мабуть, найкращий UML-для ідіотів під час опускання цього списку; Примітка: цей сайт також дозволяє безкоштовно малювати власні UML (5).
killjoy

5

Прийнята відповідь сказана: У ньому відсутні деякі пояснення. Наприклад, яка різниця між однонаправленою та двонаправленою асоціацією? У наведеному прикладі обидва роблять існують. (Обидва '5-х років у стрілках)

Якщо ви шукаєте більш повну відповідь і маєте більше часу, ось ґрунтовне пояснення.



0

Агрегації та композиції трохи заплутані. Однак, думаю, композиції є сильнішою версією агрегації. Що це означає? Візьмемо приклад: (Агрегація) 1. Візьміть аудиторію та учнів: У цьому випадку ми намагаємось проаналізувати зв’язок між ними. Класна кімната має стосунки зі студентами. Це означає, що аудиторія складається з одного або багатьох учнів. Навіть якщо ми видалимо клас "Клас", клас "Студенти" не потрібно знищувати, а це означає, що ми можемо самостійно використовувати клас "Студент".

(Композиція) 2. Подивіться на сторінки та книжковий клас. У цьому випадку сторінки - це книга, що означає, що колекції сторінок становлять книгу. Якщо ми видалимо клас книги, весь клас Page буде знищений. Це означає, що ми не можемо самостійно використовувати клас сторінки.

Якщо вам все ще незрозуміло щодо цієї теми, подивіться це коротке чудове відео, яке більш чітко пояснило сукупність.

https://www.youtube.com/watch?v=d5ecYmyFZW0

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.