01793 - Software Engineering 1

Kursbeschreibung

Nach dem Kurs "Management von Softwareprojekten" beleuchtet 01793 nun die Phasen von der Anforderungsermittlung bis zum Feinentwurf und stoppt vor der Implementierung und dem Test (letzteres finde ich schade). Spannender Stoff, gut zu lesen. Und das beste: durch den Kurs sieht sich ein Beispiel, nämlich die Entwicklung des "SeminarIS", das Seminar Informations System. Eine Kurseinheit gliedert sich in die Theorie und wird dann anhand des Beispiels von A-Z praktisch durchgespielt. Hilft ungemein beim Verständnis. Absolute Empfehlung.

Eine Buchempfehlung habe ich hier leider nicht. Der Kurs lässt sich dank des Aufbaus (Theorie -> Beispiel) ohne weiterführendes Material sehr gut bearbeiten.

Prüfung

Geprüft hat mich Prof. Dr. Desel. Auch hier: unbedingte Empfehlung. Fairer Prüfer. Die schlechte Note war durch mich begründet, da ich in zwei Themen, die ich im Schlaf beherrsche einen kleinen Blackout hatte. Außerdem sollte man für das Beispiel an Homonymen nicht "Schloss-Schloss" wählen, das haben anhand der Prüfungsprotokolle der Fachschaft wohl zu viele gemacht 😉

Kursinhalt

Der Kurs gliedert sich in Anforderungsanalyse, Analyse, Grobentwurf, Architekturentwurf und Feinentwurf.

Kurseinheit 1: Überblick

Kompletter Überblick über den Kurs und Besprechung vom Wasserfallmodell, XP und RUP. V-Modell wird nur angeschnitten. Dann alle Aspekte der Managements, ISO Normen kurz überflogen und abschließend eine kurze Einleitung für SEU (Software Entwicklungs-Umgebung).

Kurseinheit 2 und 3: strukturelle und Verhaltensmodellierung

Alles was in UML darstellbar ist und was nicht: Objekte, zustände, Assoziationen, Identitäten, Klassen und Instanzen, Attribute und Operationen, Aggregationen und Kompositionen, Ableitungen, Generalisierung und Substituierbarkeit, etc. Sichtbarkeit, Schnittstellen, Stereotype, Abhängigkeiten, abstrakte Klassen und Interfaces, Spezifikation von Attributen und Operationen, Zusicherungen, textuelle Spezifikation sowie Pakete. Als Verhaltensmodellierung behandeln wir: Anwendungsfalldiagramme, Interaktionsdiagramme (Sequenzdiagramme, synchrone und asynchrone Nachrichten, Kollaborationsdiagramme, Interaktionsdiagramme) und Zustandsdiagramme mit zusammengesetzten Zuständen, Ereignissen, Aktivitäten, Übergängen und Bedingungen.

Kurseinheit 4: Anforderungsermittlung

Anwendungsfallmodellierung (Vorgehensweise, Szenarien, Akteure, Beziehungen zwischen Anwendungsfällen und Heuristiken), Domänen-Klassenmodell und Modellbereinigung, Benutzungsoberfläche, Verhaltendmodellierung, Verifikation und Validierung.

Kurseinheit 5: Analyse

Vorgehensweise, Klassenmodellierung (Heuristiken), Entitäts- und Schnittstellenklassen, Kontrollklassen, Bereinigung und Pakete. Verhaltensmodellierung, Verifikation (Intra- und Inter-Modell-Spezifikation).

Kurseinheit 6: Grob- und Architekturentwurf

Grundkonzepte: Geheimnis, Kohäsion udn Kopplung, Konformität, Entwurf mit Verträgen, Interfaces, Heuristiken. Java im Entwurf, Entwurfsmuster (wichtig!) mit Struktur-, Verhaltens- und Erzeugungsmustern. Grobentwurf mit der Schichtenarchitektur (externe Schicht, Anwendungsschicht, persistente Datenschicht), Modellverfeinerung, Modellbereinigung, Verhaltensmodellierung.

Kurseinheit 7: Feinentwurf

Benutzungsschnittstelle: Fensterklassen, Sicht-Klassen. Anwendungskern: Systemdeterminiertes, ablauforientiertes Verhalten. Transformation der Assoziationen und Beziehungen. Datenhaltung und Abbildung der Klassen in Tabellen, Persistenz-Rahmenwerke, Redundanzvermeidung, Wiederverwendbarkeit.

 

Beitrag kommentieren