UML hjelper til med å forenkle representasjonen av den interne logikken til et program.
"Unified Modeling Language", eller UML, er et språk utviklet for å vise hvordan programvare er organisert; ingeniører kan bruke UML til å diagramme informasjonsflyten i et program, slik at de bedre kan forstå hvordan den kan forenkles eller endres. Ved modellering av informasjonsflyt, skiller UML mellom "aktive objekter" som kan initiere den flyten, og "passive objekter" som ikke kan.
Objekter og klasser
Når det kommer til såkalt «objektorientert» programmering, skiller informatikk mellom et «objekt» og en «klasse». En klasse er en generalisert beskrivelse av et sett med ting - for eksempel variabler eller metoder - mens et "objekt" er en "forekomst" av den klassen, med sin egen unike egenskaper. Tenk på klasser som en blåkopi eller en mal; i den fysiske verden kan "skriveredskap" betraktes som en klasse, med "penn" eller "oransje fargestift" eksempler på "objekter" av den spesielle klassetypen.
Dagens video
Objekter i UML
UML bevarer et lignende skille mellom klasser og objekter, og de er representert på samme måte; UML-klasser inneholder brede beskrivelser, og UML-objekter inneholder spesifikke verdier som representerer forekomster av disse beskrivelsene. Formelt sett er derfor et "aktivt objekt" i UML enhver forekomst av en "aktiv klasse", og på samme måte en "passiv objekt" er en forekomst av en "passiv klasse" - i teoretisk forstand kan du betrakte disse begrepene som i hovedsak utskiftbare.
Aktive objekter
I UML eksisterer aktive klasser, og derfor aktive objekter, i sin egen operasjonstråd og har sitt eget adresseområde. Hvis utførelse, eller kodeaktivitet, er tenkt ut fra flyt, kan aktive objekter starte eller kontrollere flyten. Aktive objekter er med andre ord sekvensielle og gjør noe: endre variabler, endre programatferd og så videre. I UML kjennetegnes aktive klasser og objekter ved å ha en tykkere kant enn passive objekter.
Passive objekter
Passive objekter i UML har vanligvis ikke muligheten til å modifisere eller starte utførelsesflyten, fordi de må vente på at et annet objekt skal kalle dem. I stedet brukes passive objekter vanligvis til å lagre informasjon, og i mange tilfeller kan denne informasjonen deles mellom flere andre objekter. Dette kan tillate tilgang til passive objekter samtidig, ikke sekvensielt. For å sikre at dataene inne i har høy integritet, tillater UML at passive objekter insisterer på at de skal åpnes sekvensielt; hvis to tråder forsøker å kalle det samme sekvensielle passive objektet, kan det objektet forsinke den andre tråden til den første er ferdig med det.