Technische Universiteit Delft
Faculteit Werktuigbouwkunde, Maritieme Techniek en Technische Materiaalwetenschappen
Transporttechnologie / Logistieke Techniek



J.D. Quak Generalisatie van Must-objecten. Uitwerking van een kassa-voorbeeld.
Computeropdracht, Rapport 96.3.LT.4683, Transporttechnologie, Logistieke Techniek.


Bij gebruik van Must voor simulaties worden in verschillende toepassingen vaak vergelijkbare objecten gebruikt. Dergelijke objecten lijken zich dan ook te lenen voor generalisatie. Wanneer deze standaardobjecten in units worden opgenomen kan dit dubbel werk besparen en bovendien zorgen voor een eenvoudige structuur van het hoofdprogramma. Object-georiënteerd programmeren is hierbij een goede methode: dit maakt het mogelijk in een toepassing te werken met afstammelingen van de gegeneraliseerde objecten, waarbij de afstammelingen dan precies kunnen worden aangepast aan de specifieke eisen van deze toepassing.

Uitwerking van een voorbeeld waarin een kassa en een meervoudig kassasysteem zijn gegeneraliseerd gaf het gewenste resultaat: deze blijken zich goed te lenen voor generalisatie; definities van deze objecten zijn in units opgenomen. Bij initiatie van deze objecten kunnen enkele parameters worden meegegeven, zoals bijvoorbeeld rijdisciplines en aantallen wachtrijen. De objecten zijn dan ook in diverse toepassingen inzetbaar. Bovendien leidt de generalisatie tot een relatief eenvoudige structuur van het hoofdprogramina. Wanneer ook een klant (waarvan een attribuut voor de kassa toegankelijk moest zijn) op hetzelfde niveau wordt gedefinieerd - d.w.z als een gegeneraliseerde klant binnen dezelfde unit als de gegeneraliseerde kassa - wordt het hoofdprogramma nog eenvoudiger. Het genoemde voorbeeld hoofdprogramma betreft de simulatie van een eenvoudig supermarktmodel: klanten worden aangemaakt door een generator en verdwijnen weer na behandeling door de juiste kassa.

Generalisatie kan dus leiden tot een breed inzetbaar object en een eenvoudig hoofdprogrimma. De eisen breed inzetbaar en eenvoudig hoofdprogramma zijn echter vaak strijdig. Een complicatie is namelijk dat een in een unit gedefinieerd object niet kan beschikken over attributen van een op een ander niveau (bijvoorbeeld het hoofdprogramma) gedefinieerd object. Door gebruik te maken van virtuele methoden kan dit opgelost worden. Dit maakt het hoofdprogramma complexer. Het probleem kan omzeild worden door ook het andere object in diezelfde unit te definiëren. Dit maakt een programma echter minder flexibel: het geeft slechts een oplossing voor een specifieke toepassing.


Rapporten studenten Logistieke Techniek
Gewijzigd: 1997.11.17; logistics@3mE.tudelft.nl , TU Delft / 3mE / TT / LT.