A. Schwald WS 2000/2001
Vorlesung Software Engineering - Inhalt
Die Vorlesung behandelt einführend Grundlagenprobleme des Software Engineering. Prinzipien,
Vorgehensweisen und Werkzeuge zur Strukturierung von Software und von Entwicklungsprozessen,
insbesondere die objektorientierte Entwicklung mit der Unified Modeling Language (UML) bilden den Hauptteil
des Stoffes. Zusammenfassend werden ganzheitliche Ansätze zur Qualitätsverbesserung im Software Engineering
und zur Bewertung von Software dargestellt.
Verfügbare Zeit: ca. 60 Stunden (51 - 69h)
1. Hauptprobleme und Lösungsansätze (3 - 5 h)
1.1 Die Bedeutung von Software allgemein,
1.2 Eigenschaften von Software
1.3 Software-Engineering: Ziele, Inhalte und Abgrenzung
1.4 Hauptproblembereiche bei der Entwicklung, Nutzung und Wartung
1.5 Ansätze zu Verbesserungen, Erfolgsfaktoren in Software-Projekten
1.6 Risk Mangement, Umgang mit Software-Risiken
2. Der Software-Lebenszyklus (8 - 10 h)
2.1 Entwicklung, Nutzung und Wartung von Software
2.2 Software-Management (Funktionen, Rollen, Formen der Aufbau- und Ablauforganisation)
2.3 Strukturierung der Software-Entwicklung (Wasserfallmodell, Iteratives Vorgehen, Spiralmodell)
2.4 Projektplanung: Vom Pflichtenheft zum Arbeitspaket
2.5 Aufwandsschätzung (Ansätze, Function points, COCOMOII, Schätzklausur)
3. Prinzipien und Strukturmodelle (6 - 8 h)
3.1 Hierarchien und Netze (Definition, Beispiele)
3.2 Prinzipien für den Software-Entwurf
(Bedeutung, Beispiele: Modularisierung, Geheimnisprinzip, Lokalität, separation of concerns u. a.)
3.3 Strukturmodelle zur Systemzerlegung und Modularisierung (Schichtenmodell, Modularisierungskriterien,
Objektstrukturen, Gestaltung von Schnittstellen)
3.4 Verhaltensmodelle (Endliche Automaten, Petrinetze)
4. Analyse- und Entwurfsverfahren im Überblick (8 - 10 h)
4.1 Analyse und Entwurf - Abgrenzung und Abhängigkeiten/Überschneidungen
4.2 Funktionale und ablauforientierte Zerlegung (SADT, HIPO, JSP)
4.3 Datenflussorientierte Zerlegung (SA/SD, JSP),
4.4 Datenmodelle für den Datenbankentwurf (insbes. ER-Modell)
4.5 Objektorientierung (OO-Analyse und -Entwurf, Vererbung und Delegation)
4.6 Komponenten (Wiederverwendung, Schnittstellen, Anpassbarkeit)
5. OO-Entwicklung mit UML (12 - 16 h)
5.1 Allgemeine Charakterisierung der UML
5.2 Anwendungsfälle (use cases)
5.3 Klassen- und Objektdiagramme
5.4 Interaktion von Objekten (Sequenz- und Kollaborationsdiagramme)
5.5 Verhalten von Objekten (Zustandsdiagramme)
5.6 Implementierungsdiagramme
--- falls Zeit bleibt:
5.7 Requirements Engineering mit UML (Aktivitätsdiagramme und Anwendungsfälle,
Änderungen von Modellen)
5.8 Abbildung von UML auf Programmiersprachen (Ada95, Java)
5.9 Die UML-Beschreibung (UML-Metamodell, OCL)
6. Konfigurationsmanagement (4 - 6 h)
6.1 Software-Entwicklung als Verwaltung von Dokumenten
6.2 Änderungsforderungen für Produkte und Zwischenergebnisse
6.3 Systemversionen, Dokumentenklassen und Zugriffsrechte
6.4 KM - Aufgaben, Rollen und Werkzeuge
6.5 System building
7. Qualitätssicherung und Qualitätsmanagement in der Software-Entwicklung (4 - 6 h)
-- evt. kürzen/weglassen (Spezialvorlesung)
7.2 Qualitätsmanagement: Einbettung der Qualitätssicherung in ein Projekt
7.1 Aufgaben der Qualitätssicherung bei der Entwicklung und Wartung von Software
7.3 Allgemeine Prüfmethoden für Spezifikationen und Programme (Reviews)
7.4 Qualitätsmodelle (ISO9000, CMM, PSP, SPICE)
8. Bewertung von Software und von Entwicklungsprozessen. (6 - 8 h)
8.1 Produkt- und Prozessziele, der GQM-Ansatz (Goals-Questions-Metrics)
8.2 Software-Qualitätsattribute und deren Messung
8.3 Prozesskennzahlen (Leistung, Ressourcen, Änderungen und Fehler)
8.4 Produktkennzahlen (Größe, Leistung, Zuverlässigkeit, Benutzbarkeit)
Stand: 8. 8. 2000