I diagramy nasazení jsou abstrakcí reality

Mnozí uživatelé UML chápou velmi dobře a víceméně intuitivně, že jejich diagramy (modely) jsou ve skutečnosti jen abstrakcí reálného světa a že nelze zachytit vše. A ani to nezkoušejí. Ovšem leckdy to celé vezme za své, jakmile se pustí do diagramu nasazení.

Mají totiž pocit, že to je přesně ten bod, kdy se abstrakce setkává s realitou, a tedy je třeba zaznamenat vše. Jenže to opravdu nemá smysl. Proč modelují počítač na úroveň hardisku a paměti, když chtějí pouze ukázat, že aplikace má běžet na počítači s nějakými minimálními požadavky? Proč modelují USB konektor a ovladač tiskárny, aby ukázali propojení s tiskárnou ve chvíli, kdy chtějí jen říct, že jejich aplikace tiskne daňové doklady?

Ukažme si jednoduchý příklad, který zkusí abstrakci zachovat.

Na následujícím obrázku je Raspberry Pi 3 v malinově-bílé krabičce. Pomocí kabelů je propojena nepájivá deska s GPIO piny. Má diody, A/D převodník, rezistory, čidlo teploty a vlhkosti a mnohé další. Na základní desku je dále připojena kamera. To celé je pak pomocí WiFi připojeno do lokální sítě a poté do Internetu.

MalinaRealita

Na „malině“ běží skript, který sbírá aktuální teplotu a vlhkost a výsledky posílá do světa, kde to ukládá, nebo to zobrazí na obrazovce terminálu.

MalinaTeplotaTerminal

Jak to zaznamenat v UML, abychom se nezbláznili? Inu, těch prvků není třeba mít příliš mnoho:

PříkladRaspberryPi

Všimněte si, že v diagramu není kamera, A/D převodník, dioda a mnohé další. Ono to totiž pro tento případ není důležité, a tak to nezobrazuji. Stejně tak není uvedeno přesné zapojení na konkrétní pin GPIO. Opět, není to pro uvedenou situaci důležité.

Máte jiný názor? Sem s ním.

Komentář (5)

  • Honza| 12. 7. 2016

    já si myslím, že při dané úrovni abstrakce jsou důležité i síťové adaptéry. Mě například zajímá, jestli ta Malina jede přes wifi nebo ethernet, BT nebo je tam nabastlenej nějakej RS232 interface. Jinak samozřejmě souhlasím 🙂

    • Slávek Rydval| 12. 7. 2016

      V takovém případě to stačí napsat ke konektoru mezi uzly. Např. já tam mám ssh, klidně tam je možné napsat „ssh via wifi“.

      • David M.| 18. 7. 2016

        Chtěl jsem napsat podobný komentář – u diagramu nasazení pokládám za důležité vyjádřit, co je k čemu fyzicky připojeno. U uvedeného diagramu to musím odvodit z popisku konektoru, což vyžaduje znalost termínů GPIO, ssh, atd. To jsou samozřejmě známé zkratky, ale říkám si, zda by šlo nakreslit diagram nasazení tak, aby bylo poznat fyzické propojení elementů bez spoléhání se na jména protokolů, pomocí kterých spolu elementy komunikují. Jinými slovy, čtenáři diagramu by možná měla stačit znalost UML k tomu, aby poznal co je s čím propojeno a neměl by nutně potřebovat znát protokoly.

        • Slávek Rydval| 19. 7. 2016

          V podstatě není problém mezi uzly znázorňující HW (Device) použít způsob fyzického připojení a mezi SW uzly (Execution Environment) použít protokol.

  • František Polívka| 24. 1. 2017

    Dobrý článek.
    Většina lidí zapomíná na to, že:
    1. Každý model je abstrakce reality.
    2. Každý model je zjednodušením reality.
    3. Model není nikdy identický s reálným předmětem, jehož je modelem.
    4. Dobrý model je takový model, který je užitečný.

    Předchozí téze vypadají jako „blbá“ teorie, ale bez jejich pochopení nelze dobře modelovat.

    Sam F. Polívka

  • Zanechat odpověď

    Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *