Příklady UML diagramů tříd
Dvě domény pořádně namodelované a zdůvodnění každé čáry na nich - knihovna, která potřebuje dědičnost, a košík, který potřebuje kompozici.
6 min čteníUML 2.5.15 z 35
Krátká odpověď
- Dvě domény pokryjí každý druh vztahu, který budete kreslit: knihovna, která potřebuje dědičnost, a košík, který potřebuje kompozici.
- Diagram je pohled na model, ne model. Pohled, který obsahuje každou třídu, neodpovídá na nic.
- Pět až dvanáct tříd. Nad dvanáct se vztahy začnou křížit a pozornost jde na sledování čar místo domény.
- Nakreslete třídy, o kterých je aktuální otázka, a zbylých dvě stě nechte v modelu, kde je nástroj stále najde.
01Knihovna, kde si dědičnost zaslouží místo#
Diagram výše se vyplatí číst vztah po vztahu. Book a DVD generalizují LibraryItem, což se kreslí jako dutý trojúhelník mířící na rodiče - a důvod kreslit to takhle, a ne jako dvě nesouvisející třídy se zduplikovanými atributy, je asociace pod tím. Loan míří na právě jeden LibraryItem, a protože míří na abstraktního rodiče, umí půjčit kterýkoli podtyp, aniž by věděl který.
To je celý test dědičnosti v doménovém modelu: ne "působí ty dvě věci podobně", ale je někde v modelu něco, co chce držet jednu nebo druhou, aniž by mu záleželo která. Pokud není, dvě samostatné třídy jsou menší a poctivější odpověď.
Všimněte si násobností na asociaci Member - Loan: 1 k 0..*. Člen bez výpůjček je člen; výpůjčka bez člena je chyba. Ta asymetrie je skutečným faktem o doméně a je uvedená na čáře, ne ponechaná na komentář. Článek o diagramu tříd pokrývá, jak se každý z těch symbolů kreslí.
02Košík, kde si místo zaslouží kompozice#
Tenhle neobsahuje žádnou dědičnost, a právě o to jde při jeho ukázání vedle knihovny. Má místo toho kompozici a rozhraní, a každé je tam z důvodu, na který ten druhý diagram neměl využití.
Plný kosočtverec mezi Basket a BasketLine je tvrzení: smažte košík a položky jdou s ním, protože položka košíku je sama o sobě bezvýznamná. Porovnejte to s obyčejnou asociací z BasketLine na Product, kde produkt položku zjevně přežije - tentýž tvar vztahu, dvě rozdílné životnosti, a notace je odlišuje.
PricingRule je bod rozšíření. Jsou nakreslené dvě realizace, protože jedna realizace není abstrakce, je to třída s krokem navíc - a ve chvíli, kdy jsou dvě, je přidání třetí akce novou třídou, ne novou větví v existující metodě.
03Jak kterýkoli z nich přečíst za třicet vteřin#
Oba diagramy se odvděčí za totéž pořadí čtení, a není zleva doprava. Začněte násobnostmi, protože ty jsou rozhodnutími: říkají, co systém připouští, a nejhůř se později mění. Pak čtěte kosočtverce, které říkají, co se maže s čím. Pak trojúhelníky, které říkají, co může zastoupit co. Atributy naposled, a jen ty, o kterých pochybujete.
Diagram, který tohle čtení přežije, se vyplatí si nechat. Ten, kde jsou násobnosti prázdné, není hotový, ať vypisuje kolik chce atributů - a to je zdaleka nejčastější stav, ve kterém diagram tříd najdete.
Po jednom řádku na každé
- 01Dědičnost kreslete tehdy, když něco v modelu drží rodičovský typ bez ohledu na to, který podtyp má.
- 02Kompozici použijte, když se část maže s celkem, a jinak obyčejnou asociaci.
- 03Rozhraní s jednou realizací je třída s kroky navíc; dvě z něj udělají bod rozšíření.
- 04Násobnosti jsou rozhodnutí na diagramu. Prázdné znamenají, že diagram není hotový.
- 05Pět až dvanáct tříd na diagram. Pohled, který drží všechno, neodpovídá na nic.
Dál: jak nakreslit jeden od nuly a reference symbolů na ověření značky, kterou si nejste jistí.
04Časté dotazy#
Jaký je dobrý příklad UML diagramu tříd?
Takový, který se dá přečíst jedním pohledem a je zároveň dost úplný na to, aby se o něm dalo diskutovat. Knihovna s abstraktní třídou LibraryItem a dvěma podtypy ukáže dědičnost; košík složený ze svých položek ukáže kompozici. Společně pokryjí každý druh vztahu, který budete kreslit.
Má diagram tříd zobrazit každou třídu systému?
Ne. Diagram je pohled na model, ne samotný model, a pohled, který obsahuje všechno, neodpovídá na nic. Nakreslete třídy, o kterých je aktuální otázka, a zbylých dvě stě nechte v modelu, kde je nástroj stále najde.
Kolik tříd patří na jeden diagram tříd?
Pět až zhruba dvanáct. Pod pět obvykle ještě není řečeno dost na to, aby se vyplatilo kreslit; nad dvanáct se vztahy začnou křížit a čtenář utrácí pozornost za sledování čar místo pochopení domény.
V této sérii
- 01Co je UML?
- 02Symboly UML
- 03Výběr diagramu
- 04Diagramy tříd
- 05Příklady diagramů tříd
- 06Jak nakreslit diagram tříd
- 07Symboly diagramu tříd
- 08Sekvenční diagramy
- 09Příklady sekvenčních diagramů
- 10Jak nakreslit sekvenční diagram
- 11Diagramy případů užití
- 12Příklady případů užití
- 13Diagramy aktivit
- 14Příklady aktivit
- 15Stavové diagramy
- 16Příklady stavových diagramů
- 17Diagramy komponent
- 18Příklady komponent
- 19Kreslení diagramu komponent
- 20Symboly komponent
- 21Diagramy nasazení
- 22Příklady nasazení
- 23Diagramy objektů
- 24Diagramy balíků
- 25Diagramy složené struktury
- 26Komunikační diagramy
- 27Sekvenční vs komunikační
- 28Časové diagramy
- 29Diagramy přehledu interakcí
- 30Diagramy profilů
- 31UML pomocí AI
- 32Příklad e-shopu
- 33Příklad banky
- 34Příklad mikroslužeb
- 35Příklad AWS
Související články
Diagramy struktury
Diagramy struktury
Přehled notace
Základy
Základy
Diagramy chování