Lehrveranstaltungen

Softwaretechnologie

Vorlesung mit Übung (SS 17) - Vorlesung

Zusammenfassung

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 round off the contents and provide a starting point for the software technology project in the following term.

Gliederung der Vorlesung

I - Objektorientierung und Java
2017-04-03Einführung
Objektorientierung: Objekte und Klassen. Eigenschaften von Objekten.
2017-04-10Objektorientierung: Vererbung und Polymorphie
Wie vermeidet man Copy-and-Paste-Programming? Vererbung zwischen Klassen. Polymorpher Aufruf. Merkmalssuche in Vererbungshierarchien.
0000-00-00CRC-Karten-Methode
Bitte selbständig studieren! Wie findet man Klassen, ihre Merkmale und Assoziationen? Erste Schritte in der objekt-orientierten Analyse.
2017-04-21Testen mit Java, Frameworks und Javadoc
Achtung, wegen des Ostermontags findet die ausgefallene ST-Vorlesung statt OOSE am Freitag, den 21.4. in der 4. DS im HSZ/H/03 statt! Testen mit Java, Frameworks und Javadoc
II - Programmieren von Objektnetzen
2017-04-24Collections
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.
2017-05-08Konnektoren, Iteratoren und Kanäle (pipes)
Entwurfsmuster für Objektnetze: Kanäle (pipes) und Iteratoren. Senken. Konnektoren. Persistenz mit Serialisierung.
2017-05-12Entwurfsmuster
Achtung, wegen des Feiertags (1. Mai) findet die ausgefallene ST-Vorlesung statt OOSE am Freitag, den 12.5. in der 4. DS im HSZ/H/03 statt! Entwurfsmuster. Historischer Überblick. Model-View-Controller. Variabilitätsmuster: TemplateMethod, Strategy, Bridge.
2017-05-15Entwurfsmuster
Entwurfsmuster für Produktfamilien: Variabilitätsmuster, Erweiterungsmuster, Klebemuster.
2017-05-19Graphen in Java
Graphen als Realisierung von UML-Assoziationen. Graphbibliothek jgrapht.
III - Objektorientierte Analyse
2017-05-22Einfü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.
2017-05-29Strukturelle Analyse von Verbundobjekten
Strukturelle Analyse von großen, komplexen Objekten (Verbundobjekten). Verschiedene Sorten von Teilen und Rollen.
2017-05-29Strukturelle Analyse - Kontextmodell und Top-Level-Architektur
Strukturelle Analyse mit UML für Kontextmodell und Top-Level-Architektur. Einsatz von UML-Komponenten. Angebotene vs. benötigte Schnittstellen. Portklassen.
2017-06-12Verhaltensanalyse mit Aktionsdiagrammen
Dynamische Modellierung mit Aktivitätsdiagrammen und Zustandsautomaten (Statecharts). Protokollmaschinen und Steuerungsmaschinen. Kommunizierende Automaten.
2017-06-19Szenarioanalyse und dynamisches Modell
Szenario-Analyse für Anwendungsfalldiagramme (Realisierung von Anwendungsfällen). Kollaborationen. Querschneidende Verfeinerung mit Kollaborationen. EU-Rent-Fallstudie.
IV - Objektorientierter Entwurf
2017-06-26Einführung in die 4-Schichten-Architektur
Architektur. 4-Schichten-Architektur. Abstrakte Maschinen. Der Quasar-Architekturstil, Software-Blutgruppen.
2017-07-10Plattformanreicherung
Fortsetzung der Objektanreicherung durch Plattforminformation in Kollaborationen (Plattformkonnektoren).
2017-07-10Entwurf 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.
V - Software-Management
2017-07-10Projektmanagement und über die Herstellung großer Softwaresysteme
Projektmanagement. Zeitverfolgung. Einsatz des Salespoint-Frameworks im Praktikum. Softwaretechnik allgemein
Vorbereitung Praktikum
0000-00-00Programmierung interaktiver Systeme
Beispiele der Programmierung von GUI mit Java-AWT und Swing. Modulare Verbindung zwischen GUI und Anwendungslogik über Konnektoren. MVC-Frameworks. Spring.

Zu dieser Seite

Sebastian Götz
Letzte Änderung: 12.07.2016