Archyno
PracticePrax modelovania

Koľko zo systému modelovať

Jediná otázka, ktorá to rozhodne, je, aké rozhodnutie má model podoprieť - a väčšina toho, čo ľudia modelujú, nepodopiera nič.

6 min čítaniaModelling practice2 z 4

Krátka odpoveď

  • Modelujte toľko, koľko podoprie rozhodnutie, ktoré niekto naozaj urobí, a nič viac.
  • Pri každom pohľade pomenujte rozhodnutie, ktoré podopiera, a človeka, ktorý ho robí. Ak neviete pomenovať oboje, nikto ten pohľad čítať nebude.
  • Kompletný model systému, ktorý nikto nepostavil, je sada sebavedomých dohadov, a jeho hlavným účinkom je, že sa tých dohadov ťažšie vzdáte.
  • Model je príliš podrobný vo chvíli, keď zmena kódu vyžaduje zmenu modelu a nikto ju neurobí. Za tým bodom sa vzďaľuje a stále vyzerá dôveryhodne.

01Skúška: pomenujte rozhodnutie#

Skôr než nakreslíte akýkoľvek pohľad, dokončite túto vetu: „Tento pohľad existuje preto, aby [osoba] mohla rozhodnúť [vec].“ Ak nedokážete doplniť obe medzery, nekreslite ho.

Skúška funguje preto, že je vyvrátiteľná, a to každá iná rada na túto tému nie je. „Modelujte dôležité časti“ nemôže prehrať spor; „tento diagram tried existuje preto, aby platformový tím mohol rozhodnúť, či výpočet dane patrí fakturácii“ buď pravda je, alebo nie je, a menovanej osoby sa dá spýtať.

Poctivo uplatnená odstráni väčšinu toho, čo sa modeluje. Diagram súčasného systému nakreslený preto, že by ho niekto mal zdokumentovať, neinformuje o ničom. Pohľad zobrazujúci každú službu v portfóliu neinformuje o ničom, pretože žiadne rozhodnutie sa netýka všetkých naraz. Prežije malý počet pohľadov, každý mierený na spor, ktorý niekto práve vedie.

02Tri spôsoby, ako nevymedzený model zlyhá#

Stane sa druhou implementáciou. Každá trieda, každé pole, každé volanie - model v takej vernosti je kópiou kódu napísanou v notácii, a nesprávna je vždy tá kópia. Toto je zlyhanie, ktoré dalo modelovaniu jeho povesť, a pochádza výhradne z toho, že sa nikto nespýtal, načo model je.

Stane sa obrázkom organizačnej schémy. Nevymedzené modely sa posúvajú k tomu, aby zobrazovali systém každého tímu s rovnakou váhou, pretože to je politicky najjednoduchšie usporiadanie. Výsledkom je diagram, na ktorom sú dva komponenty, ktoré spolu naozaj komunikujú, rovnako veľké ako dvadsať, ktoré nie, a nikto v ňom nenájde otázku.

Stane sa neudržateľným tým najobyčajnejším spôsobom. Nie dramaticky - jednoducho tak, že obsahuje viac detailov, než má tím chuť aktualizovať, takže pár prvkov zastará, potom ďalších pár, a do dvoch štvrťrokov je model vecou, ktorú si ľudia radšej overujú proti kódu, než by jej verili.

Siahnite po ňom, keď

  • Rozhodnutie je naozaj otvorené a dvaja ľudia sa o ňom nezhodnú
  • Zmena pretne viacero tímov a niekto musí vidieť švy
  • Budúci čitateľ bude potrebovať vedieť, prečo existuje neintuitívna štruktúra
  • Nováčik potrebuje tvar domény, nie tvar kódu

Siahnite po niečom inom, keď

  • Dokumentovanie systému, ktorý sa nikto nechystá meniť
  • Zaznamenávanie rozhodnutia, ktoré už padlo a je z kódu aj tak zrejmé
  • Modelovanie preto, že šablóna alebo proces žiada diagram
  • Akákoľvek úroveň detailu, ktorú tím po skončení projektu nebude udržiavať

03Práca v správnej veľkosti#

Jeden model, viacero malých pohľadov. Rozsah je vlastnosťou pohľadu, nie modelu - model môže obsahovať všetko, čo doň ktokoľvek zadal, a každý pohľad ukazuje tú hŕstku prvkov, ktoré potrebuje jedno rozhodnutie. Na to slúži mechanizmus hľadísk v ArchiMate a rovnako dobre platí aj pre UML.

Modelujte jednu úroveň pod rozhodnutím, nie dve. Ak je spor o tom, ktorá služba vlastní istú zodpovednosť, modelujte služby a ich závislosti. Nemodelujte triedy vnútri nich; ten detail nemôže zmeniť odpoveď a je to práve ten detail, ktorý zhnije.

Zmažte pohľady, ktoré splnili svoj účel. Pohľad nakreslený pre migráciu, ktorá prebehla, je hotový, a ponechať si ho znamená, že budúci čitateľ nájde sebavedomý diagram architektúry, ktorá už neexistuje. Mazanie dokumentácie sa zdá nesprávne a zvyčajne je správne.

Po jednom riadku na každé

  1. 01Každý pohľad musí pomenovať osobu a rozhodnutie. Ak to nedokážete, nekreslite ho.
  2. 02Úplný model nepostaveného systému je sebavedomé hádanie a tie odhady zabetónuje.
  3. 03Modelujte jednu úroveň pod rozhodnutím. Detail, ktorý nemôže zmeniť odpoveď, zhnije.
  4. 04Rozsah patrí pohľadu, nie modelu - jeden model, veľa malých pohľadov.
  5. 05Zmažte pohľad, keď jeho rozhodnutie padlo. Zastaraný diagram je horší než žiadny.

Ďalej v tejto sérii: konvencie pomenovania a potom udržiavanie modelu aktuálneho.

04Časté otázky#

Koľko zo systému mám modelovať?

Toľko, koľko podoprie rozhodnutie, ktoré niekto naozaj urobí. Pri každom pohľade, ktorý sa chystáte nakresliť, pomenujte rozhodnutie a človeka, ktorý ho robí; ak neviete pomenovať oboje, je to dokumentácia systému a nie nástroj na jeho zmenu, a nikto ju čítať nebude.

Mám namodelovať celý systém pred začiatkom?

Nie. Kompletný model systému, ktorý ešte nikto nepostavil, je sada dohadov nakreslených so sebavedomím a jeho hlavným účinkom je, že sa tých dohadov ťažšie vzdáte. Namodelujte tú časť, kde je rozhodnutie naozaj otvorené, stavajte, a ďalšiu časť namodelujte, keď príde ďalšie rozhodnutie.

Ako spoznám, že je model príliš podrobný?

Keď zmena v kóde vyžaduje zmenu v modeli a nikto ju neurobí. To je bod, v ktorom má model viac detailu, než tím dokáže udržiavať, a za ním sa každý diagram vzďaľuje od systému a zároveň naďalej vyzerá dôveryhodne.

V tejto sérii

Súvisiace články

Všetky články