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.

About Slávek Rydval 134 Článků
Slávek Rydval začínal jako programátor, ale postupem času se dostal k návrhu softwaru, posléze k integrační architektuře a v současní době pracuje jednak jako architekt řešení a jednak jako školitel UML (základů i příprav k certifikační zkoušce OCUP 2) a nástroje Sparx Enterprise Architect. S UML přišel do styku již na univerzitě, ale opravdu intenzivně se mu věnuje posledních deset let. Na programování však nezanevřel a občas pár řádek kódu napíše.

5 Comments

  1. 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 🙂

      • 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.

        • 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.

  2. 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

Napište komentář

Vaše e-mailová adresa nebude zveřejněna.


*