cd Blatt 7
Diskutiert die Entwicklung von objektorientierten Systemen, welche eigenständige Objekte umfassen, die ihren lokalen Zustand verwalten und manipulieren. Es wird die Bedeutung von Klassen, Objektinteraktionen und der privaten Zustandsdarstellung betont.
Entwurfsmuster sind grundlegende Bausteine im objektorientierten Softwareentwurf, abgeleitet aus allgemeinen Lösungsansätzen für wiederkehrende Probleme. Sie bieten eine strukturierte Herangehensweise, um Erfahrungen und bewährte Praktiken effektiv zu nutzen und zu teilen.
Implementierungsaspekte im Softwareentwurf fokussieren auf die effiziente Umsetzung von Softwarelösungen, unter Berücksichtigung der Wiederverwendung, Konfigurationsverwaltung und Host-Ziel-Entwicklung.
Open-Source-Lizenzierung definiert, wie Software frei geteilt, modifiziert und genutzt werden kann, unter bestimmten Bedingungen, die durch verschiedene Lizenzmodelle vorgegeben sind, um die Freiheit der Software und die Rechte der Entwickler zu schützen.
Betont die Wichtigkeit von Klassen, Objektinteraktionen und der Systemarchitektur, unterstützt durch UML als Werkzeug für die Visualisierung und Strukturierung.
Bietet wiederverwendbare Lösungen für gängige Softwareentwurfsprobleme, fördert effizientes Design und ein gemeinsames Vokabular zur Diskussion von Entwurfsstrategien.
Umfasst Wiederverwendung von Code, Konfigurationsverwaltung und Host-Ziel Entwicklung, um effiziente und wartbare Softwarelösungen zu schaffen.
Erklärt die Bedeutung von Lizenzmodellen wie GPL, LGPL, BSD und MIT für die Nutzung und Weitergabe von Software, unterstreicht die Notwendigkeit der Lizenzkonformität.
Beantworten Sie kurz und bündig folgende Fragen!
a) Modellieren Sie eine Klassenstruktur in UML, mit Hilfe derer eine rekursive Struktur von Termen erstellt werden kann. Sehen Sie mindestens einzelne Klassen für die Addition und Multiplikation vor, sowie weitere Klassen für geklammerte Terme und Literale, welche ganze Zahlen repräsentieren. Welches Entwurfsmuster eignet sich hier am Besten?
b) Zeichnen Sie das UML-Klassendiagramm.
a) Modellieren Sie eine Klassenstruktur in UML, mit Hilfe derer eine rekursive Struktur von Termen erstellt werden kann. Sehen Sie mindestens einzelne Klassen für die Addition und Multiplikation vor, sowie weitere Klassen für geklammerte Terme und Literale, welche ganze Zahlen repräsentieren. Welches Entwurfsmuster eignet sich hier am Besten?
b) Zeichnen Sie das UML-Klassendiagramm.
a) Erweitern Sie das Klassendiagramm aus Aufgabe ?? um die Klasse Visitor
b) Fertigen Sie eine Implementierung für diese Klassenstruktur an, welche die oben genannten Terme anlegt und über die Visitor-Klassen ausgibt bzw. den Wert berechnet. (Lösung siehe moodle)
a) Stellen Sie das Beobachter Entwurfsmuster (Observer-Pattern) in einem UML Klassendiagramm dar (inkl. wichtige Methoden aber ohne deren Inhalt, sowie ohne Multiplizitäten und Rollennamen). Abstrakte Klassen können Sie ggf. mit (abstract) unter dem Klassennamen markieren.