Postoji tri vrste komponenata i to:
Komponente izvornog koda sadrže izvorni kod programa, koji je pisan u nekom programskom jeziku i predstavlja implementaciju klasa, metoda i uslužnih programa. Bitne su prilikom kompajliranja programa.
Npr. ukoliko se softver razvija u Javi, kod se čuva u formi .java fajlova. Ako se softver razvija u C++ okruženju, projekat će biti sačuvan u obliku .h i .cpp fajlova, a ekstenzija C# programa obično je .cs. Kako aplikacija raste, bez obzira na to koji se programski jezik koristi, biće neophodno da se ovakvi i slični fajlovi organizuju u obliku odgovarajućih grupa.
Izvorne komponente koriste sledeće stereotipe:
Komponente izvornog koda su produkt razvojnog procesa, a sastoje se od datoteka izvornog koda i datoteka podataka iz kojih su razvojne komponente kreirane. Ove komponente ne učestvuju direkno u izvršnom sistemu, ali su produkt razvojnog rada koji je korišćen za kreiranje izvršnog sistema.
Binarne komponente su prevedene komponente izvornog koda. Značajne su prilikom povezivanja programa, tj. izrade izvršnog programa. Ove komponente su razvojne komponente koje su neophodne za formiranje izvršnog sistema, kao što su dinamičke biblioteke (DLL) i aplikacije (EXE). Postoji dva tipa binarnih komponenata:
Izvršne komponente nastaju kao rezultat povezivanja binarnih komponenata i značajne su u fazi izvršenja programa, na primer COM objekti.
Izvršne komponente se definišu sledećim stereotipovima:
Prilikom modelovanja izvršnih verzija programa treba odraditi sledeće operacije:
Način prikaza izvršnog programa je ilustrovan na slici:
Dijagram komponentni je skup komponenti i njihovih relacija. Ovaj tip dijagrama obično sadrži komponente, interfejse i relacije. Postoji mogućnost da dijagram komponenti sadrži i pakete i podsisteme kao i neke druge elemente. Ovaj tip dijagrama se sreće u sledećim slučajevima:
Prilikom modelovanja koda programa treba identifikovati skup fajlova koji je važan za naš sistem i koji treba biti modelovan u okviru stereotipa za fajlove. Za grupisanje srodnih fajlova mogu se koristiti paketi.
Ako je u pitanju modelovanje jednostavnih aplikacija, tada nisu neophodni dijagrami komponenata, jer ne postoji ništa toliko komplikovano što bi trebalo vizuelizovati, specificirati, konstruisati ili dokumentovati.
Za modelovanje složenih aplikacija, kao npr. distribuiranih sistema, koriste se kombinacije dijagrama komponenata, dijagrama objekata i interakcije, tj. zahteva se veliki broj izvršnih celina koje putuju kroz pojedine čvorove i gde su neke od komponenata jedinstvene za pojedine aplikacije, dok su druge komponente zajedničke.
Modelovanje aplikacija i biblioteka koje čine fizičku implementaciju sistema je korisno, ali često postoji mnoštvo pomoćnih radnih komponenata koje nisu ni aplikacije, ni biblioteke koje su kritične za fizički rad sistema. Na primer: implementacija može da sadrži datoteke podataka, help fajlove, log fajlove, ini fajlove i instalacione fajlove. Modelovanje ovih komponenata je važan deo pri kontroli konfiguracije sistema.
Primer modela izvornog koda prikazan je na slici:
Modelovanje baza podataka - Najveći problem koji postoji kod OO baza podataka u odnosu na relacione je opredeljivanje za jednu od mogućih strategija formiranja baza podataka (pojedinačnih tabela) u slučaju nasleđivanja. Postoje tri osnovne strategije u ovom slučaju:
Treba imati na umu da se kod baza podataka pojavljuju dve vrste operacija: proste operacije (upiti, upisi i čitanja) ali i složenija proceduralna pravila. Na osnovu ovoga može se definisati jednostavna procedura za modelovanje fizičke strukture baze podataka:
Na slici je prikazan model fizičke baze podataka:
Primer dijagrama komponenata:
Sve komponenete koriste komponentu za pristup bazi podataka.