UML helpt de weergave van de interne logica van een programma te vereenvoudigen.
De "Unified Modeling Language", of UML, is een taal die is ontworpen om te laten zien hoe software is georganiseerd; ingenieurs kunnen UML gebruiken om de informatiestroom in een programma in kaart te brengen, zodat ze beter begrijpen hoe het kan worden vereenvoudigd of gewijzigd. Bij het modelleren van de informatiestroom maakt UML onderscheid tussen "actieve objecten" die die stroom kunnen initiëren en "passieve objecten" die dat niet kunnen.
Objecten en klassen
Als het gaat om zogenaamd 'objectgeoriënteerd' programmeren, maakt informatica onderscheid tussen een 'object' en een 'klasse'. Een klas is een gegeneraliseerde beschrijving van een reeks dingen, zoals variabelen of methoden, terwijl een "object" een "instantie" van die klasse is, met zijn eigen unieke eigenschappen. Zie lessen als een blauwdruk of een sjabloon; in de fysieke wereld kan "schrijfgerei" als een klasse worden beschouwd, met "pen" of "oranje krijt" voorbeelden van "objecten" van dat specifieke klassetype.
Video van de dag
Objecten in UML
UML behoudt een soortgelijk onderscheid tussen klassen en objecten, en ze worden op dezelfde manier weergegeven; UML-klassen bevatten brede beschrijvingen en UML-objecten bevatten specifieke waarden die instanties van die beschrijvingen vertegenwoordigen. Formeel gesproken is daarom een "actief object" in UML elke instantie van een "actieve klasse", en evenzo een "passieve object" is een instantie van een "passieve klasse" - in theoretische zin zou je deze termen als in wezen kunnen beschouwen: uitwisselbaar.
Actieve objecten
In UML bestaan actieve klassen, en dus actieve objecten, in hun eigen reeks bewerkingen en hebben ze hun eigen adresruimte. Als uitvoering, of code-activiteit, wordt gezien in termen van stroom, kunnen actieve objecten die stroom starten of besturen. Actieve objecten zijn met andere woorden sequentieel en doen iets: variabelen wijzigen, programmagedrag veranderen, enzovoort. In UML worden actieve klassen en objecten onderscheiden door een dikkere rand dan passieve objecten.
Passieve objecten
Passieve objecten in UML hebben over het algemeen niet de mogelijkheid om de uitvoeringsstroom te wijzigen of te starten, omdat ze moeten wachten tot een ander object ze aanroept. In plaats daarvan worden passieve objecten over het algemeen gebruikt om informatie op te slaan, en in veel gevallen kan deze informatie worden gedeeld tussen meerdere andere objecten. Hierdoor kunnen passieve objecten gelijktijdig worden benaderd, niet opeenvolgend. Om ervoor te zorgen dat de gegevens binnenin een hoge integriteit hebben, staat UML toe dat passieve objecten erop aandringen dat ze sequentieel worden benaderd; als twee threads hetzelfde opeenvolgende passieve object proberen aan te roepen, kan dat object de tweede thread vertragen totdat de eerste ermee klaar is.