Nie mogę obojętnie przejść wobec Twoich postów @delform_17 Po prostu nie mogę patrzeć na diagramy, które produkujesz ;-)
Spójrz na diagram z inicjalnego posta, w którym używasz notacji lizaka na diagramie komponentów.
Zgodnie z tym diagramem:
- GUI wystawia interfejs dla innych komponentów (
---O),
Stock Portfolio i Client Session potrzebują GUI do działania (---().
Czy naprawdę o to Ci chodziło, że Stock Portfolio wymaga GUI do działania?
Jeśli nie, to proponuję zacząć od tej książki.
Nie zaczynaj od przypadkowej dokumentacji z internetu ani od tworzenia diagramów bez jasno określonego celu. Diagramy powinny być użyteczne, a nie tworzone pro forma.
Wspomniana książka powinna dać Ci ogólny obraz tego, jak wygląda proces projektowania systemu i jak to pogodzić z iteracyjnym podejściem.
- Ustalasz, co w systemie można zrobić. Raczej nie masz gotowca, tylko trzeba porozmawiać z ludźmi i doprecyzować wymagania -> diagramy przypadków użycia
- W ramach prac koncepcyjnych porządkujesz pojęcia, reguły -> diagram koncepcyjny (diagram klas na wysokim poziomie ogólności, pokazujący relacje między pojęciami, a rzadziej atrybuty, jak już się pojawiją to są istotne biznesowo).
- Rozkładasz przypadki użycia na kroki. Tu powinno się powoli pojawiać pomysły na rozdzielenie odpowiedzialności, a więc zalążki komponentów.
- Tworzysz diagramy sekwencji, żeby zobaczyć, jak to spina się „na papierze”. Często się nie spina -> korekty komponentów i odpowiedzialności. Niektóre z tych komponentów mogą leżeć poza granicami (będziesz interfejsował z czymś, wystawiasz intefejsy logiczne)
- Dopiero później przechodzisz do diagramu komponentów i interfejsów.
- Kontrakaty dla interfejsów / technologia -> implementacja.
Moim zdaniem Twój diagram komponentów wnosi więcej szkody niż pożytku. Dla programisty raczej istotne byłyby zrozumienie tych aspektów nad którymi ma pracować, np. jeśli masz taki uproszczony diagram sekwencji dla hipotycznego skłądania zlecenie kupna instrumentu finansowego 
To dla programisty będzie za mało, żeby coś sensownego wyprodukować, ale taki diagram ma wartość dla dalszej pracy i jest bazą do ustalenia kontraktów interfejsów oraz wyborze technologii i sposobu integracji pomiędzy tymi komponentami (zauważ, że do realizacji przypadku użycia, nie ma znaczenia czy wowłania będa synchroniczne/asynchroniczne, czy w ramach procesu, czy rozproszone, czy repozytorium o będzie baza danych RDBMS, czy bucket S3 itd.). W późniejszym etapie może dokumentować, to jak wygląda składanie zamówienia.
Po co tworzysz te swoje diagramy? Co i komu mają ułatwiać?