Courses
Softwaretechnologie
Vorlesung mit Übung (SS 23) - VorlesungZusammenfassung
Die Vorlesung behandelt Methoden und Konstruktionselemente zur Entwicklung großer Softwaresysteme (Programmierung im Großen). Es werden die Grundzüge einer systematischen ingenieurtechnischen Vorgehensweise unter Verwendung moderner Hilfsmittel behandelt. Besondere Schwerpunkte bilden die Konzepte der Objektorientierung, insbesondere die Modellierungssprache Unified Modeling Language (UML) und die Architektur interaktiver Systeme. Zur praktischen Umsetzung der Systeme wird die Programmiersprache Java gelehrt, mit besonderer Betonung der Verwendung von Klassenbibliotheken und der Umsetzung von klassischen Entwurfsmustern. Grundinformationen zum Projektmanagement und Software-Tests runden den Stoff ab und stellen die Basis für das folgende Softwaretechnologie-Praktikum bereit.
Summary
This lecture comprises methods and construction elements for the development of complex software systems (programming in the large). It covers the basics of a systematic engineering approach to the construction of software by using up-to-date technology. Special emphasis is put on the concepts of object-orientation, in particular, the modeling language UML (Unified Modeling Language), and the architecture of interactive systems. For the practical realization of software systems, the programming language Java is taught, with emphasis on the usage of class libraries and the application of classical design patterns. Elementary information on project management and software quality assurance rounds off the contents and provides a starting point for the software technology project in the following term.
Gliederung der Vorlesung
I - Objektorientierung und Java | ||
---|---|---|
2023-04-03 | Einführung | |
Objektorientierung: Objekte und Klassen. Eigenschaften von Objekten. Klassen als Äquivalenzklassen über Objekten. Einfache Java-Programme. | ||
2023-04-10 | Easter Monday - Public Holiday | |
free. Watch the video, please. | ||
2023-04-10 | Objektorientierte Analyse mit der CRC- und R-CRC-Karten-Methode | |
Wie findet man, im Interview mit dem Kunden, Klassen, Rollen, ihre Merkmale und ihre Assoziationen? Erste Schritte in der objekt-orientierten und rollenorientierten Analyse. Das Thema von Kap. 12 wird wieder in Kap. 30+31 aufgenommen. | ||
2023-04-10 | Objektorientierung: Vererbung und Polymorphie | |
Wie vermeidet man Copy-and-Paste-Programming? Vererbung zwischen Klassen. Erweiterung von Vererbungshierarchien. Polymorpher und monomorpher Aufruf. Merkmalssuche in Vererbungshierarchien. | ||
2023-04-24 | Testen mit Java, Frameworks und Javadoc | |
Test- und Administrationsring in olympischer Software. Testen mit Java, junit-Frameworks, Software-Verträge, Javadoc. | ||
2023-05-01 | Programmieren mit Löchern | |
Abstrakte Klassen, Schnittstellen und generische Klassen für die Programmierung von Frameworks (Rahmenwerken). Watch video, please! | ||
II - Programmieren von Objektnetzen | ||
2022-05-02 | Collections | |
Collections (Behälterklassen). Einsatz von Generizität zur sicheren Anwendungsentwicklung (SAD vs RAD). Programmieren gegen Schnittstellen anstatt konkreter Datenstrukturen (polymorphe Container). Lists, Sets, Maps. Auswahl von konkreten Datenstrukturen. | ||
2022-05-09 | Einführung in Entwurfsmuster | |
Einführung in Entwurfsmuster. Geschichte. Model-View-Controller mit Observer, Strategy, Composite. | ||
2022-05-16 | Konnektoren, Iteratoren und Kanäle (pipes) | |
Entwurfsmuster für Objektnetze: Kanäle (pipes) und Iteratoren. Senken. Aktoren mit Ports. Konnektoren und Kanäle. Persistenz mit Serialisierung. | ||
2022-05-23 | Entwurfsmuster für Produktlinien | |
Entwurfsmuster für Produktfamilien und -linien: Variabilitätsmuster, Erweiterungsmuster, Klebemuster. | ||
2022-05-30 | Graphen in Java | |
Graphen als Realisierung von UML-Assoziationen. Graphbibliothek jgrapht, als Anwendung von allen Mustern dieses Kurses. | ||
2022-06-06 | Pfingstwoche - Pentecost Break | |
This week is lecture free, which means that you should work on the last chapters to cope with things you did not manage to learn so far. If possible, start with chapters 30 and 31. | ||
III - Objektorientierte Analyse | ||
2022-06-13 | Einführung in die objektorientierte Analyse | |
Anforderungsanalyse und objektorientierte Analyse. Dokumente der Analyse wie Domänenmodelle, Kontextmodelle, Toplevel-Architektur. Modellierung von Hierarchien und Endo-Relationen. Mehrfachvererbung. | ||
2022-06-20 | Strukturelle Analyse - Kontextmodell und Top-Level-Architektur | |
Strukturelle Analyse mit Verbundobjekten. Mixin-Anreicherung. Teile-, Rollen- und Port-Mixins. Komponentenklassen und ihre Port-Mixins. Angebotene vs. benötigte Schnittstellen von Portklassen. Strukturelle Analyse mit UML für Kontextmodell und Top-Level-Architektur. Einsatz von UML-Komponenten. | ||
2022-06-27 | Szenarioanalyse und dynamisches Modell | |
Szenario-Analyse für Anwendungsfalldiagramme (Realisierung von Anwendungsfällen). Kollaborationen. Querschneidende Verfeinerung mit Kollaborationen. EU-Rent-Fallstudie. | ||
2022-06-27 | Verhaltensanalyse mit Aktionsdiagrammen | |
Dynamische Modellierung mit Aktivitätsdiagrammen und Zustandsautomaten (Statecharts). Protokollmaschinen und Steuerungsmaschinen. Kommunizierende Automaten. | ||
IV - Objektorientierter Entwurf | ||
2022-07-04 | Einführung in die 4-Schichten-Architektur | |
Architektur. 4-Schichten-Architektur. Abstrakte Maschinen. Der Quasar-Architekturstil, Software-Blutgruppen. | ||
2022-07-11 | Entwurf und Programmierung von Benutzerschnittstellen | |
Architektur von Anwendungen mit synchronen und asynchronen (graphischen Benutzeroberflächen (GUI). Schichtung aus UI, Controller, Anwendungslogik. Phasen der Bearbeitung. Play-In und Play-Out. Controllerschicht aus Kollaborationen und Konnektoren. Controllerobjekte als Steuerungsmaschinen. Controllerschicht als kommunizierende Automaten. | ||
0001-01-01 | Plattformanreicherung (entfällt) | |
Fortsetzung der Objektanreicherung durch Plattforminformation in Kollaborationen (Plattformkonnektoren). | ||
V - Software-Management | ||
2022-07-11 | Projektmanagement und über die Herstellung großer Softwaresysteme | |
Projektmanagement. Zeitverfolgung. Einsatz des Salespoint-Frameworks im Praktikum. Softwaretechnik allgemein | ||
Vorbereitung Praktikum | ||
0000-00-00 | Programmierung interaktiver Systeme | |
Beispiele der Programmierung von GUI mit Java-AWT und Swing. Modulare Verbindung zwischen GUI und Anwendungslogik über Konnektoren. MVC-Frameworks. Spring. |