Diagram komponentów (component diagram) to diagram UML pokazujący logiczną budowę systemu: komponenty oprogramowania i interfejsy, którymi się komunikują - dostarczane (provided, „lizak") i wymagane (required, „gniazdko").
Analityk rzadko rysuje go od zera, ale czyta regularnie: przy analizie integracji, ocenie wpływu zmiany („który komponent trzeba ruszyć?") i rozmowach z architektem. Znajomość tej notacji pozwala uczestniczyć w dyskusjach technicznych zamiast kiwać głową i liczyć, że nikt nie zapyta o zdanie.
W MediFlow diagram komponentów pokazał system rejestracji jako pięć klocków: portal pacjenta, moduł grafików, silnik powiadomień, bramkę płatności i adapter HIS. Kiedy padło pytanie „czy możemy wymienić dostawcę SMS-ów bez ruszania reszty?", odpowiedź była na rysunku - silnik powiadomień ma jeden interfejs do bramki, więc wymiana to praca w jednym komponencie. Wycena spadła z „nie wiemy, trzeba zbadać" do dwóch dni roboczych.
Częsta pomyłka: mylenie diagramu komponentów z diagramem wdrożenia. Komponenty to logiczna struktura oprogramowania (jakie moduły istnieją i jak się łączą); wdrożenie to fizyczne rozmieszczenie (na jakich serwerach to działa). Portal pacjenta jako komponent jest jeden - fizycznie może stać na trzech maszynach za load balancerem. Drugi błąd: rysowanie komponentów na poziomie pojedynczych klas. To widok architektoniczny, nie kod.