input metauml; iInstance.frameArc := 6; iInstance.underlineObjectname := 0; beginfig(1); Instance.pers_eins("svenja") (); Instance.pers_zwei("frederike") (); Instance.thema_eins("warShoppen") (); Instance.thema_zwei("martinSuess") (); Instance.thema_drei("musik") (); Instance.system_eins("svenjasNotebook") (); Instance.system_zwei("frederikesDesktopRechner") (); Instance.client_eins("miranda") (); Instance.client_zwei("gaim") (); Instance.server_icq("icqServer") ("ip=64.12.25.4"); %topToBottom.midx(30)(thema_eins, thema_zwei, thema_drei); %topToBottom.midx(30)(client_eins, server_icq, client_zwei); %leftToRight.midy(30)(thema_eins, client_eins); %leftToRight.midy(30)(pers_eins, system_eins, client_eins); %leftToRight.midy(30)(pers_zwei, system_zwei, client_zwei); %topToBottom.midx(30)(system_eins, system_zwei); same.midy(pers_eins, system_eins, client_eins); same.midy(pers_zwei, system_zwei, client_zwei); same.midx(pers_eins, pers_zwei); same.midx(system_eins, system_zwei); same.midx(client_eins, client_zwei); pers_eins.s = pers_zwei.n + (0, 40); pers_eins.e = system_eins.w + (-50, 0); system_eins.e = client_eins.w + (-50, 0); server_icq.c = (client_eins.right + 70, client_zwei.top + (client_eins.bottom - client_zwei.top)/2); same.midx(thema_eins, thema_zwei);%, thema_drei); %same.midy(thema_zwei, server_icq); same.midy(thema_zwei, pers_zwei); same.midy(thema_eins, pers_eins); %thema_eins.s = above(thema_zwei.n, 30); thema_drei.n = below(thema_zwei.s, 30); thema_zwei.right = pers_eins.left -50; drawObjects(pers_eins, pers_zwei, system_eins, system_zwei, client_eins, client_zwei); drawObjects(server_icq); drawObjects(thema_eins, thema_zwei);%, thema_drei); link(associationUni)(pers_eins.w -- thema_eins.e); item(iAssoc)("sendet")(obj.sw = .6[pers_eins.w, thema_eins.e] + (0,3)); link(associationUni)(pers_zwei.w -- thema_zwei.e); item(iAssoc)("sendet")(obj.nw = .6[pers_zwei.w, thema_zwei.e] + (0, -3)); %clink(associationUni)(pers_eins, thema_drei); link(associationUni)(pers_zwei.nw -- thema_eins.se); %item(iAssoc)("empfaengt")(obj.ne = .075[pers_zwei.nw, thema_eins.se] + (0, 0)); item(iAssoc)("empfaengt")(obj.w = .5[pers_zwei.c, thema_eins.c] + (8, 0)); link(associationUni)(pers_eins.sw -- thema_zwei.ne); %item(iAssoc)("empfaengt")(obj.se = .075[pers_eins.sw, thema_zwei.ne] + (0, -3)); %clink(associationUni)(pers_zwei, thema_drei); clink(association)(pers_eins, pers_zwei); link(associationUni)(pers_eins.e -- system_eins.w); item(iAssoc)("nutzt")(obj.s = .5[pers_eins.e, system_eins.w] + (0,3)); link(associationUni)(pers_zwei.e -- system_zwei.w); item(iAssoc)("nutzt")(obj.n = .5[pers_zwei.e, system_zwei.w] + (0,-3)); link(associationUni)(system_eins.e -- client_eins.w); item(iAssoc)("fuehrt aus")(obj.s = .5[system_eins.e, client_eins.w] + (0,3)); link(associationUni)(system_zwei.e -- client_zwei.w); item(iAssoc)("fuehrt aus")(obj.n = .5[system_zwei.e, client_zwei.w] + (0,-3)); link(associationUni)(client_eins.e -- server_icq.w); item(iAssoc)("kommuniziert mit")(obj.sw = .3[client_eins.e, server_icq.w]); link(associationUni)(client_zwei.e -- server_icq.w); item(iAssoc)("kommuniziert mit")(obj.nw = .3[client_zwei.e, server_icq.w]); endfig; beginfig(2); Class.Person("Person") ("name") ("+unterhalten()"); Class.Nachricht("Nachricht")()(); Class.InfoSys("Informatiksystem") ("ipAdresse") ("+programmStarten()", "+netzverbindungHerstellen()"); Class.ChatClient("ChatClientSoftware") ("unterstuetzeProtokolle", "geoeffnetePorts") ("+verbindungAufbauen()", "+nachrichtSenden()", "+nachrichtEmpfangen", "+verbindungAbbauen()", "+statuswechselSenden()"); Class.ChatServer("ChatServer") ("name", "ipAdresse", "serverPort") ("+anmeldungEntgegennehmen()", "+abmeldungEntgegennehmen()", "+statuswechselEntgegennehmen()", "+nachrichtWeiterleiten()"); same.midx(Person, InfoSys); same.midx(Nachricht, ChatClient, ChatServer); same.midy(Person, Nachricht); same.midy(InfoSys, ChatClient); InfoSys.c = ChatClient.c + (-240, 0); InfoSys.c = Person.c + (0, -130); ChatClient.c = ChatServer.c + (0, 170); drawObjects(Person, InfoSys, Nachricht, ChatClient, ChatServer); link(associationUni)(Person.e -- Nachricht.w); item(iAssoc)("sendet" infont "tyxtt")(obj.s = .5[Person.e, Nachricht.w] + (0, 4)); item(iAssoc)("empfaengt" infont "tyxtt")(obj.n = .5[Person.e, Nachricht.w] + (0, -4)); item(iAssoc)("0..*" infont "tyxtt")(obj.sw = Person.e + (2,4)); item(iAssoc)("0..*" infont "tyxtt")(obj.se = Nachricht.w + (-2,4)); link(associationUni)(Person.s -- InfoSys.n); item(iAssoc)("nutzt" infont "tyxtt")(obj.w = .5[Person.s, InfoSys.n] + (4, 0)); item(iAssoc)("0..*" infont "tyxtt")(obj.nw = Person.s + (4,-2)); item(iAssoc)("0..*" infont "tyxtt")(obj.sw = InfoSys.n + (4,2)); link(associationUni)(InfoSys.e -- ChatClient.w); item(iAssoc)("fuehrt aus" infont "tyxtt")(obj.s = .45[InfoSys.e, ChatClient.w] + (0, 4)); item(iAssoc)("1" infont "tyxtt")(obj.sw = InfoSys.e + (2,4)); item(iAssoc)("0..*" infont "tyxtt")(obj.se = ChatClient.w + (-2,4)); link(associationUni)(InfoSys.s -- ChatServer.w); item(iAssoc)("fuehrt aus" infont "tyxtt")(obj.s = .5[InfoSys.s, ChatServer.w] + (-40, 0)); item(iAssoc)("1" infont "tyxtt")(obj.ne = InfoSys.s + (-4,-2)); item(iAssoc)("0..*" infont "tyxtt")(obj.ne = ChatServer.w + (-4,-2)); link(associationUni)(ChatClient.n -- Nachricht.s); item(iAssoc)("sendet" infont "tyxtt")(obj.w = .5[ChatClient.n, Nachricht.s] + (4, 0)); item(iAssoc)("1" infont "tyxtt")(obj.sw = ChatClient.n + (4, 2)); item(iAssoc)("0..*" infont "tyxtt")(obj.nw = Nachricht.s + (4, -2)); link(association)(ChatClient.s -- ChatServer.n); item(iAssoc)("kommuniziert" infont "tyxtt")(obj.w = .5[ChatClient.s, ChatServer.n] + (4, 0)); item(iAssoc)("0..*" infont "tyxtt")(obj.nw = ChatClient.s + (4,-2)); item(iAssoc)("0..*" infont "tyxtt")(obj.sw = ChatServer.n + (4,2)); endfig; end