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

Ієрархія діаграм UML 2.0, зображена у вигляді діаграми класів. Окремі класи представлені просто прямокутником з назвою класу, але зображення класу може містити до чотирьох відділень.

Діагра́ма кла́сів (англ. Class diagram) — статичне представлення структури моделі в UML. Відображає статичні (декларативні) елементи, такі як: класи, типи даних, їх зміст та відношення. Діаграма класів може містити позначення для пакетів та може містити позначення для вкладених пакетів. Також, діаграма класів може містити позначення деяких елементів поведінки, однак їх динаміка розкривається в інших типах діаграм.[1]

Діаграма класів служить для представлення статичної структури моделі системи в термінології класів об'єктно-орієнтованого програмування. На цій діаграмі показують класи, інтерфейси, об'єкти й кооперації, а також їхні відносини (зв'язки).

На діаграмі класи представлені у вигляді прямокутників, які містять три відділення:

Відображення класу з трьома відділеннями.
  • Верхня частина містить назву класу. Вона надрукована напівжирним шрифтом і вирівняна по центру, починається з великої літери.
  • Середнє відділення містить атрибути класу. Вони вирівняні по лівому краю і перша літера мала.
  • Нижній відсік містить операції, які може виконувати клас. Вони також вирівняні по лівому краю і перша літера мала.

Можливо додання четветого відділення, яке містить коментарі.

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

Для подальшого опису поведінки систем діаграми класів можуть бути доповнені діаграмою станів автомата або машиною станів UML.

Зв'язки (відношення)

Позначення типів зв'язків

Зв'язок (відношення) (англ. relationships) — це загальний термін, що охоплює конкретні типи логічних зв'язків, які зустрічаються на діаграмі класів та на діаграмі об'єктів. UML визначає наступні типи відношень (зв'язків):

Відношення на рівні екземплярів

Залежність

Залежність (англ. dependency) — це тип асоціації, де існує семантичний зв'язок між залежним і незалежним елементами моделі.[2] Вона існує між двома елементами, якщо зміни у визначенні одного елемента (сервера або цілі) можуть спричинити зміни в іншому (клієнті або джерелі). Цей зв'язок є односпрямованим. Залежність відображається у вигляді пунктирної лінії з відкритою стрілкою, яка вказує від клієнта до постачальника.

Асоціація

Асоціація (англ. association) показує, що об'єкти однієї сутності (класу) пов'язані з об'єктами іншої сутності.

Якщо між двома класами визначена асоціація, то можна переміщатися від об'єктів одного класу до об'єктів іншого. Цілком припустимі випадки, коли обидва кінці асоціації відносяться до одного і того ж класу. Це означає, що з об'єктом деякого класу дозволено зв'язати інші об'єкти з того ж класу. Асоціація, що зв'язує два класи, називається бінарною. Можна, хоча це рідко буває необхідним, створювати асоціації, що зв'язують відразу кілька класів; вони називаються n-арними. Графічно асоціація зображується у вигляді лінії, що з'єднує клас сам з собою або з іншими класами.

Приклад діаграми класів для зв'язку між двома класами.

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

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

Часто при моделюванні буває важливо вказати, скільки об'єктів може бути пов'язано допомогою одного примірника асоціації. Це число називається кратністю (Multiplicity) ролі асоціації та записується або як вираз, значенням якого є діапазон значень, або в явному вигляді. Вказуючи кратність на одному кінці асоціації, ви тим самим говорите, що на цьому кінці саме стільки об'єктів повинно відповідати кожному об'єкту на протилежному кінці. Кратність можна задати рівною одиниці (1), можна вказати діапазон: «нуль або одиниця» (0..1), «багато» (0 .. *), «одиниця або більше» (1 .. *). Дозволяється також вказувати певне число (наприклад, 3). За допомогою списку можна задати і більш складні кратності, наприклад 0. . 1, 3..4, 6 .. *, що означає «будь-яке число об'єктів, крім 2 і 5».

Спрямована асоціація (англ. Navigable Association) - відносини направлені тільки в одному напрямку.

Агрегація

Приклад агрегації: професор може бути пов'язаний з одним або більше класів, в той час кожен клас пов'язаний лише з одним професором

Агрегація (англ. aggregation)— проста асоціація між двома класами, де один з класів має вищий ранг (ціле) і складається з декількох менших за рангом (частин).

Ставлення такого типу також називають слабкою агрегацією (англ. weak aggregation); воно зараховане до відносин типу «має» (з урахуванням того, що об'єкт-ціле має кілька об'єктів-частин). Агрегація є окремим випадком асоціації і її зображують як просту асоціацію з незафарбованим ромбом з боку «цілого».

За потреби можна вказувати кратність агрегації.

Агрегація не накладає жорстких умов на термін існування об'єктів. Наприклад, «частини» можуть існувати тоді, коли «ціле» зникає.

Графічно агрегація представлена порожнім ромбом на блоці «цілого», і лінією, яка проведена від цього ромба до класу, що міститься в ньому («частин»).

Композиція

Приклад відношення композиції між Університетом та Підрозділом, яка чітко вказує, що об'єкти Підрозділу не існують, якщо не існує Університет, якому вони належать

Композиція (англ. composition) — більш строгий варіант агрегації (англ. strong aggregation). Відома також як агрегація за значенням.

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

Графічно представляється як і агрегація, але з зафарбованим ромбиком.

Відмінності між композицією і агрегацією

Дві діаграми класів. Діаграма зверху показує композицію між двома класами: Автомобіль має рівно один карбюратор, і карбюратор є частиною одного автомобіля. Карбюратори не можуть існувати як окремі частини, відокремлені від конкретного автомобіля. На діаграмі внизу показано агрегацію між двома класами: Ставок має нуль або більше Качок, а Качка має щонайбільше один Ставок (одночасно). Качка може існувати окремо від ставка, наприклад, вона може жити біля озера. Якщо ми знищуємо ставок, ми зазвичай не вбиваємо всіх качок.

Відносини між класом Виш і класами Студент і Факультет злегка відрізняються один від одного, хоча обидва є відносинами агрегування. У виші може бути будь-яка кількість студентів (включаючи нуль), і кожен студент може навчатися в одному або декількох вишах; виш може складатися з одного або декількох факультетів, але кожен факультет належить одному і лише одному вишу. Відношення між класами Виш і Факультет називають композицією, оскільки при знищенні моделі Виш моделі факультетів, що належать цьому ВНЗ, також будуть знищені. Студент і Виш пов'язані агрегацією тому, що Студента не можна видалити при знищенні Вишу.

Відносини композиції

1. При спробі представити реальні відношення «ціле-частина», наприклад, двигун є частиною автомобіля.

2. Коли руйнується контейнер, руйнується і його вміст, наприклад, університет та його факультети.

Агрегаційне відношення

1. При представленні відношення програмного забезпечення або бази даних, наприклад, двигун моделі автомобіля ENG01 є частиною моделі автомобіля CM01, оскільки двигун, ENG01, може також бути частиною іншої моделі автомобіля[9].

2. Коли контейнер знищується, його вміст зазвичай не знищується, наприклад, у професора є студенти; коли професор залишає університет, студенти не йдуть разом з ним.

Таким чином, зв'язок агрегації часто називають «каталожним» утриманням, щоб відрізнити його від «фізичного» утримання композиції.

Відношення на рівні класів

Діаграма класів, що показує узагальнення між суперкласом Особа та двома підкласами Студент і Професор.

Узагальнення/Наслідування

Це означає, що один з двох споріднених класів (підклас, підтип, нащадок) вважається спеціалізованою формою іншого (суперклас, супертип, батько), а суперклас вважається узагальненням підкласу. На практиці це означає, що будь-який екземпляр підкласу є також екземпляром суперкласу. Зразкове дерево узагальнень такої форми можна знайти в біологічній класифікації: людина є підкласом приматів, який є підкласом ссавців, і так далі. Відношення найлегше зрозуміти за допомогою фрази «А є В» (людина є ссавцем, ссавець є твариною).

Графічне представлення узагальнення в UML — це порожнистий трикутник на кінці лінії (або дерева ліній) суперкласу, який з'єднує його з одним або декількома підкласами.

Відношення узагальнення також відоме як успадкування (наслідування) або відношення «є».

Суперклас (базовий клас) у відношенні узагальнення також відомий як «батько», суперклас, базовий клас або базовий тип.

Підтип у відношенні спеціалізації також відомий як «дочірній», підклас, похідний клас, похідний тип, успадкований клас або успадкований тип.

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

А є різновидом Б

Наприклад, «дуб — це вид дерева», «автомобіль — це вид транспортного засобу».

Узагальнення можна показати лише на діаграмах класів і на діаграмах варіантів використання (англ. use case diagrams).

Реалізація/Впровадження

У моделюванні UML зв'язок реалізації — це зв'язок між двома елементами моделі, в якому один елемент моделі (клієнт) реалізує (впроваджує або виконує) поведінку, яку визначає інший елемент моделі (постачальник).

Графічне представлення Реалізації в UML — це порожнистий трикутник на інтерфейсному кінці пунктирної лінії (або дерева ліній), яка з'єднує її з одним або декількома реалізаторами. На інтерфейсному кінці пунктирної лінії, що з'єднує її з користувачами, використовується звичайна стрілка. На діаграмах компонентів використовується графічна конвенція «куля-розетка» (реалізатори показують кулю або льодяник, тоді як користувачі показують розетку). Реалізації можуть бути показані тільки на діаграмах класів або компонентів. Реалізація — це зв'язок між класами, інтерфейсами, компонентами та пакетами, який з'єднує елемент-клієнт з елементом-постачальником. Зв'язок реалізації між класами/компонентами та інтерфейсами показує, що клас/компонент реалізує операції.

Загальні відношення

Діаграма класів, що показує залежність між класами «Автомобіль» та «Колесо» (ще більш зрозумілим прикладом може бути «Автомобіль залежить від Колеса», оскільки Автомобіль вже агрегує (а не просто використовує) Колесо)

Залежність

Залежність може бути слабшою формою зв'язку, яка вказує на те, що один клас залежить від іншого, оскільки він використовує його в певний момент часу. Один клас залежить від іншого, якщо незалежний клас є змінною-параметром або локальною змінною методу залежного класу. Іноді зв'язок між двома класами дуже слабкий. Вони взагалі не реалізуються за допомогою змінних-членів. Замість цього вони можуть бути реалізовані як аргументи функцій-членів.

Множинність

Цей асоціативний зв'язок вказує на те, що (принаймні) один з двох пов'язаних класів посилається на інший. Цей зв'язок зазвичай описується як «A має B» (мати-кішка має кошенят, кошенята мають матір-кішку).

Представлення асоціації в UML — це лінія, що з'єднує два пов'язані класи. На кожному кінці лінії є необов'язкові позначення. Наприклад, ми можемо вказати за допомогою стрілки, що гострий кінець видно з хвоста стрілки. Ми можемо вказати право власності, розмістивши кульку, роль, яку відіграють елементи цього кінця, надавши ім'я ролі, і множинність екземплярів цієї сутності (діапазон кількості об'єктів, які беруть участь в асоціації з точки зору іншого кінця).

0 Немає екземплярів (рідко трапляється)
0..1 Немає екземплярів або один
1 Рівно один екземпляр
1..1 Рівно один екземпляр
0..* Нуль або більше екземплярів
* Нуль або більше екземплярів
1..* Один або більше екземплярів

Аналітичні стереотипи

Сутності

Класи сутностей моделюють довготривалу інформацію, яку обробляє система, а іноді й поведінку, пов'язану з цією інформацією. Їх не слід ототожнювати з таблицями бази даних або іншими сховищами даних.

Вони зображуються у вигляді кружечків з короткою лінією, прикріпленою до нижньої частини кружечка. Крім того, їх можна зобразити як звичайні класи зі стереотипним позначенням «сутність» над назвою класу.

Призначення і рівні діаграми класів

Залежно від цілей використання діаграма класів може бути використана для побудови таких моделей:

  • концептуальна модель, модель аналізу (англ. conceptual model) — діаграма класів описує модель предметної області, у ній присутні тільки класи прикладних об'єктів, використовується для управління процесом мислення, розуміння; потребує концептуальної цілісності (англ. consistency);
  • модель проектування (англ. design model) — діаграма класів застосовується при проектуванні інформаційних систем, призначена для подальшої розробки моделей реалізації; головна вимога — зрозумілість (англ. usability).
  • модель реалізації (англ. implementation model) — діаграма класів містить класи, які використовуються безпосередньо у програмному коді (при використанні об'єктно-орієнтованих мов програмування); головна вимога — повнота (англ. completeness).

Примітки

  1. James Rumbaugh, Ivar Jacobson, Grady Booch (1999). The unified modeling language reference manual (англ.) . Addison Wesley Longman Inc. ISBN 0-201-30998-X.
  2. Fowler (2003) UML Distilled: A Brief Guide to the Standard Object Modeling Language

Див. також

Read other articles:

المالطية الاسم الذاتي Malti   الناطقون 371,900 (1975)[1] الدول  مالطا الرتبة غير موجودة في أول 100 الكتابة الأبجدية المالطية مشتقة من الأبجدية اللاتينية النسب أفريقية آسيوية الساميةالسامية الغربيةالسامية الوسطىالسامية الجنوبية الوسطىالعربيةمغاربية عربيةصقلية عربيةالما...

 

Roman ReignsReigns pada August 2023Nama lahirLeati Joseph Anoaʻi[1]Lahir25 Mei 1985 (umur 38)[1]Pensacola, Florida, Amerika Serikat[2]Tempat tinggalTampa, Florida, Amerika SerikatAlma materGeorgia Institute of Technology[1]PasanganGalina Becker ​(m. 2014)​[3]Anak3KeluargaAnoaʻiKarier gulat profesionalNama ringJoe Anoaʻi[2]Leakee[2]Roman Leakee[2]Roman Reigns[2]Tinggi6 ft 3 in...

 

English blues rock band The Jeff Beck GroupThe band in circa 1969: (left to right) Rod Stewart, Ronnie Wood, Micky Waller and Jeff Beck.Background informationOriginLondon, EnglandGenres Blues rock hard rock jazz fusion Years active1967–19691970–1972Labels Epic CBS Spinoffs Beck, Bogert & Appice Faces Past members Jeff Beck Rod Stewart Ronnie Wood Jet Harris Dave Ambrose Clem Cattini Viv Prince Aynsley Dunbar Micky Waller Roy Cook Nicky Hopkins Tony Newman Alex Ligertwood Max Middleton...

Steve Finnan Informasi pribadiNama lengkap Stephen John FinnanTanggal lahir 24 April 1976 (umur 47)Tempat lahir Limerick, Republik IrlandiaTinggi 6 ft 0 in (1,83 m)Posisi bermain Bek kananInformasi klubKlub saat ini LiverpoolNomor 3Karier junior19xx–1993 WimbledonKarier senior*Tahun Tim Tampil (Gol) 1993–19951995–199619961996–19981998–20032003–20082008– Welling United Birmingham City→ Notts County (loan)Notts CountyFulham LiverpoolEspanyol 041 (1)015 (1)01...

 

Final Piala Generalísimo 1950TurnamenPiala Generalísimo 1949–1950 Athletic Bilbao Valladolid 4 1 Tanggal28 Mei 1950StadionStadion Chamartín, MadridWasitRamón AzónPenonton80.000← 1949 1951 → Final Piala Generalísimo 1950 adalah pertandingan final ke-46 dari turnamen sepak bola Piala Generalísimo untuk menentukan juara musim 1949–1950. Pertandingan ini diikuti oleh Athletic Bilbao dan Valladolid dan diselenggarakan pada 28 Mei 1950 di Stadion Chamartín, Madrid. Athletic ...

 

Gereja Agung Santo MartinusGereja Agung Paroki Biara Santo MartinusJerman: Klosterkirche Groß Sankt Martincode: de is deprecated Basilika Bunda Maria Penghibur yang BerdukaLokasiKölnNegara JermanDenominasiGereja Katolik RomaArsitekturStatusGereja paroki, gereja biaraStatus fungsionalAktifAdministrasiKeuskupan AgungKeuskupan Agung Köln Gereja Agung Santo Martinus (Jerman: Groß Sankt Martincode: de is deprecated , secara umum disingkat menjadi Groß St. Martin, adalah sebuah gereja par...

Sebuah analemma yang menggambarkan perubahan posisi Matahari selama satu tahun, yang dilihat dari waktu yang tetap dalam sehari. Satu tahun atau warsa adalah periode orbit Bumi bergerak dalam orbitnya mengelilingi Matahari. Karena kemiringan sumbu Bumi, satu tahun mengalami berlalunya musim, ditandai dengan perubahan cuaca, jam siang, dan berdampak pada vegetasi dan kesuburan tanah. Di daerah beriklim sedang dan subkutub di seluruh dunia, empat musim umumnya diakui: musim semi, musim panas, m...

 

1350-1905 state in Southeast Asia Sultanate of Buayanكسولتانن نو بواينKasultanan nu Buayanc.1350–1905 Seal of Datu Uto (1875–1899) The territorial map of the Sultanate of Buayan in 1875 during the reign of Datu Utto.CapitalBuayan (1350–c.1860)Bacat (c.1860–1872; 1875–1899)Kudarangan (1872–1875)Tinungkup (1899–1905)Common languagesMaguindanaon, Iranun, Teduray, Manobo languages and BlaanReligion IslamDemonym(s)BuayanenGovernmentAbsolute monarchySultan/Datu/Raj...

 

国民阵线Barisan NasionalNational Frontباريسن ناسيونلபாரிசான் நேசனல்国民阵线标志简称国阵,BN主席阿末扎希总秘书赞比里署理主席莫哈末哈山总财政希山慕丁副主席魏家祥维纳斯瓦兰佐瑟古律创始人阿都拉萨成立1973年1月1日 (1973-01-01)[1]设立1974年7月1日 (1974-07-01)前身 联盟总部 马来西亚  吉隆坡 50480 秋傑区敦依斯迈路太子世贸中心(英�...

Kedutaan Besar Australia di JakartaAustralian Embassy JakartaGedung kedutaan pada tahun 2016Koordinat6°13′55.5″S 106°50′2.9″E / 6.232083°S 106.834139°E / -6.232083; 106.834139Koordinat: 6°13′55.5″S 106°50′2.9″E / 6.232083°S 106.834139°E / -6.232083; 106.834139Lokasi Jakarta, IndonesiaAlamatJalan Patra Kuningan Raya Kav. 1-4Jakarta SelatanDuta BesarGary Quinlan (en)Chargé d'affairesAllaster CoxSitus webindonesia.embassy.g...

 

Çamlıca HillÇamlıca TepesiPemandangan Bukit Çamlıca di balik Jembatan Bosphorus.Titik tertinggiKetinggian268 m (879 ft)Koordinat41°1′39″N 29°4′6″E / 41.02750°N 29.06833°E / 41.02750; 29.06833Koordinat: 41°1′39″N 29°4′6″E / 41.02750°N 29.06833°E / 41.02750; 29.06833 GeografiÇamlıca HillLetak Bukit Çamlıca di Istanbul, Turki.LetakÜsküdar, Istanbul Bukit Çamlıca (Turki: Çamlıca Tepesi), al...

 

هذه المقالة هي جزء من سلسلة مقالات حولأسلحـة الدمار الشامل حسب النوع أسلحة بيولوجية أسلحة كيميائية أسلحة نووية أسلحة إشعاعية حسب البلد ألبانيا الجزائر الأرجنتين أستراليا البرازيل بلغاريا كندا الصين مصر فرنسا ألمانيا الهند إيران العراق إسرائيل إيطاليا اليابان ليبيا الم�...

جزء من سلسلة مقالات حولالمطبخ العربي حسب البلد الجزيرة العربية البحرين الإمارات الكويت سلطنة عمان قطر السعودية اليمن المغرب الكبير الجزائر ليبيا موريتانيا المغرب تونس الشام العراق الأردن لبنان فلسطين سوريا نهر النيل مصر السودان القرن الأفريقي جيبوتي الصومال المحيط اله�...

 

George Gamow Nama dalam bahasa asli(ru) Гео́ргий Анто́нович Га́мов BiografiKelahiran(ru) Геóргий Анто́нович Га́мов 4 Maret 1904 Odesa (Kekaisaran Rusia) Kematian19 Agustus 1968 (64 tahun)Boulder (Amerika Serikat) Tempat pemakamanGreen Mountain Cemetery Galat: Kedua parameter tahun harus terisi! Colorado Galat: Kedua parameter tahun harus terisi! Data pribadiAgamaAteisme PendidikanFaculty of Physics and Mathematics of the Saint Petersburg Universi...

 

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus. Cet article ne cite pas suffisamment ses sources (octobre 2022). Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ». En pratique : Quelles sources sont attendues ? C...

Complete, but not independent, musical idea This article is about musical form. For groups of like instruments, see Musical ensemble § Larger ensembles. Rhythm changes bridge (B section of an AABA form) in the key of C. Playⓘ In music, a section is a complete, but not independent, musical idea.[1] Types of sections include the introduction or intro, exposition, development, recapitulation, verse, chorus or refrain, conclusion, coda or outro, fadeout, bridge or interlude. In se...

 

US Department of Education online repository ERIC redirects here. For other uses, see Eric (disambiguation). This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages) This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (January 2016) (Learn how and when to remove this message) T...

 

和田竜二 2023年ジャパンCパドック(騎乗馬:ディープボンド)基本情報国籍 日本出身地 滋賀県[1]生年月日 (1977-06-23) 1977年6月23日(47歳)[1]身長 165cm[1]体重 50kg[1]血液型 O型[1]騎手情報所属団体 JRA所属厩舎 栗東・岩元市三(1996.3.1 - 2010.4.7)栗東・フリー(2010.4.8 -)[2]初免許年 1996年[1]免許区分 平地[3]重賞勝利 67勝(中央50�...

Indian judge of the Kerala High Court Dr. JusticeKauser EdappagathJudge of the Kerala High CourtIncumbentAssumed office 25 February 2021Nominated bySharad Arvind BobdeAppointed byRam Nath KovindPrincipal District and Sessions Judge of Ernakulam DistrictIn office2018–2021 Personal detailsBorn (1968-05-25) 25 May 1968 (age 56)IndiaParentP.K Mahamood (father)EducationPh.D in LawAlma materGovernment Law College, KozhikodeWebsiteHigh Court of Kerala Kauser Edappagath (Malayalam: ഡോ....

 

Study of the representation of one's identity Not to be confused with Self psychology.Part of a series onPsychology Outline History Subfields Basic psychology Abnormal Affective neuroscience Affective science Behavioral genetics Behavioral neuroscience Behaviorism Cognitive/Cognitivism Cognitive neuroscience Social Comparative Cross-cultural Cultural Developmental Differential Ecological Evolutionary Experimental Gestalt Intelligence Mathematical Moral Neuropsychology Perception Personality P...