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