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é
- 01Každý pohľad musí pomenovať osobu a rozhodnutie. Ak to nedokážete, nekreslite ho.
- 02Úplný model nepostaveného systému je sebavedomé hádanie a tie odhady zabetónuje.
- 03Modelujte jednu úroveň pod rozhodnutím. Detail, ktorý nemôže zmeniť odpoveď, zhnije.
- 04Rozsah patrí pohľadu, nie modelu - jeden model, veľa malých pohľadov.
- 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
- 01Ktorý jazyk použiť
- 02Vymedzenie rozsahu modelu
- 03Konvencie pomenovania
- 04Udržiavanie modelu
Súvisiace články
Prax modelovania
Prax modelovania
Prax modelovania
Diagramy štruktúry
Diagramy správania
Prax modelovania