jak mam jeden duży "monolit" - core, aplikacji np. napisany w Javie który będzie zawierał z 200.000 lini kodu - z 5000 plików javovych - to jak się takie coś projektuje?
Mało kto projektuje tak żeby było 200000 linii kodu :-)
Takie projekty się zdarzają, ale raczej rosną jak góra błota.
Prawie zawsze zaczyna się od małego projektu na kilka tygodni - kilkadziesiąt klas i dopiero seria przypadków, sukcesów i porażek powoduje, że takie projekty rosną.
UML się nie sprawdza, bo powoduje, że ludzie kłócą się o zupełnie nieistotne problemy, jaki kolor "szczałki" i czy diamencik zaciemniony czy nie.
Modelowanie na takim poziomie jaki jest przydatny w XXI wieku odbywa się na nieco wyższym poziomie abstrakcji. Jak mi jakiś architekt przychodził i rysował diagram klas to zmieniałem firme. (Kiedyś jak byłem architekte
to na ośmiu koderów w zespole dokładnie jeden chciał, żeby mu rysować klasy, ale mu w końcu wyperswadowałem )
UML się też nie sprawdza, bo nie przeżywa spotkania z rzeczywistością - najdalej tydzień po starcie implementacji (danego modułu) diagramy UML przestają odpowiadać temu co jest w kodzie i powodują tylko wzrost zamieszania.
Obecnie czasem używa się C4 gdzie najniższy poziom to klasy (i nawet może to być zrobione w UML), ale przeważnie się tak nisko nie schodzi. Rysuje się moduły kodu (powiedzmy, że może to mieć odwzorowanie w pakietach, chociaż częście jest podprojektach (w gradle to podprojekt)).
I wykorzystuje się do tego tablicę, kartki lub painta.
Dokładniej projektuje się interfejsy/API Ale zamiast diagramów lepiej to robić w kodzie. (proto, openapi, czy po prostu klasy). Kod się czyta i modyfikuje przeważnie łatwiej niż diagramy (na pewnym poziomie).
TLDR;
Clean code > projektowanie w UML
Jak pilnujesz jakości i struktury kodu to projekt może się rozrosnąć od małego do całkiem sporego bez większego bólu i dodatkowego specjalnego projektowania.