![...](/f/e393974c49f521c2f94ba159940f2ab4.jpg)
UML pomaže pojednostavniti prikaz interne logike programa.
"Jedinstveni jezik modeliranja" ili UML je jezik dizajniran da pokaže kako je softver organiziran; inženjeri mogu koristiti UML za dijagram tijeka informacija u programu, omogućujući im da bolje razumiju kako se on može pojednostaviti ili promijeniti. Kada modelira tijek informacija, UML razlikuje između "aktivnih objekata" koji mogu pokrenuti taj tijek i "pasivnih objekata" koji ne mogu.
Objekti i klase
Kada je riječ o takozvanom "objektno orijentiranom" programiranju, informatika pravi razliku između "objekta" i "klase". Razred je a generalizirani opis skupa stvari - kao što su varijable ili metode - dok je "objekt" "instanca" te klase, sa svojim vlastitim jedinstvenim Svojstva. Razmišljajte o nastavi kao o nacrtu ili predlošku; u fizičkom svijetu, "oprema za pisanje" može se smatrati klasom, s "olovkom" ili "narančastom bojicom" primjerima "objekata" tog određenog tipa klase.
Video dana
Objekti u UML-u
UML čuva sličnu razliku između klasa i objekata, a oni su predstavljeni na isti način; UML klase sadrže široke opise, a UML objekti sadrže specifične vrijednosti koje predstavljaju instance tih opisa. Formalno gledano, dakle, "aktivni objekt" u UML-u je svaka instanca "aktivne klase" i slično "pasivna objekt" je instanca "pasivne klase" - u teoretskom smislu, mogli biste smatrati da su ti pojmovi u biti zamjenjivi.
Aktivni objekti
U UML-u, aktivne klase, a time i aktivni objekti, postoje u vlastitoj niti operacija i imaju svoj vlastiti adresni prostor. Ako se izvršenje, ili aktivnost koda, razmišlja u terminima tijeka, aktivni objekti mogu pokrenuti ili kontrolirati taj tijek. Aktivni objekti, drugim riječima, su sekvencijalni i rade nešto: mijenjaju varijable, mijenjaju ponašanje programa i tako dalje. U UML-u se aktivne klase i objekti razlikuju po debljem rubu od pasivnih objekata.
Pasivni objekti
Pasivni objekti u UML-u općenito nemaju mogućnost modificiranja ili pokretanja tijeka izvršenja, jer moraju čekati da ih drugi objekt pozove. Umjesto toga, pasivni objekti općenito se koriste za pohranu informacija, a u mnogim slučajevima te se informacije mogu dijeliti između više drugih objekata. To može omogućiti pristup pasivnim objektima istovremeno, a ne sekvencijalno. Kako bi se osiguralo da podaci sadržani unutar imaju visok integritet, UML dopušta pasivnim objektima da inzistiraju da im se pristupa uzastopno; ako dvije niti pokušaju pozvati isti sekvencijalni pasivni objekt, taj objekt može odgoditi drugu nit dok prva ne završi s njom.