input metauml; iInstance.frameArc := 6; iInstance.underlineObjectname := 0; beginfig(1); Class.Kino("Kino") ("name: string") (); Class.Kasse("Kasse") ("offen: boolean") ("+verkaufeKarte(anzahl: int): boolean", "+nimmKarte(anzahl: int): boolean", "+oeffne(): void", "+schliesse(): void"); Class.Saal("Saal") ("name: string", "plaetze: int") ("+aktuallisiereTafel(): void", "+macheVorstellung(): vorstellung"); Class.ATafel("ATafel") ("farbe: farbe", "freiePlaetze: int", "vorstellung: vorstellung") ("+aktuallisiere(): void"); Class.Vorstellung("Vorstellung") ("name : string", "uhrzeit: zeit", "freiePlaetze: int") ("+vergebePlaetze(anzahl: int): boolean", "+freigebenPlaetze(anzahl: int): boolean", "+gibAnzahlFreiePlaetze(): int", "+gibUhrzeit(): zeit", "+gibName(): string"); topToBottom.midx(60)(Kasse, Kino, ATafel); topToBottom.midx(60)(Vorstellung, Saal); leftToRight.midy(90)(Kasse, Vorstellung); drawObjects(Kino, Kasse, Saal, ATafel, Vorstellung); link(associationUni)(Kasse.e -- Vorstellung.w); item(iAssoc)("1" infont "tyxtt")(obj.sw = Kasse.e + (2,3)); item(iAssoc)("n" infont "tyxtt")(obj.se = Vorstellung.w + (-2,3)); link(associationUni)(Kasse.se -- Saal.nw); item(iAssoc)("1" infont "tyxtt")(obj.sw = Kasse.se + (2,1)); item(iAssoc)("n" infont "tyxtt")(obj.sw = Saal.nw + (1,1)); link(aggregation)(Kasse.s -- Kino.n); item(iAssoc)("n" infont "tyxtt")(obj.nw = Kasse.s + (2,-2)); item(iAssoc)("1" infont "tyxtt")(obj.sw = Kino.n + (5,2)); link(aggregation)(Saal.w -- Kino.e); item(iAssoc)("n" infont "tyxtt")(obj.se = Saal.w + (-2,5)); item(iAssoc)("1" infont "tyxtt")(obj.sw = Kino.e + (2,5)); link(aggregation)(Vorstellung.s -- Saal.n); item(iAssoc)("n" infont "tyxtt")(obj.nw = Vorstellung.s + (2,-2)); item(iAssoc)("1" infont "tyxtt")(obj.sw = Saal.n + (5,2)); link(aggregation)(ATafel.e -- Saal.sw); item(iAssoc)("1" infont "tyxtt")(obj.sw = ATafel.e + (2,4)); item(iAssoc)("1" infont "tyxtt")(obj.se = Saal.sw + (-5,2)); endfig; beginfig(2); Instance.unserKino("unserKino: Kino") ("name=''Schulkino''"); Instance.fritz("fritz: Mensch") ("name=''Fritz Walter''", "status=''SCHLAEFT''"); Instance.kasse_eins("kasse1: Kasse") ("offen=''TRUE''"); Instance.atafel_vier("atafel4: ATafel") ("farbe=", "freiePlaetze=", "vorstellung="); Instance.atafel_sechs("atafel6: ATafel") ("farbe=", "freiePlaetze=", "vorstellung="); Instance.saal_vier("saal4: Saal") ("name=''Saal4''", "plaetze=''334''"); Instance.saal_sechs("saal6: Saal") ("name=''Saal6''", "plaetze=''128''"); Instance.karibik("karibik: Vorstellung") ("name=''Fluch der Karibik 3''", "uhrzeit=''19:30''", "freiePlaetze:="); Instance.bean("bean: Vorstellung") ("name=''Mr. Bean macht Ferien''", "uhrzeit=''19:45''", "freiePlaetze="); topToBottom.midx(30)(karibik, saal_vier, atafel_vier); topToBottom.midx(30)(bean, saal_sechs, atafel_sechs); leftToRight.midy(30)(karibik, kasse_eins, bean); unserKino.c = (saal_vier.right + (saal_sechs.left -saal_vier.right)/2,(saal_vier.top + (atafel_vier.bottom - saal_vier.top)/2)); drawObjects(karibik, saal_vier, atafel_vier, bean, saal_sechs, atafel_sechs, kasse_eins, unserKino); clink(aggregation)(kasse_eins, unserKino); clink(aggregation)(saal_vier, unserKino); clink(aggregation)(saal_sechs, unserKino); clink(associationUni)(kasse_eins, bean); clink(associationUni)(kasse_eins, karibik); clink(associationUni)(kasse_eins, saal_vier); clink(associationUni)(kasse_eins, saal_sechs); clink(aggregation)(karibik, saal_vier); clink(aggregation)(atafel_vier, saal_vier); clink(aggregation)(bean, saal_sechs); clink(aggregation)(atafel_sechs, saal_sechs); endfig; end