Komponent jest autonomiczną jednostką z dobrze zdefiniowanymi interfejsami, która jest „wymienialna” w swym otoczeniu.
Celem użycia komponentów jest osiągnięcie reużywalności.
Komponenty mogą być logicznie (specyfikacja np. procesu biznesowego) lub fizyczne (EJB, Corba, COM, .Net). Dla konkretnych technologii komponentowych mogą być tworzone specyficzne profile języka UML.
Komponent może być traktowany jako specyficzna klasa.
Komponent wyraża swe zachowanie przy pomocy potrzebnych (ang. required) i dostarczanych (ang. provided) interfejsów.
Może być abstrakcją dla realizujących go klasyfikatorów.
Posiadanie instancji może być jawnie dozwolone lub nie.
Komponent może bezpośrednio implementować dostarczane interfejsy lub mogą to robić jego klasyfikatory.