UML aitab lihtsustada programmi sisemise loogika esitamist.
"Unified Modeling Language" ehk UML on keel, mis on loodud näitama, kuidas tarkvara on organiseeritud; insenerid saavad kasutada UML-i programmis teabevoo diagrammimiseks, võimaldades neil paremini mõista, kuidas seda lihtsustada või muuta. Teabevoo modelleerimisel eristab UML "aktiivseid objekte", mis võivad seda voogu algatada, ja "passiivseid objekte", mis seda ei saa.
Objektid ja klassid
Kui rääkida niinimetatud "objektorienteeritud" programmeerimisest, eristab arvutiteadus "objekti" ja "klassi". Klass on a asjade kogumi (nt muutujad või meetodid) üldistatud kirjeldus, samas kui "objekt" on selle klassi "eksemplar", millel on oma kordumatu omadused. Mõelge klassidele kui plaanile või mallile; Füüsilises maailmas võib "kirjutusvahendit" pidada klassiks koos "pliiatsi" või "oranži värvipliiatsiga" selle konkreetse klassitüübi "objektide" näidetega.
Päeva video
Objektid UML-is
UML säilitab sarnase eristuse klasside ja objektide vahel ning neid esitatakse samal viisil; UML-klassid sisaldavad laiaulatuslikke kirjeldusi ja UML-objektid sisaldavad konkreetseid väärtusi, mis esindavad nende kirjelduste eksemplare. Seega on formaalselt võttes UML-is "aktiivne objekt" mis tahes "aktiivse klassi" eksemplar ja samamoodi "passiivne objekt". objekt" on "passiivse klassi" eksemplar – teoreetilises mõttes võiksite neid termineid pidada sisuliselt vahetatavad.
Aktiivsed objektid
UML-is eksisteerivad aktiivsed klassid ja seega ka aktiivsed objektid oma operatsioonilõimes ja neil on oma aadressiruum. Kui täitmist või kooditegevust mõeldakse vooluna, saavad aktiivsed objektid seda voogu käivitada või juhtida. Teisisõnu, aktiivsed objektid on järjestikused ja teevad midagi: muudavad muutujaid, muudavad programmi käitumist jne. UML-is eristatakse aktiivseid klasse ja objekte selle poolest, et neil on paksem ääris kui passiivsetel objektidel.
Passiivsed objektid
Passiivsed objektid UML-is ei saa üldjuhul muuta või käivitada täitmisvoogu, sest nad peavad ootama, kuni mõni teine objekt neile helistab. Selle asemel kasutatakse teabe salvestamiseks üldiselt passiivseid objekte ja paljudel juhtudel võib seda teavet jagada mitme teise objekti vahel. See võib võimaldada passiivsetele objektidele juurdepääsu samaaegselt, mitte järjestikku. Sees sisalduvate andmete kõrge terviklikkuse tagamiseks võimaldab UML passiivsetel objektidel nõuda neile järjestikust juurdepääsu; kui kaks lõime üritavad kutsuda sama järjestikust passiivset objekti, võib see objekt viivitada teise lõimega, kuni esimene on sellega lõpetanud.