UML diagramy balíkov
Ako je model alebo kódová základňa zoskupená a - to podstatné - ktorá skupina smie závisieť od ktorej. Diagram, ktorý z architektonického pravidla robí namiesto zbožného priania niečo overiteľné.
6 min čítaniaUML 2.5.124 z 35
Krátka odpoveď
- Chýbajúce šípky znamenajú toľko čo nakreslené. Každá závislosť v kóde bez šípky na diagrame je porušenie, ktoré viete pomenovať.
- Import vnesie verejné členy do menného priestoru importujúceho a šíri ich ďalej; access ich sprístupní a závislosť tam končí.
- Package merge skopíruje obsah zlučovaného balíka do zlučujúceho. Hojne sa používa vnútri špecifikácie UML, v bežných modeloch zriedka.
- Diagram balíkov je o štruktúre zdrojov, diagram komponentov o nasaditeľných častiach. Nie sú to dva pohľady na tú istú vec.
01Čo ukazuje#
Diagram balíkov je obsah modelu plus pravidlo o tom, kto smie na koho odkazovať. Tvar zložky so záložkou je menný priestor: skupina tried, prípadov použitia, komponentov alebo ďalších balíkov.
Samotné zoskupenie je mierne užitočné. Hodnota je v šípkach. Závislosť z ui na domain hovorí, že vrstva UI smie odkazovať na doménové typy. Neprítomnosť šípky opačným smerom hovorí, že doména nesmie vedieť, že UI existuje - a to je architektonické pravidlo, ktoré viete otestovať, olintovať a nechať na ňom spadnúť build.
02Notácia#
| Prvok | Notácia | Čo znamená |
|---|---|---|
| Balík | zložka so záložkou | Menný priestor. Jeho názov ide do záložky, keď telo drží obsah, a do tela, keď nedrží. |
| Závislosť | Zdroj odkazuje na niečo v cieli. Všeobecný prípad a zvyčajne to stačí. | |
| «import» | Verejné členy cieľa sa stanú viditeľnými v zdroji a re-exportujú sa z neho. | |
| «access» | Viditeľné v zdroji, ale nie re-exportované. Užšia a zvyčajne presnejšia z tých dvoch. | |
| «merge» | Obsah cieľa sa zlúči do zdroja. Mimo metamodelov zriedkavé; budete to čítať častejšie, než písať. | |
| Vnorenie | balík vnútri balíka | Obsiahnutie, písané outer::inner. Dá sa nakresliť aj ako čiara s krížikom v krúžku na strane rodiča. |
V praxi väčšinu diagramov balíkov unesie obyčajná šípka závislosti a rozlíšenie «import» oproti «access» si zaslúži miesto, len keď modelujete jazyk alebo framework, ktorého modulový systém ten rozdiel robí skutočným.
03Čítanie smeru#
Všetko zaujímavé na diagrame balíkov je v smere šípok a hľadať treba dve veci.
Cykly. Ak viete začať pri balíku, sledovať šípky a vrátiť sa tam, kde ste začali, tie balíky sa nedajú nezávisle zostaviť, otestovať, pochopiť ani nasadiť. Je to jeden balík predstierajúci, že je viacero. Diagram balíkov spraví cyklus viditeľným asi za dve sekundy, čo je najrýchlejší spôsob, ako nejaký nájsť, ak nemáte nástroj.
Stabilita. Závislosti majú mieriť na veci, ktoré sa menia menej často. Na diagrame vyššie ui aj infrastructure mieria na domain a všetky tri mieria na shared. To je tvar vrstvenej architektúry: nestále veci závisia od stabilných, nikdy naopak. Šípka z domain na ui by bola tou najdôležitejšou vecou na stránke.
Takto tiež spoznáte balík shared alebo common, ktorý sa kazí. Ten, na ktorý mieri všetko, je v poriadku, pokiaľ sám nemieri na nič. Vo chvíli, keď získa odchádzajúcu šípku, každý balík v systéme tranzitívne závisí od toho cieľa.
04Kedy taký nakresliť#
Siahnite po ňom, keď
- Zavedenie alebo zdokumentovanie pravidla vrstvenia, ktoré sa má vynucovať
- Posúdenie kódovej základne kvôli cyklom závislostí medzi modulmi
- Dať nováčikovi mapu repozitára pred detailmi
- Plánovanie, ako rozdeliť monolit - rezné čiary sú tam, kde sú šípky tenké
Siahnite po niečom inom, keď
- Sú tri balíky a štruktúra je zrejmá zo stromu priečinkov
- Zaujímavé sú kontrakty medzi časťami - použite diagram komponentov
- Museli by ste ho prekresľovať pri každom presune súboru
- Zoskupenie existuje, ale žiadne pravidlo o závislostiach nie; šípky by boli popisným šumom
Diagramy balíkov fungujú dobre v dvoch výškach a zle medzi nimi: celý systém pri piatich až deviatich balíkoch, alebo jeden podsystém v podobnej zrnitosti. Diagram štyridsiatich balíkov je graf závislostí a graf závislostí prečíta lepšie nástroj než človek.
Po jednom riadku na každé
- 01Balíky sú menné priestory; skutočným obsahom sú šípky medzi nimi.
- 02«import» re-exportuje, «access» nie; obyčajná závislosť zvyčajne stačí.
- 03Sledujte šípky a nájdite cykly - balíky v cykle sú jedným balíkom.
- 04Závislosti majú mieriť na to, čo sa mení najmenej.
- 05Na zdieľaný balík smie mieriť všetko; on sám nesmie mieriť na nič.
- 06Toto je UML diagram, z ktorého sa najpravdepodobnejšie stane automatická kontrola v builde.
05Časté otázky#
Aký je rozdiel medzi import a access v UML?
Oboje sú závislosti medzi balíkmi. Import vnesie verejné členy importovaného balíka do menného priestoru toho importujúceho, takže sa dajú pomenovať bez kvalifikácie a šíria sa ďalej. Access ich sprístupní, ale nešíri ďalej, takže závislosť tam končí.
Ako sa v UML zobrazuje vrstvená architektúra?
Nakreslíte jeden balík na vrstvu a jednu šípku závislosti na každý povolený smer, všetky rovnakým smerom. Hodnota je v tom, že chýbajúce šípky znamenajú toľko čo nakreslené: každá závislosť v kóde, ktorá na diagrame šípku nemá, je porušenie, ktoré viete pomenovať.
Čo znamená package merge?
Merge znamená, že obsah zlučovaného balíka sa pojmovo skopíruje do toho zlučujúceho a spojí s tým, čo tam už je. Hojne sa používa vnútri samotnej špecifikácie UML a v bežných modeloch zriedka.
Aký je rozdiel medzi diagramom balíkov a diagramom komponentov?
Diagram balíkov zoskupuje prvky modelu a ukazuje závislosti menných priestorov, ide teda o to, ako je model alebo kódová základňa organizovaná. Diagram komponentov ukazuje jednotky vymeniteľné za behu a rozhrania medzi nimi. Jedno je o štruktúre zdrojov, druhé o nasaditeľných častiach.
V tejto sérii
- 01Čo je UML?
- 02Symboly UML
- 03Výber diagramu
- 04Diagramy tried
- 05Príklady diagramov tried
- 06Ako nakresliť diagram tried
- 07Symboly diagramu tried
- 08Sekvenčné diagramy
- 09Príklady sekvenčných diagramov
- 10Ako nakresliť sekvenčný diagram
- 11Diagramy prípadov použitia
- 12Príklady prípadov použitia
- 13Diagramy aktivít
- 14Príklady aktivít
- 15Stavové diagramy
- 16Príklady stavových diagramov
- 17Diagramy komponentov
- 18Príklady komponentov
- 19Kreslenie diagramu komponentov
- 20Symboly komponentov
- 21Diagramy nasadenia
- 22Príklady nasadenia
- 23Diagramy objektov
- 24Diagramy balíkov
- 25Diagramy zloženej štruktúry
- 26Komunikačné diagramy
- 27Sekvenčný vs komunikačný
- 28Časové diagramy
- 29Diagramy prehľadu interakcií
- 30Diagramy profilov
- 31UML pomocou AI
- 32Príklad e-shopu
- 33Príklad banky
- 34Príklad mikroslužieb
- 35Príklad AWS
Súvisiace články
Základy
Diagramy štruktúry
Diagramy štruktúry
Diagramy štruktúry
Prax modelovania
Diagramy štruktúry