UML hjælper med at forenkle repræsentationen af et programs interne logik.
"Unified Modeling Language" eller UML er et sprog designet til at vise, hvordan software er organiseret; ingeniører kan bruge UML til at diagramme informationsstrømmen i et program, hvilket giver dem mulighed for bedre at forstå, hvordan det kan forenkles eller ændres. Ved modellering af informationsflow skelner UML mellem "aktive objekter", der kan initiere det flow, og "passive objekter", der ikke kan.
Objekter og klasser
Når det kommer til såkaldt "objektorienteret" programmering, skelner datalogien mellem et "objekt" og en "klasse". En klasse er en generaliseret beskrivelse af et sæt ting – såsom variabler eller metoder – hvorimod et "objekt" er en "instans" af den klasse med sin egen unikke ejendomme. Tænk på klasser som en plan eller en skabelon; i den fysiske verden kan "skriveredskab" betragtes som en klasse, med eksempler på "pen" eller "orange farveblyant" på "objekter" af den pågældende klassetype.
Dagens video
Objekter i UML
UML bevarer en lignende skelnen mellem klasser og objekter, og de er repræsenteret på samme måde; UML-klasser indeholder brede beskrivelser, og UML-objekter indeholder specifikke værdier, der repræsenterer forekomster af disse beskrivelser. Formelt set er et "aktivt objekt" i UML derfor enhver forekomst af en "aktiv klasse" og på samme måde en "passiv objekt" er en forekomst af en "passiv klasse" - i teoretisk forstand kan du betragte disse termer som væsentlige udskiftelig.
Aktive objekter
I UML eksisterer aktive klasser, og derfor aktive objekter, i deres egen operationstråd og har deres eget adresseområde. Hvis eksekvering eller kodeaktivitet tænkes ud fra flow, kan aktive objekter starte eller kontrollere det flow. Aktive objekter er med andre ord sekventielle og gør noget: ændre variabler, ændre programadfærd og så videre. I UML er aktive klasser og objekter kendetegnet ved at have en tykkere kant end passive objekter.
Passive objekter
Passive objekter i UML har generelt ikke evnen til at ændre eller starte udførelsesstrømmen, fordi de skal vente på, at et andet objekt kalder dem. I stedet bruges passive objekter generelt til at gemme information, og i mange tilfælde kan denne information deles mellem flere andre objekter. Dette kan gøre det muligt at få adgang til passive objekter samtidigt, ikke sekventielt. For at sikre, at de indeholdte data har en høj integritet, tillader UML, at passive objekter insisterer på, at de tilgås sekventielt; hvis to tråde forsøger at kalde det samme sekventielle passive objekt, kan det objekt forsinke den anden tråd, indtil den første er færdig med den.