@superdurszlak Zdaje sobie sprawę, że ISI zmienia się tak samo dynamicznie jak przybywa nowych biblioteka dla Native'a np, ale żeby diagramy klas, które jak dla mnie modelują teoretycznie jak ma wygląda software, jakie mają być interakcje, jakie funkcje są istotne, a które nie. Potem tworząc przypadki użycia podczas procesu tworzenia zdajemy sobie sprawę najwyżej ,,fakt ten element nic tu nie wnosi". Mnie tez uczono na studiach projektowania w ten sposób, bo nie wyobrażam sobie od razu siadania do kodu mając tylko rozpisany algorytm.
Wczesne lata 2000. i odwzorowywanie kodu, który będzie napisany, w ścisłych szczegółach na diagramie, najlepiej w jakimś UMLowym diagramie klas. To podejście nie przetrwało próby czasu, bo IMO jest marnotrawstwem ograniczonych zasobów.
Ten sam czas mógłbyś poświęcić na faktyczne projektowanie interakcji w systemie, implementację protypu / MVP, analizy wydajności czy threat modelling, a zamiast tego nanosisz na diagram wywołania metod i interakcje pomiędzy klasami. Na diagramie klas to będzie wyglądać pięknie, a potem zaczniesz to implementować i dojdziesz do wniosku, że kod jest nieintuicyjny i chciałbyś go zrefaktorować - wrócisz do przerysowywania diagramów? Mi by sę nie chciało.
Jeśli koniecznie chcesz mieć diagramy klas do dokumentacji, dlaczego nie zrobisz podejścia code-first i automatyzacji? Pluginy do IDE (np. Jetbrains) to potrafią, jakieś narzędzia standalone z pewnością też.
Z ciekawych sposobów opisu architektury systemu, może Cię jeszcze zainteresować model C4 lub pokrewne, gdzie dosyć wyraźnie rozdziela się opis systemu na poszczególne warstwy abstrakcji. W dyskusji nad wdrożeniem systemu na faktyczne serwery lub do chmury, lub przy analizowaniu topologii sieci gwarantuję, że nikogo (Ciebie też) nie będzie interesowało, jakie są klasy w projekcie i jakie mają metody, ani co kogo wywołuje.
Robiąc diagram sekwencyjny również opisujesz albo np. działanie jakiegoś algorytmu, albo jakieś złożone interakcje między dwoma i więcej serwerami, ale raczej unikasz robienia obu naraz, bo to zaciemnia obraz i utrudnia analizę. Robisz na diagramie odniesienie "a tu jest procedura X na serwerze Y" i potem robisz diagram dla procedury X na serwerze Y.
A, i jeszcze jedna rzecz. Wartość diagramu wynika z możliwości opisania systemu w sposób zrozumiały bez znajomości wszystkich szczegółów i pełnego kontekstu, oraz z tego na ile jest aktualny. Diagram który w najdrobniejszym szczególe opisuje, jak system jest zbudowany będzie miał dyskusyjną wartość, bo zaciemnia obraz rzeczywistości, a z biegiem czasu szybko się zdezaktualizuje i będzie miał wartość ujemną - bo albo ktoś będzie tracił czas na ciągłe nanoszenie zmian, albo diagram który "opisuje" system będzie po prostu wprowadzał w błąd i podawał nieprawdę. Po co?