Ein Ansatz zur Visualisierung von Desmo-J Simulationen

Größe: px
Ab Seite anzeigen:

Download "Ein Ansatz zur Visualisierung von Desmo-J Simulationen"

Transkript

1 Ein Ansatz zur Visualisierung von Desmo-J Simulationen Christian Müller ( im Februar 2011 Ein Ansatz zur Visualisierung von Desmo-J Simulationen 1 of 39

2 Inhaltsverzeichnis Einleitung...2 Visualization2d Engine...5 Konzeption...5 Typen von Animationsobjekten...6 Animationsanweisungen...9 Lesen und Visualisieren von Animationsanweisungen...25 Schreiben von Animationsanweisungen...26 Abläufe beim Erstellen von Animationsanweisungen...27 Visualization2d Animation...28 Konzeption...28 Beispiel...32 Literatur...39 Einleitung Desmo-J [Page] ist ein Java Framework für diskrete eventgesteuerte Simulationen. Es unterstützt eine Event- und Prozess- orientierte Sicht. Die erste Version wurde 1999 publiziert.und die aktuelle Version [Desmo-J] erschien im Juni Sie steht unter der Apache Lizenz Version 2.0 [Apache Lizenz 2.0] als Open Source Projekt zur Verfügung. Desmo-J bietet Möglichkeiten die Abläufe in den Simulationen statistisch auszuwerten und die Ergebnisse in Form von Reports zu präsentieren. Es bietet allerdings keine Möglichkeiten die Simulationsabläufe grafisch zu animieren. Mit dieser Arbeit wird ein Vorschlag präsentiert um diese Lücke zu schließen. Dieses System steht unter dem Arbeitsnamen [Desmo-J Animation] zur Verfügung. Eine Übersicht über kommerzielle und freie Simulationssysteme ist auf [OR/MS Today] und [Kennington] zusammengestellt. Eine Desmo-J Simulation setzt sich aus White- und Black-Box Komponenten zusammen. Die White-Box Komponenten umfassen insbesondere die Entitäten der Simulation mit ihren für die konktete Simulation charakteristischen Eigenschaften. Diese müssen als Java-Klassen implementiert werden. Im Gegensatz dazu umfassen die Black-Box-Komponenten die Werkzeuge, welche das Desmo-J Framework bereitstellt. Dazu gehören insbesondere Warteschlagen, Bedienstationen, Datenkollektoren, Zufallsverteilungen, Reportgeneratoren und vieles weitere mehr. Zu den White- Box-Komponenten gehört auch eine Modell-Klasse, in der alle benötigten Simulationskomponenten erzeugt und initialisiert werden. Zur Durchführung eines Simulationslaufes muss die Model-Klasse ausgeführt werden. Der in dieser Arbeit vorgeschlagene Weg zur Visualisierung von Desmo-J Simulationsabläufen lässt sich in 2 Schritte untergliedern. Im ersten Schritt wird während der Desmo-J Simulation zusätzlich eine Datei mit Animationsanweisungen (cmds-file) erstellt. In einem zweiten Schritt wird nach Bendigung der Desmo-J Simulation dir zuvor erstellte cmds-file mit den Animationsanweisungen von einer Animation-Viewer Anwendung gelesen und animiert. Hier kann der Ablauf der Animation unterbrochen, auf Detailinformationen zugegriffen und auch die Sicht auf die Animation geändert werden. Ein Ansatz zur Visualisierung von Desmo-J Simulationen 2 of 39

3 Ein Screenshoot der Animation-Viewer Anwendung ist in Abbildung 1 dargestellt. Abbildung 1: Der Weg zur Visualisierung von Desmo-J Simulationsabläufen ist in Zeichnung 1 skizziert. data.xml read Parameter write Results Simulation Model Zeichnung 1: cmds-file write read Amimation Viewer Für dieses Vorgehen wurde das Desmo-J Framework um eine 2d Visualisierungskomponente erweitert (Zeichnung 2). Dabei konnten die Kernfunktionalitäten für die Animation in einem eigenen Framework (Visualization2d Engine) gekapselt werden. Dies ist damit vollkommen unabhängig von dem eigentlichen Desmo-J Framework. Das Kernstück der Visualization2d Engine ist der Animation Viewer mit dem ein cmds-file eingelesen und eine Simulation animiert werden kann. Die Komponente "Visualization2d Animation" ist eine Erweiterung des Desmo-J Frameworks. Deren Klassen sind durch Vererbung an die Desmo-J Klassen gebunden. Mit ihnen wird Ein Ansatz zur Visualisierung von Desmo-J Simulationen 3 of 39

4 während des Simulationslaufes zusätzlich die "cmds-datei" erstellt, welche zur Animation benötigt wird. Simulation Model Data Visualization2d Animation Visualization2d Engine Desmo-J Zeichnung 2: Mit dem "Data" Framework werden die Parameter Daten aus der data.xml (Zeichnung 1) eingelesen. Dieses Framework stellt ebenfalls Möglichkeiten bereit um Simulationsergebnisse in die data.xml zu schreiben. Dieses Framework ist in [Müller, Steglich] und [Desmo-J Animation] im Abschnitt Datenkomponente beschrieben. In diesem Papier werden die Komponenten "Visualization2d Engine" und "Visualization2d Animation" sowie die Zusammehhänge zwischen ihnen beschrieben. Ein Ansatz zur Visualisierung von Desmo-J Simulationen 4 of 39

5 Visualization2d Engine Konzeption Mit dem Framework "Visualization Engine" können die Abläufe in einer diskreten eventgesteuerten Simulation animiert werden. Seine Konzeption ist unabhängig von einem konkreten Simulationssystem. Es ist in die Packages engine.viewer, engine.command, engine.model und engine.modelgrafic gegliedert. Das API ist in [API: Visualization Engine] beschrieben. In Zeichnung 3.ist der Vorgang des Einlesens und Visualisierens der Animationsanweisungen aus dem cmds-file schematisch dargestellt. Diese Betrachtung wird im Kapitel "Lesen und Visualisieren von Animationsanweisungen" vertieft. Der umgekehrte Vorgang des Erstellens einer solchen Datei wird im Kapitel "Schreiben von Animationsanweisungen" behandelt. engine.viewer ViewerPanel control create show ModelGrafic SimulationThread engine.command engine.model engine.modelgrafic CommandSequence Model (Swing Komponenten) - readinit() - readuntiltime(t) Hashtables read cmds-file create create ModelGrafic (Container) Zeichnung 3: Die Animation wird von der Klasse ViewerPanel aus dem Package engine.viewer gesteuert. Die Klassen ViewerFrame bzw. ViewerApplet binden den ViewerPanel ein. Somit kann der Viewer sowohl als Swing Applikation, als auch als Applet genutzt werden. Über einen Thread (SimulationThread) wird die Geschwindigkeit der Animation gesteuert. Mit der Klasse CommandSequence aus dem Package engine.command werden die Animationsanweisungen in cronologischer Folge aus dem cmds-file eingelesen. Jede Animation hat einen Start-Zeitpunkt. Alle Anweisungen die zur Vorbereitung der Animation (vor oder im Start-Zeitpunkt) ausgeführt werden müssen gehören zur Init-Phase. Alle späteren Anweisungen zur Run-Phase. Mit der Methode readinit() werden alle Anweisungen der Init- Phase, und mit readuntiltime(t) alle Anweisungen der Run-Phase bis einschießlich einer vorgegebenen Simulationszeit t, eingelesen. Dieser Vorgang wird vom ViewerPanel über den SimulationThread gesteuert. Mit jeder Animationsanweisunge wird entweder ein Animationsobjekt erstellt oder eine seiner Ein Ansatz zur Visualisierung von Desmo-J Simulationen 5 of 39

6 Eigenschaften geändert. Ein solches Objekt kann z.b. Eine Warteschlage sein. Das Hinzufügen oder Entfernen einer Entität ist dann als Änderung einer Eigenschaft zu interpretieren. Die Klasse Model im Package engine.model verwaltet alle Animationsobjecte in Hashtabellen. Beim Einlesen werden die Animationsobjecte erzeugt bzw. ihre Eigenschaften aktualisiert. Insbesondere sind jedem Animationsobject ein Animationsfenster (View) und eine Koordinate (bezogen auf ihren Mittelpunkt) in diesem Fenster sowie eine Größe zugewiesen. Die Koordinaten setzen sich folglich aus den Namen einer View (ViewId) sowie den x- und y- Koordinaten zusammen. Ein Screen Shoot einer Animation Viewer Anwendung mit einem View "main" ist in Abbildung 1 zu sehen. Die Klasse ModelGrafic im Package engine.modelgrafic ist ein Swing-Container. Sie erzeugt nach der Init-Phase aus denen in der Model-Klasse gespeicherten Animationsobjekten Swing- Komponenten und fügt sie in ihren Container ein. In der Run-Phase werden die Komponenten bei Änderungen aktualisiert. Somit läuft die Animation in dem ModelGrafic-Container ab. Er wird im ViewerPanel angezeigt. Für die Anzeige müssen die Koordinaten der Animationsobjecte in Bildschirmkoordinaten transformiert werden. Diese Transformation hängt insbesondere von dem für das Animationsfenster gewählten Zoomfaktor und Fenstermittelpunkt ab. Diese Werte können im ViewerPanel eingestellt werden. Typen von Animationsobjekten Folgende Arten von Animationsobjekten werden z.z. unterstützt: Entity List Entitäten sind die zentralen Objekte einer jeden Simulation. Sie können sowohl zubearbeitende Objekte als auch Resourcen darstellen. Eine Entity ist entweder frei oder fixiert. Freie Entities können in Listen, Prozessen, Routen, ect. angezeigt werden. Fixierte Entities sind an eine feste Position gebunden. Achtung: Jede Entity darf zu einem Zeitpunkt nur einmal angezeigt werden! Mit einer Liste kann z.b. Warteschlangen visualisiert werden. Die Listenelemente werden immer in der Reihenfolge ihrer Priorität angezeigt. Dabei werden die Entitäten mit den kleinsten Prioritätswerten zuerst angezeigt. Station und Route Eine Station ist Anfangs oder Endpunkt einer Route. Eine Route verbindet eine Source- mit einer Sink-Station. Ein Ansatz zur Visualisierung von Desmo-J Simulationen 6 of 39

7 Process Ein Process visualisiert eine Bearbeitungsstation, in der mehrere Entitäten (ProcEntity) von Resourcen (ResEntity) bearbeitet werden. Im Gegensatz zu ProcessNew kann dieses Processelement kann nur eine Bearbeitungsstation abbilden. Deshalb ist es veraltet. Künftig sollte ProcessNew verwendet werden. ProcessNew Bei einem nicht-abstrakten Prozess wird für mehrere Prozessstationen angezeigt, welche Resourcen welchen Processelementen zugeordnet sind. Die einzelnen Prozessstationen sind farblich abgesetzt. Zu einer Prozessstationen können mehrere Resourcen und mehrere Processelemente gehören. Rechts ist die Anzahl der belegten Prozessstationen angezeigt. Bei abstakten Prozessen wird davon ausgegangen, dass alle Resourcen gleichartig sind. In diesem Fall wird an Stelle der Resourcen-Entities die Anzahl der belegten von den insgesamt vorhandenen Resourcen angezeigt. Manchmal ist es sinnvoll keine Resourceinformationen zu betrachten. Somit werden hier nur die Processelemente angezeigt. Auch hier werden mehrere Prozessstationen unterschieden. Im Unterschied zu einer List werden hier keine Reihenfolgen (Prioritäten), aber mehrere Arbeitsstationen unterstützt. Resource Eine Resource-Station besteht aus einer Menge gleichartiger Resourcen, einer Prozessstation (auf der ProcEntitys mit einer vorgegebenen Anzahl von Resourcen bearbeitet werden) und einer Warteschlange (in der ProcessEntities warten, falls nicht genügend Resourcen vorhanden sind. Ein Ansatz zur Visualisierung von Desmo-J Simulationen 7 of 39

8 Stock und Bin Ein Lager (Stock) hat eine zulässige untere Kapazität (LWB) von 0 und eine obere Kapazität (UPB) Capacity. Zum Anfang sind InitialUnits enthalten. Konsumenten warten in einer Warteschlange bis sie die gewünschte Anzahl entnehmen können ohne die LWB zu unterschreiten. Produzenten warten in einer Warteschlange bis sie die gewünschte Anzahl einlagern können ohne die UPB zu überschreiten. WaitQueue Statistic Ein Bin ist ein Lager mit unbeschränkter Kapazität. Eine WaitQueue syncronisiert das Zusammenarbeit von Master und Slave Entities. Ein Master möchte mit einem Slave kooperieren und wartet in der Master-List. Ein Slave wartet auf einen Arbeitsauftrag in der Slave-List. Sobald der Master einen passenden Slave gefunden hat beginnen sie zu kooperieren. Dann werden sie aus ihren Wartelisten entfernt und in Kooperationsliste eingetragen. In den Statistic Elementen werden zu einzelnen Zeitpunkten Werte erfasst. Sie werden nach folgenden Kriterien unterschieden: TypeData: Beobachtung oder Zeitreihe (Bei einer Zeitreihe gibt es zu einem Zeitpunkt genau einen Wert. Bei einer Beobachtung können es auch mehrere sein. Aggregate: Hier werden die Werte aufsummiert (z.b. Zähler) TypeIndex: Als Index wird Entweder Minimum und Maximum, Mittelwert und Standardabweichung oder kein Index bestimmt. TypeAnimation: Hier wird zwischen Letzter Wert Zeit Wert Diagramm und Histogramm unterschieden. BackgroundElement Background Elemente werden im Hintergrund gezeichnet und dienen der optischen Strukturierung der Animation. Ihre Position und Größe wird entweder durch ihre Ecke linksoben und rechts-unten, oder durch den Mittelpunkt und eine feste Größenangabe beschrieben. Die Größe der ersten Form ändert sich, im Gegensatz zur zweiten Form, mit dem gewählten Zoomfaktor. Texte, auch mehrzeilige, können angezeigt werden. Ein Ansatz zur Visualisierung von Desmo-J Simulationen 8 of 39

9 Animationsanweisungen Die Animationsanweisungen aus dem cmds-file werden auch als Command beszeichnet. Jedes Command genügt der Syntax: Command:: {Parameter,} Parameter; Parameter:: ParameterName:ParameterWert Der ParameterWert ist entweder ein einzelner Wert oder eine Folge von Werten, die durch ein getrennt sind. ParameterWert:: wert 0 wert 1... wert n In jedem Command gibt es folgende Standardparameter: time: Init: cmd: remark: Zeitpunkt in Millisekunden zu dem das Command ausgeführt werden soll (Run- Phase) oder "init", dann wird das command in der Initialisierungsphase ausgeführt. True wenn Command zur Init-Phase gehört, sonst false. Name des auszuführenden Commands. List siehe unten. Kommentar zu dem Command. Zu jedem Command gibt es weitere Parameter und ein Quantifier für die zulässige Häufigkeit dieses Parameters. Bedeutung der Quantifier: 1 Parameter muss genau 1-mal auftreten. n Parameter muss genau n-mal auftreten.? optional, Parameter muss 0- oder 1-mal auftreten. + Parameter muss 1-mal oder beliebig häufig auftreten. * Parameter muss 0-mal oder beliebig häufig auftreten. n..m Parameter muss mindestens n-mal und darf höchstens m-mal auftreten. Dieses Command-Beispiel gibt dem Viewer einige Basisinformation über eine Animation. time: , init:true, cmd:createmodelbasisdata, ModelName:app_arztpraxis, ModelAuthor:Chr. Müller, ModelDate:erstellt am , ModelRemark:Simulation einer Arztpraxis mit Rezeption, remark:generated by model.app_arztpraxis.modelarztpraxis; Wird in einer Anweisung auf ein anderes Animationselement verwiesen, so müss diese zuvor erklärt worden sein. Beispiel: Mit der Anweisung createenity wird eine Entity erzeugt und dabei auf einen EntityTyp verwiesen, der seinerseits bestimmte Zustände zulässt, die in dem Icon mit unterschiedlichen Icons dargestellt werden. Somit empfiehlt sich für die Init-Phase folgend Reihenfolge: createmodelbasisdata, createsimtimebounds, createimage, createentitytyp, createstation, createroute, createlist In der Run-Phase sind die Anweisungen chronologisch zur Simulationszeit anzugeben. Ausserdem ist zu beachten, dass zu einem Zeitpunkt kann eine Entity nur einmal angezeigt werden. Dies lässt sich wie folgt begründen: Ein Ansatz zur Visualisierung von Desmo-J Simulationen 9 of 39

10 Ein Objekt kann zu einem Zeitpunkt nur an einem Ort sein. Das GraficObjekt, welches eine Entity darstellt kann zu einen Zeitpunkt nur einmal gezeichnet werden. Dies bedeutet insbesondere, das eine Entity nicht in zwei Listen oder in einer Liste und in einem Prozess gleichzeitig aufhalten. Solche Situationen werden durch einen semanischen Check beim Schreiben der Animationsanweisungen während der Desmo-J Simulation erkannt. In diesem Fall wird die Simulation mit einer Fehlermeldung abgebrochen. Im folgenden sind die unterstützten Commands beschrieben. Der Quantifier zu einem Parameter sind in der Spalte # angegeben. Die verbindliche Festlegung der Command Syntax steht in dem Interface engine.command.commandsyntax.java Cmd # Parameter Beschreibung createmodelbasisdata Festlegung von grundlegenden Kommentaren, die im Animationstool angezeigt werden.? ProjectName Mehrere Modelle können zu einem Projekt gehören.? ProjectURL Eine URL, die weitere Infos zu diesem Projekt enthält.? ProjectIconId Ein Icon für das Projekt, siehe auch createimage. 1 ModelName Der Name des Modells wird im Viewer angeziegt. 1 ModelAuthor Der Autor des Modells wird im Viewer angeziegt.? ModelDate Das Erstellungsdatum des Modells wird im Viewer angeziegt.? ModelDescription Beschreibung des Modells. * ModelRemark Es können beliebig viele Bemerkungen zu einem Model angezeigt werden.? ModelLicense Lizenz-Informationen zu dem Modell.? DesmojVersion Wird automatsch vom Framework gefüllt.? DesmojLicense Wird automatsch vom Framework gefüllt.? DesmojLicenseURL Wird automatsch vom Framework gefüllt. createsimtimebounds 1 Begin Begin der Animation Legt den Begin und optional das Ende der Animation sowie eine Default Animationsgeschwindigkeit fest. Entsprechend der Unix/Java Notation erfolgen die Zeitangaben in Millisekunden seit dem :00 AM. GMT? End Ende der Animation. Die Angaben ist optional, da nicht immer der Endzeitpunkt einer Simulation bekannt ist.? TimeZone Die verwendete Zeitzone. Default ist die auf dem Rechner eingestellte Zeitzone. 1 Speed Speed beschreibt die default Simmulationsgeschwindigkeit. Diese kann im Annimationstool verändert werden. Ein Ansatz zur Visualisierung von Desmo-J Simulationen 10 of 39

11 Cmd # Parameter Beschreibung createimage Definiert ein Image, welches zur Visualisierung von Entities benötigt wird. Siehe dazu auch das Command createentitytyp. 1 ImageId Die ImageId beschreibt ein Image eindeutig und darf folglich nicht doppelt vergeben werden. 1 File File beschreibt die Bilddatei relativ zu einem Basisverzeichnis (simulationicondir), welches dem Konstruktor der Klasse animation.viewer.viewerpanel übergeben wird. Es werden Bilder in den Formaten GIF, JPEG, oder PNG unterstützt. createentitytyp Ein EntityTyp beschreibt grundlegende Eigenschaften eines Entities. Jedes Entity wird mit einem Icon und einem Namen beschrieben. Das Icon ist für alle Entities eines EntityTyps, in Abhängigkeit des Zustands, gleich. 1 EntityTypId Die EntityTypId beschreibt ein EntityTyp eindeutig und darf folglich nicht doppelt vergeben werden. 1 IconWidth IconWidth gibt die Breite des Icons in Pixel an. 1 IconHeigth IconHeigth gibt die Höhe des Icons in Pixel an. + PossibleState PossibleState gibt die zulässigen Zustände an. Die Werte haben die Form "Name des Zustands ImageId". Jedes Entity mit diesem Zustand wird mit diesem Image visualisiert. Der Zustand "animationerror" existiert immer und wird in Fehlersituationen verwendet. * PossibleAttribute Possible Attribute gibt die zulässigen Attribute für diesen Typ an. Die Attribute name, velocity und priority sind Standardattribute und dürfen nicht noch einmal definiert werden. Ein Ansatz zur Visualisierung von Desmo-J Simulationen 11 of 39

12 Cmd # Parameter Beschreibung createentity setentity Erzeugt eine neue Entity des angegebenen EntityTyps. Eine Entity ist entweder frei oder fixiert. Freie Entities können in Listen, Prozessen, Routen, ect. angezeigt werden. Fixierte Entities sind an eine feste Position gebunden. 1 EntityId Die EntityId beschreibt ein Entity eindeutig und darf folglich nicht doppelt vergeben werden.? Name Name eines Attributs, welches zur Benennung der Entity in der Animation verwendet wird. Falls dies nicht gesetzt ist, wird in der Animation die EntityId angezeigt. 1 EntityTypeId Die EntityTypeId legt die Eigenschaften einer Entity fest.? Velocity Name eines Attributs, welches zur Speicherung der Geschwindigkeit der Entity auf einer Route verwendet wird. 1 State State legt den Zustand der Entity fest. Dieser Zustand muss im verwendeten EntityTyp als zulässig erklärt sein. * Attribute Weist einem AttributName einen Wert zu. Die Syntax ist "Attribute:AttributName AttributWert". Der AttributName muss im verwendeten EntityTyp als zulässig erklärt sein. Die Attribute name, velocity und priority werden vom System verwendet und sind für Anwender gesperrt.? Position Wenn keine Position angegeben ist, dann ist die Entity frei und kann in Listen, Routen und Prozessen angezeigt werden. Dies ist der Normalfall. Wenn eine Position angegeben ist, dann ist die Entity auf alle Ewigkeit auf dieser Position fixiert. Die Parametersyntax lautet: "Position:x y angle direction", wobei x,y Koordinaten, angle der Drehwinkel in Bogenmaß und direction die Werte true oder false annehmen kann und festlegt ob das Icon vertikal gespiegelt wird. Verändert Geschwindigkeit, Zustand und Attribute einer existierenden Entity. 1 EntityId Id der zu bearbeitenden Entity? Velocity Name eines Attributs, welches zur Speicherung der Geschwindigkeit der Entity auf einer Route verwendet wird.? State State legt den Zustand der Entity fest. Dieser Zustand muss im verwendeten EntityTyp als zulässig erklärt sein. * Attribute Weist einem AttributName einen Wert zu. Die Syntax ist "Attribute:AttributName AttributWert". Der AttributName muss im verwendeten EntityTyp als zulässig erklärt sein. Die Attribute name, velocity und priority werden vom System verwendet und sind für Anwender gesperrt. disposeentity Löscht die Entity. 1 EntityId Id der zu löschenden Entity Ein Ansatz zur Visualisierung von Desmo-J Simulationen 12 of 39

13 Cmd # Parameter Beschreibung createlist Erzeugt eine Liste, mit der z.b. Warteschlangen visualisiert werden können. Die Listenelemente werden immer in der Reihenfolge ihrer Priorität angezeigt. Dabei werden die Entitäten mit den kleinsten Prioritätswerten zuerst angezeigt. setlist 1 ListId Die ListId beschreibt eine Liste eindeutig und darf folglich nicht doppelt vergeben werden.? Name Name legt den Namen der Liste fest. 1 DefaultEntityType Default EntityType legt wird zur graphischen Dimensionierung benötigt. 1 NumberOfVisible NumberOfVisible gibt an, wie viele Entities ohne scrollen in der Liste zu sein sollen. 1 Form Form gibt die Ausrichtung der Liste an und kann die Werte vertical oder horizontal annehmen. 1 Point Point gibt die Koordinaten des Mittelpunktes der Liste an und hat die Syntax: "Point:viewId x y".? DeltaSize Aus den Parametern DefaultEntityType, NumberOfVisible und Form wird eine defaultgröße der Liste bestimmt. Diese kann mit DeltaSize vergrößert oder verkleinert werden. Der Parameter genügt der Syntax: "DeltaSize:dx dy" Fügt Entities zu eine List hinzu und entfent welche. RemoveAll kann nicht in Verbindung mit anderen Parametern verwendet werden. 1 ListId Id der zu bearbeitenden Liste * AddEntity Für AddEntity gibt es die SyntaxVarianten: - "AddEntity:EntityId first", - "AddEntity:EntityId last" und - "AddEntity:EntityId value priorityattribute". Dabei ist PriorityAttribute der Name eines Attributs der aufzunehmenden Entity, nach der die Entity in die Liste eingefügt wird. Als Default kann animation.command.cmd.priority_key verwendet werden. * AddBetween Fügt die Entity zwischen den Entities EntityBefore(id) und EntityAfter(id) ein. Die Syntax lautet: AddBetween:EntityId EntityBefore EntityAfter priorityattribute * RemoveEntity RemoveEntity hat die Syntax: "RemoveEntity:EntityId".? RemoveAll Leert die Liste. Darf nicht in Verbindung mit anderen Parametern benutzt werden.? SetRank Setzt die Prioritäten der Entities in von 1.0 aufsteigender Folge mit Increment 1.0. Die Syntax lautet: SetRank:firstEntityId... lastentityid Die Änderungen erfolgen dabei in den PriorityAttributen der einzelnen Entities. Ein Ansatz zur Visualisierung von Desmo-J Simulationen 13 of 39

14 Cmd # Parameter Beschreibung createstation Eine Station ist Anfangs oder Endpunkt einer Route. 1 StationId Die StationId beschreibt eine Station eindeutig und darf folglich nicht doppelt vergeben werden.? Name Der Name wird in der Animation angezeigt. Wurde keiner festgelegt, dann wird die StationId verwendet. 1 Point Point beschreibt den Mittelpunkt der Station und genügt der Syntax: "Point:viewId x y". createroute Eine Route verbindet eine Source- mit einer Sink-Station. setroute 1 RouteId Die RouteId beschreibt eine Route eindeutig und darf folglich nicht doppelt vergeben werden.? Name Der Name wird in der Animation angezeigt. Wurde keiner festgelegt, dann wird die RouteId verwendet. 1 Length Länge der Route 1 SourceStationId Id der SourceStation 1 SinkStationId Id der SinkStation * Point Mit Point können Zwischenpunkte der Route angegeben werden. Die Syntax lautet: "Point:x y". Die viewid ist gleich der von Source- und SinkStation. Fügt Entities zu einer Route hinzu und entfernt sie. Entities werden immer an der SourceStation eingefügt. Entfernt werden können sie überall. Die Bewegungsgeschwindigkeit kann in der Entity eingestellt werden. Dazu wird dort mit setvelocity ein Attribut für die Geschwindigkeit festgelegt. Falls nichts festgelegt wurde kann animation.command.cmd.velocity_key verwendet werden. 1 RouteId Id der zu bearbeitenden Route * AddEntity Id der einzufügenden Entity * RemoveEntity Id der zuentfernenden Entity? RemoveAll Entfernt alle Entities aus der Route. Darf nicht in Verbindung mit anderen Parametern benutzt werden. Ein Ansatz zur Visualisierung von Desmo-J Simulationen 14 of 39

15 Cmd # Parameter Beschreibung CreateProcess Ein Process visualisiert eine Bearbeitungsstation, in der mehrere Entitäten (ProcEntity) von Resourcen (ResEntity) bearbeitet werden. Im Gegensatz zu ProcessNew kann dieses Processelement kann nur eine Bearbeitungsstation abbilden. Deshalb ist es veraltet. Künftig sollte ProcessNew verwendet werden. (ersetzt durch ProcessNew) 1 ProcessId Die ProcessId beschreibt einen Process eindeutig und darf folglich nicht doppelt vergeben werden.? Name Der Name wird in der Animation angezeigt. Wurde keiner festgelegt, dann wird die ProcessId verwendet. 1 NumberOfResEntity Die NumberOfResEntity und NumberOfProcEntity legen fest, 1 NumberOfProcEntity wie viele dieser Entities gleichzeitig angezeigt werden können. 1 DefaultResEntityType Die entsprechende DefaultTypen werden zur graphischen 1 DefaultProcEntityType Dimensionierung des Processes benötigt. setprocess? ListId ListId beschreibt eine Liste, die als Warteschlange für den Process dient. Beide werden mit einer Linie verbunden, um den Zusammenhang anzuzeigen. 1 Form Form gibt die Ausrichtung des Processelements an und kann die Werte vertical oder horizontal annehmen. 1 Point Point beschreibt den Mittelpunkt und hat die Syntax: "Point:viewId x y".? DeltaSize Aus den Parametern DefaultResType, DefaultProcType NumberOfResEntity und NumberOfProcEntity und Form wird eine Defaultgröße des Processelements bestimmt. Diese kann mit DeltaSize vergrößert oder verkleinert werden. Der Parameter genügt der Syntax: "DeltaSize:dx dy" Fügt Entities zu dem Process hinzu und entfernt welche. 1 ProcessId Id des zu bearbeitenden Processelements * AddResEntity Id einer hinzufügenden Resource Entity * RemoveResEntity Id einer zuentfernenden Resource Entity * AddProcEntity Id einer hinzufügenden Process Entity? RemoveProcEntity Id einer zuentfernenden Process Entity Ein Ansatz zur Visualisierung von Desmo-J Simulationen 15 of 39

16 Cmd # Parameter Beschreibung createprocessnew Bei einem nicht-abstrakten Prozess (Abstract nicht gesetzt und ShowResources gesetzt) wird für mehrere Prozessstationen angezeigt, welche Resourcen welchen Processelementen zugeordnet sind. Die einzelnen Prozessstationen sind farblich abgesetzt. Zu einer Prozessstationen können mehrere Resourcen und mehrere Processelemente gehören. Rechts ist die Anzahl der belegten Prozessstationen angezeigt. Bei abstakten Prozessen (Abstrakt und ShowResources gesetzt) wird davon ausgegangen, dass alle Resourcen gleichartig sind. In diesem Fall wird an Stelle der Resourcen- Entities die Anzahl der belegten von den insgesamt vorhandenen Resourcen angezeigt. Falls ShowResources nicht gesetzt ist, werden nur die Processelemente angezeigt. Auch hier werden mehrere Prozessstationen unterschieden. 1 ProcessId Die ProcessId beschreibt einen Process eindeutig und darf folglich nicht doppelt vergeben werden.? Name Der Name wird in der Animation angezeigt. Wurde keiner festgelegt, dann wird die ProcessId verwendet.? Abstract Wenn dieser Parameter gesetzt ist, dann ist der Process abstract.? ResourceType Nur für abstrakte Prozesse: Der ResourceType beschreibt die Art der Resource und wird in der Animation als Information angezeigt? ResourceTotal Nur für abstrakte Prozesse: ResourceTotal beschreibt die Anzahl der insgesamt verfügbaren Resourcen und wird in der Animation als Information angezeigt. 1 DefaultEntityType Der DefaultEntityTypen wird zur graphischen Dimensionierung des Processes benötigt. Es wird angenommen, das alle in dem Prozess anzuzeigenden Entities die gleiche Größe haben. 1 AnzVisible AnzVisible gibt an, wie viele Entities ohne scrollen in der Liste zu sein sollen.? ShowResources Wenn dieser Parameter gesetzt ist, dann sollen Resourcen animiert werden.? ListId ListId beschreibt eine Liste, die als Warteschlange für den Process dient. Beide werden mit einer Linie verbunden, um den Zusammenhang anzuzeigen. 1 Form Form gibt die Ausrichtung des Processelements an und kann die Werte vertical oder horizontal annehmen. 1 Point Point beschreibt den Mittelpunkt und hat die Syntax: "Point:viewId x y". Ein Ansatz zur Visualisierung von Desmo-J Simulationen 16 of 39

17 ? DeltaSize Aus den Parametern DefaultEntityType, AnzVisible und Form wird eine Defaultgröße des Processelements bestimmt. Diese kann mit DeltaSize vergrößert oder verkleinert werden. Der Parameter genügt der Syntax: "DeltaSize:dx dy" setprocessnew Bei abstrakten Prozessen: Alle Process- Entities die zu einer Arbeitsstation gehören sind und die Anzahl der benötigten Resourcen sind in einem Command hinzuzufügen. Wird eine Process- Entity einer Arbeitsstation entfernt, so wird die ganze Arbeitsstation mit allen Entities und benötigten Resourcen entfernt. Bei nicht abstrakten Prozessen: Alle Entities (Process und Ressource) die zu einer Arbeitsstation gehören sind in einem Command hinzuzufügen. Wird eine Entity (Process oder Ressource) einer Arbeitsstation entfernt, so wird die ganze Arbeitsstation mit allen Entities entfernt. 1 ProcessId Id des zu bearbeitenden Processelements * AddProcEntity Id einer hinzufügenden Process Entity * AddResEntity Bei nicht-abstrakten Prozessen: Id einer hinzufügenden Resource Entity * AddResAnz Bei abstrakten Prozessen: Anzahl der hinzufügenden Resourcen. * RemoveEntity Id einer zuentfernenden Process oder Ressource Entity Ein Ansatz zur Visualisierung von Desmo-J Simulationen 17 of 39

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

KURZANLEITUNG CLOUD BLOCK STORAGE

KURZANLEITUNG CLOUD BLOCK STORAGE KURZANLEITUNG CLOUD BLOCK STORAGE Version 1.12 01.07.2014 SEITE _ 2 INHALTSVERZEICHNIS 1. Einleitung......Seite 03 2. Anlegen eines dauerhaften Block Storage...Seite 04 3. Hinzufügen von Block Storage

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

Simulationsmodelle mit Bflow und DesmoJ

Simulationsmodelle mit Bflow und DesmoJ TH Wildau IM11, WS 2012/13 Simulationsmodelle mit Bflow und DesmoJ Belegarbeit für das Modul Simulation II Christian Schmidt, Jan Druschke 11.01.2013 Inhaltsverzeichnis 1 Einleitung... 1 2 Verwendete Frameworks,

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

Erweiterung für Premium Auszeichnung

Erweiterung für Premium Auszeichnung Anforderungen Beliebige Inhalte sollen im System als Premium Inhalt gekennzeichnet werden können Premium Inhalte sollen weiterhin für unberechtigte Benutzer sichtbar sein, allerdings nur ein bestimmter

Mehr

Assoziation und Aggregation

Assoziation und Aggregation Assoziation und Aggregation Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Verstehen der Begriffe Assoziation und Aggregation Implementierung von Assoziationen in Java schreiben

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr

Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein.

Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein. Pfade einstellen Stand: Dezember 2012 Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein. Diese Anleitung soll zeigen, wie man Pfad-Favoriten

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Inhalt: Version 1.7.5

Inhalt: Version 1.7.5 Inhalt: Objekte ohne Methoden Objekte mit einfachen Methoden Objekte und Methoden mit Parametern Objekte und Methoden mit Rückgabewert Objekte mit einem Array als Attribut Beziehungen zwischen Objekten

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Version 1.0 Erstellt am 12.12.2014 Zuletzt geändert am 17.12.2014. Gültig für Release 1.0.0.0

Version 1.0 Erstellt am 12.12.2014 Zuletzt geändert am 17.12.2014. Gültig für Release 1.0.0.0 Version 1.0 Erstellt am 12.12.2014 Zuletzt geändert am 17.12.2014 Gültig für Release 1.0.0.0 Inhalt 1 WebPart Site Informationen 3 1.1 Funktionalität 3 1.2 Bereitstellung und Konfiguration 4 2 WebPart

Mehr

Übungen zur Android Entwicklung

Übungen zur Android Entwicklung Übungen zur Android Entwicklung Aufgabe 1 Hello World Entwickeln Sie eine Hello World Android Applikation und laden diese auf den Emulator. Leiten Sie hierfür die Klasse android.app.activity ab und entwerfen

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

Mehr

SINT Rest App Documentation

SINT Rest App Documentation SINT Rest App Documentation Release 1.0 Florian Sachs September 04, 2015 Contents 1 Applikation 3 2 Rest Service 5 3 SOAP Service 7 4 Technologiestack 9 5 Deployment 11 6 Aufgabe 1: Google Webservice

Mehr

Leistungsbeschreibung. PHOENIX Archiv. Oktober 2014 Version 1.0

Leistungsbeschreibung. PHOENIX Archiv. Oktober 2014 Version 1.0 Leistungsbeschreibung PHOENIX Archiv Oktober 2014 Version 1.0 PHOENIX Archiv Mit PHOENIX Archiv werden Dokumente aus beliebigen Anwendungen dauerhaft, sicher und gesetzeskonform archiviert. PHOENIX Archiv

Mehr

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum Starthilfe für C# Inhaltsverzeichnis Allgemeines... 2 Bezugsquellen... 2 SharpDevelop... 2.NET Runtime... 2.NET SDK... 2 Installation... 2 Reihenfolge... 2 Vorschlag für eine Ordnerstruktur... 3 Arbeit

Mehr

CloudMatic V1.0. Inhalt

CloudMatic V1.0. Inhalt CloudMatic V1.0 Inhalt Einleitung... 2 CCUs hinzufügen... 3 meine-homematic.de... 4 Eigenes VPN... 4 View Editor... 5 Übersicht... 5 Allgemeine Einstellungen... 6 Kanäle hinzufügen... 6 Spezielle Kanäle...

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen 1 Kapitel 7 Ziele 2 (Graphical User Interfaces) als Anwendungsbeispiel für die objektorientierte Programmierung kennenlernen Benutzung von Vererbung zur Erstellung individueller GUI-Klassen durch Erweiterung

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

EINFÜHRUNG. Durch Model Sharing. Model Sharing ist Bestandteil von Tekla Structures 21.0 Es ist keine zusätzliche Installation notwendig

EINFÜHRUNG. Durch Model Sharing. Model Sharing ist Bestandteil von Tekla Structures 21.0 Es ist keine zusätzliche Installation notwendig TEKLA MODEL SHARING EINFÜHRUNG Durch Model Sharing können mehrere Anwender gemeinsam an einem Modell arbeiten können die Anwender räumlich und zeitlich unabhängig von einander arbeiten ist keine permanente

Mehr

17 00 01 Übungen zu Computeranwendung und Programmierung WS 13/14

17 00 01 Übungen zu Computeranwendung und Programmierung WS 13/14 17 00 01 Übungen zu Computeranwendung und Programmierung WS 13/14 Übungseinheit 2. - 6. Dezember 2013 Aufgabe 1 Es gibt zwei Roboter in einem durch Mauern abgeschlossenen Labyrinth unbekannter Größe. Der

Mehr

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Institut für Informatik

Institut für Informatik Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 7 Prof. R. Westermann, A. Lehmann, R.

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Aktualisierungsrichtlinie für die KMnet Admin Versionen 3.x und 2.x

Aktualisierungsrichtlinie für die KMnet Admin Versionen 3.x und 2.x Aktualisierungsrichtlinie für die KMnet Admin Versionen 3.x und 2.x Dieses Dokument beschreibt, wie KMnet Admin aktualisiert wird. Für den Übergang auf KMnet Admin 3.x und 2.x sind Sicherungs- und Wiederherstellungstätigkeiten

Mehr

Web-Anwendungsentwicklung mit dem Delivery Server

Web-Anwendungsentwicklung mit dem Delivery Server Web-Anwendungsentwicklung mit dem Delivery Server Java-Framework auf Basis der Open API Bernfried Howe, Webertise Consulting GmbH WEBertise Consulting Dipl. Informatiker (Wirtschaftsinformatik) 2001-2010

Mehr

Java Desktop Anwendungen

Java Desktop Anwendungen 5 1 Java Desktop Anwendungen das Problem: Desktop-Anwendungen werden mit Hilfe der Swing- Bibliothek programmiert, aber die Swing-Bibliothek ist riesig und unübersichtlich es gab kein Programmiergerüst

Mehr

Programmierprojekt Aufgabe 1

Programmierprojekt Aufgabe 1 v01 10.05.2009 Die Formalitäten vorab (WICHTIG!!!): Technische Universität Darmstadt Fachbereich Informatik Prof. Dr. Johannes Fürnkranz Allgemeine Informatik 2 im SS 2009 Programmierprojekt Aufgabe 1

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Die Bibliothek ist mit folgenden.net-frameworks kompatibel: .NET 4.5

Die Bibliothek ist mit folgenden.net-frameworks kompatibel: .NET 4.5 Die DW-LogLibrary ist eine kleine, einfach zu verwendende Softwarebibliothek, um Entwicklern von.net-programmen das Speichern von Ausgaben und Fehlermeldungen ihrer Programme zu erleichtern. Sie unterstützt

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2

Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2 Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2 1. Benötigte Software Zur Erstellung des Installers wird folgende Software benötigt. Es wird sich in dieser Dokumentation

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Bedienung von BlueJ. Klassenanzeige

Bedienung von BlueJ. Klassenanzeige Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung Projekt IGH DataExpert Paynet Adapter Spezifikationen Voraussetzungen Datum : 21.07.08 Version : 1.0.0.2 21.07.2008 Seite 1 von 7 Inhaltsverzeichnis 1 Einleitung... 3 2 Architektur... 3 2.1 Grundsätze

Mehr

Einem Block können beliebig viele Attribute zugeordnet werden, vorausgesetzt jedes Attribut besitzt eine andere Bezeichnung.

Einem Block können beliebig viele Attribute zugeordnet werden, vorausgesetzt jedes Attribut besitzt eine andere Bezeichnung. Kapitel 4 4 Attribute Attribute sind Beschriftungen oder Bezeichnungen, mit denen Sie einem Block einen Text zuordnen. Jedes Mal, wenn Sie einen Block mit einem variablen Attribut einfügen, werden Sie

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung Projekt IGH DataExpert Yellowbill Adapter Spezifikationen Voraussetzungen Datum : 22.08.2013 Version : 1.0.0.2 22.08.2013 Seite 1 von 7 Inhaltsverzeichnis 1 Einleitung...3 2 Architektur...3 2.1 Grundsätze

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Allgemein. Einrichtung. PHOENIX Tool WinUser2PHOENIXUser. Version: 3.5.2 Stand: 2013-04-16

Allgemein. Einrichtung. PHOENIX Tool WinUser2PHOENIXUser. Version: 3.5.2 Stand: 2013-04-16 PHOENIX Tool WinUser2PHOENIXUser Version: 3.5.2 Stand: 2013-04-16 Allgemein Das Tool ermöglicht es, Benutzerinformationen aus dem Windows Active Directory (AD) in den PHOENIX zu importieren. Dabei können

Mehr

MGE Datenanbindung in GeoMedia

MGE Datenanbindung in GeoMedia TIPPS & TRICKS MGE Datenanbindung in GeoMedia 10. September 2002 / AHU INTERGRAPH (Schweiz) AG Neumattstrasse 24, CH 8953 Dietikon Tel: 043 322 46 46 Fax: 043 322 46 10 HOTLINE: Telefon: 043 322 46 00

Mehr

Installationscheckliste Pervasive Server Engine Version 7.94, Stand 16.10.2012

Installationscheckliste Pervasive Server Engine Version 7.94, Stand 16.10.2012 Installationscheckliste Pervasive Server Engine Version 7.94, Stand 16.10.2012 Pervasive Server Engine Checkliste für die Neuinstallation in einem Windows-Netzwerk Bitte prüfen Sie auf unseren Webseiten

Mehr

Microsoft Access 2010 Bilder

Microsoft Access 2010 Bilder Microsoft Access 2010 Bilder Hyperlinks... arbeiten ähnlich wie ein Link in einer Webseite. sind ein Verweis auf eine Datei (access2010\material\beispiel\tabledevelop\automat.accdb). können ein Verweis

Mehr

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Erste Schritte mit Elvis 3 ein Beispielprojekt

Erste Schritte mit Elvis 3 ein Beispielprojekt Erste Schritte mit Elvis 3 ein Beispielprojekt Um Sie mit Elvis 3 vertraut zu machen möchten wir mit Ihnen mit diesem Kapitel ein Beispielprojekt vom ersten Aufruf von Elvis 3 bis zum Testlauf aufbauen.

Mehr

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

PADS 3.0 Viewer - Konfigurationen

PADS 3.0 Viewer - Konfigurationen PADS 3.0 Viewer - Konfigurationen Net Display Systems (Deutschland) GmbH - Am Neuenhof 4-40629 Düsseldorf Telefon: +49 211 9293915 - Telefax: +49 211 9293916 www.fids.de - email: info@fids.de Übersicht

Mehr

Anleitung zur Webservice Entwicklung unter Eclipse

Anleitung zur Webservice Entwicklung unter Eclipse Entwicklungsumgebung installieren Sofern Sie nicht an einem Praktikumsrechner arbeiten, müssen Sie ihre Eclipse-Umgebung Webservice-fähig machen. Dazu benötigen Sie die Entwicklungsumgebung Eclipse for

Mehr

Webseitennavigation mit dem Content-Management-System Imperia. Zentrum für Informationsverarbeitung Westfälische Wilhelms-Universität Münster

Webseitennavigation mit dem Content-Management-System Imperia. Zentrum für Informationsverarbeitung Westfälische Wilhelms-Universität Münster Webseitennavigation mit dem Content-Management-System Imperia Zentrum für Informationsverarbeitung Westfälische Wilhelms-Universität Münster 10. Januar 2006 Inhaltsverzeichnis 1. Einführung 4 2. Rubrikenstruktur

Mehr

Tipps & Tricks ArCon. Schriftfeldmakro. Informationszeitschrift der DI KRAUS & CO GesmbH Seite 18

Tipps & Tricks ArCon. Schriftfeldmakro. Informationszeitschrift der DI KRAUS & CO GesmbH Seite 18 Im Konstruktionsmodus ist in der rechten unteren Ecke des Blattes ein Schriftfeld zu sehen. Dieses können Sie verändern, indem Sie doppelt darauf klicken. Nun haben Sie, je nach Schriftfeld, verschiedene

Mehr

Kurzanleitung für die Arbeit mit dem comosoft Helpdesk

Kurzanleitung für die Arbeit mit dem comosoft Helpdesk Kurzanleitung für die Arbeit mit dem comosoft Helpdesk 1. Der Start 2. Ticket-Erstellung 3. Prioritäten 4. Der Umgang mit Tickets 5. Der Umgang mit E-Mails 6. Der Downloadbereich 1 Der Start 1.1 URL Um

Mehr

Apps-Entwicklung mit Netbeans

Apps-Entwicklung mit Netbeans JDroid mit Netbeans Seite 1 Apps-Entwicklung mit Netbeans Version 2.2, 30. April 2013 Vorbereitungen: 1. JDK SE neuste Version installieren, (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen

Grundlagen der Programmierung Prof. H. Mössenböck. 10. Klassen Grundlagen der Programmierung Prof. H. Mössenböck 10. Klassen Motivation Wie würde man ein Datum speichern (z.b. 13. November 2004)? 3 Variablen int da; String month; int ear; Unbequem, wenn man mehrere

Mehr

Dokumentation: wi://googlemaps

Dokumentation: wi://googlemaps 1 Dokumentation: wi://googlemaps zur Einbindung von eigenen GoogleMaps Karten im TYPO3 Backend 2 Inhalt Einrichtung des Plugins... 3 Schritt 1: Frontend Plugin anlegen... 3 Schritt 2: Speicherort der Datensätze

Mehr

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Eclipse Equinox als Basis für Smart Client Anwendungen Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Übersicht Definition / Architektur Smart Client Smart Client mit RCP / Equinox Gesamtfazit

Mehr

Kapitel DB:III. III. Konzeptueller Datenbankentwurf

Kapitel DB:III. III. Konzeptueller Datenbankentwurf Kapitel DB:III III. Konzeptueller Datenbankentwurf Einführung in das Entity-Relationship-Modell ER-Konzepte und ihre Semantik Charakterisierung von Beziehungstypen Existenzabhängige Entity-Typen Abstraktionskonzepte

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

Performance Tuning mit @enterprise

Performance Tuning mit @enterprise @enterprise Kunden-Forum 2005 Performance Tuning mit @enterprise Herbert Groiss Groiss Informatics GmbH, 2005 Inhalt Datenbank RMI JAVA API HTTP Konfiguration Analyse Groiss Informatics GmbH, 2005 2 Datenbank

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221

Oracle 10g und SQL Server 2005 ein Vergleich. Thomas Wächtler 39221 Oracle 10g und SQL Server 2005 ein Vergleich Thomas Wächtler 39221 Inhalt 1. Einführung 2. Architektur SQL Server 2005 1. SQLOS 2. Relational Engine 3. Protocol Layer 3. Services 1. Replication 2. Reporting

Mehr

Arbeiten mit Arrays. 4.1 Eigenschaften. 4.1.1 Schlüssel und Element. Kapitel 4

Arbeiten mit Arrays. 4.1 Eigenschaften. 4.1.1 Schlüssel und Element. Kapitel 4 Arbeiten mit s Eine effiziente Programmierung mit PHP ohne seine s ist kaum vorstellbar. Diese Datenstruktur muss man verstanden haben, sonst brauchen wir mit weitergehenden Programmiertechniken wie der

Mehr

5. Threads, Serverprozesse und Benachrichtigungen

5. Threads, Serverprozesse und Benachrichtigungen 5. Threads, Serverprozesse und Benachrichtigungen Threads allgemein Threads in Android: Handler und Messages Services: Local, Remote, Binding Benachrichtigungen Entwicklung mobiler Anwendungen Europäische

Mehr

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Objektorientierung: Klassen und Objekte Klasse: Beschreibung für eine Menge von Objekten Schablone, Bauplan abstrakte Form Objekt: Instanz einer Klasse konkreter Inhalt (Werte) Klassen bestehen aus Attributen

Mehr

ARAkoll 2013 Dokumentation. Datum: 21.11.2012

ARAkoll 2013 Dokumentation. Datum: 21.11.2012 ARAkoll 2013 Dokumentation Datum: 21.11.2012 INHALT Allgemeines... 3 Funktionsübersicht... 3 Allgemeine Funktionen... 3 ARAmatic Symbolleiste... 3 Monatsprotokoll erzeugen... 4 Jahresprotokoll erzeugen

Mehr

Objektorientierte Software-Entwicklung

Objektorientierte Software-Entwicklung Objektorientierte Software-Entwicklung Priv.-Doz. Dr. Rolf Hennicker 08.01.2003 AWT und Swing AWT (Abstract Window Toolkit) und Swing 2 AWT (Abstract Window Toolkit) und Swing AWT und Swing bieten eine

Mehr

HTL-Website. TYPO3- Skriptum II. Autor: RUK Stand: 02.06.2010 Gedruckt am: - Version: V0.1 Status: fertig. Qualitätsmanagement

HTL-Website. TYPO3- Skriptum II. Autor: RUK Stand: 02.06.2010 Gedruckt am: - Version: V0.1 Status: fertig. Qualitätsmanagement HTL-Website TYPO3- Skriptum II Autor: RUK Stand: 02.06.2010 Gedruckt am: - Version: V0.1 Status: fertig Qualitätsmanagement Erstellt Geprüft Freigegeben Name RUK Datum 02.06.2010 Unterschrift Inhaltsverzeichnis

Mehr

Softwarewiederverwendung und Patterns

Softwarewiederverwendung und Patterns Begrifflichkeiten und Beschreibungssystematik Begriffe Literatur zu Patterns Übersicht über die behandelten Konzepte Beschreibungsschema 97 Begriffe Glossar Patterns (Muster) sind ein Mittel der Wiederverwendung

Mehr

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

Mehr

Das Studiengangsinformationssystem (SGIS)

Das Studiengangsinformationssystem (SGIS) Das Studiengangsinformationssystem (SGIS) Manual für Typo3-Redakteure Version 1.a Mai 2015 Kontakt: Referat 1.4 - Allgemeine Studienberatung und Career Service Christian Birringer, christian.birringer@uni-rostock.de

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

Übung zur Vorlesung Einführung in Software Engineering

Übung zur Vorlesung Einführung in Software Engineering Übung zur Vorlesung Einführung in Software Engineering Wintersemester 2012/13, Richard Bubel und Martin Hentschel Übungsblatt 5: Testen Abgabeformat: Reichen Sie Ihre Lösung per SVN als eine PDF-Datei

Mehr

RÖK Typo3 Dokumentation

RÖK Typo3 Dokumentation 2012 RÖK Typo3 Dokumentation Redakteur Sparten Eine Hilfe für den Einstieg in Typo3. Innpuls Werbeagentur GmbH 01.01.2012 2 RÖK Typo3 Dokumentation Inhalt 1) Was ist Typo3... 3 2) Typo3 aufrufen und Anmelden...

Mehr

Kapitel 3 Das Projekt Bankkonto Seite 1

Kapitel 3 Das Projekt Bankkonto Seite 1 Kapitel 3 Das Projekt Bankkonto Seite 1 3 Das Projekt Bankkonto Nun wirst du dich etwas gründlicher mit dem Quelltext einer Klasse beschäftigen. Du lernst, wie zwei Objekte eine gemeinsame Aufgabe erledigen.

Mehr

PowerBridge MSSQL Beta

PowerBridge MSSQL Beta SoftENGINE PowerBridge MSSQL Beta Dokumentation Thomas Jakob 17.04.2011 Inhalt Einrichtung der SQL Umgebung... 3 SQL-Server Installieren... 3 BüroWARE Installieren... 3 PowerBridge-SQL Modus einrichten...

Mehr

Graphing - SNMP DATA - MRTG II

Graphing - SNMP DATA - MRTG II Graphing - SNMP DATA - MRTG II Netzwerkmanagement Software hat sich in den letzten Jahren vom hilfreichen Produkt zur integralen Grundlage für den professionellen IT Betrieb gewandelt. Grosse und leistungsfähige

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

PRAXISBUTLER ANPASSUNG DER VORLAGEN

PRAXISBUTLER ANPASSUNG DER VORLAGEN Praxisbutler Anpassung der Vorlagen 1 PRAXISBUTLER ANPASSUNG DER VORLAGEN Die Vorlagen werden hauptsächlich in den Bereichen Klienten und Fakturierung benutzt. Die Anpassung dieser Vorlagen ist wichtig,

Mehr

6 InfoCubes erstellen und konfigurieren

6 InfoCubes erstellen und konfigurieren InfoCubes bilden die Reportingschicht in der LSA; sie sind für die Performance des Reportings entscheidend. In diesem Kapitel stellen wir Ihnen vor, welche InfoCubes es gibt und wie Sie damit arbeiten.

Mehr

suva In wenigen Schritten zum Gefahren-Portfolio Einleitung

suva In wenigen Schritten zum Gefahren-Portfolio Einleitung suva In wenigen Schritten zum Gefahren-Portfolio Einleitung Die Verordnung über die Verhütung von Unfällen und Berufskrankheiten VUV (Artikel 11a) verpflichtet den Arbeitgeber, Arbeitsärzte und andere

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

Programmierprojekt. Anne0e Bieniusa Sommersemester 2014

Programmierprojekt. Anne0e Bieniusa Sommersemester 2014 Programmierprojekt Anne0e Bieniusa Sommersemester 2014 Phasen der So;ware- Entwicklung Planungsphase DefiniConsphase Entwurfsphase ImplemenCerungsphase Testphase Wasserfall- Modell Einführungs- und Wartungsphase

Mehr

Einführung in AOP. Rico Schiekel - 012816 rschiekel@web.de. Agenda. Kernproblem der Objekt Orientierung

Einführung in AOP. Rico Schiekel - 012816 rschiekel@web.de. Agenda. Kernproblem der Objekt Orientierung Einführung in AOP Informatikseminar Rico Schiekel - 012816 rschiekel@web.de Fachhochschule Ravensburg Weingarten Hochschule für Technik und Sozialwesen Einführung in AOP Agenda Kernproblem der Objekt Orientierung

Mehr

Einführung in ActionScript

Einführung in ActionScript Fachbereich Mathematik und Informatik Softwareprojekt: Spieleprogrammierung Einführung in ActionScript Do, Hoang Viet(do@mi.fu-berlin.de) Freie Universität Berlin, SoSe 2012 Agenda Allgemeine Einführung

Mehr