Bereich: Informatik I, Vorlesung: 3 Std.
Zeit und Ort der Vorlesung: Mittwoch
14:00-15:30, Hörsaal FMI HS2, Donnerstag 11:15-12:00,
Hörsaal FMI HS 2
Beginn: Mittwoch, 24. Oktober 2007
Hörerkreis:
- Bachelorstudierende nach der alten Ordnung als Vertiefungsvorlesung im Schwerpunkt Software Engineering
- Bachelorstudierende nach der neuen Ordnung als Wahlvorlesung
- Diplomstudierende als vertiefende Vorlesung in der Praktischen Informatik
- Masterstudierende als Wahlfach im Fachgebiet Software Engineering
ETCS-Credits: 6
Zeit und Ort der Zentralübung:
Donnerstag
12:15-13:45, Multimediaraum FMI 00.08.038 ab 8. November 2007
Beginn: Mittwoch 31. Oktober 2007, 08:15-09:45, Multimediaraum FMI 00.08.038
Übungsleitung: Herbert Ehler und Tim Schmidt
Klausur: Die Klausur findet am 15. Februar 2008 im Hörsaal MW 0001 statt. Achtung: Die Verschiebung von 14:00 auf 12:00 Uhr wurde zurückgenommen. Der Beginn der Klausur bleibt also bei 14:00 Uhr. Bücher und eigene Skripten dürfen verwendet werden (Open book Klausur), die Bearbeitungszeit ist 90 Minuten. Beachten Sie bitte die Regelungen zur Anmeldung.
Falls für Sie keine Anmeldung über HIS-POS vorgeschrieben ist, können Sie
zur Anmeldung eine E-Mail schicken an ehler@in.tum.de mit den folgenden Daten: Anrede, Name, Vorname, Matrikelnummer, Geb.datum, Fachrichtung, E-Mail.
Die Ergebnisse zur Klausur können über mytum eingesehen werden. Das Aufgaben- und Lösungsblatt zur Klausur sind über die
Aufgabenseite erhältlich. Die Einsicht in die Klausur ist möglich am 11.03.2008, 11:00 -12:00 Uhr, im Raum 00.11.038.
Die Aufgabenblätter für
die Zentralübung werden regelmäßig hier veröffentlicht. Es ist unverzichtbar, sich mit den Aufgaben
auseinanderzusetzen, um sich den Vorlesungsstoff zu erarbeiten.
Für Fragen stehen die Übungsleiter nach der
Zentralübung zur Verfügung. Bei Bedarf werden hier auch Arbeits- und
Merkblätter veršffentlicht.
Aktuelle Mitteilungen
Inhalt:
Die Vorlesung vermittelt die grundlegende Technik und
Methodik für die Entwicklung großer Softwaresysteme.
Fragen der Projektorganisation und des Projektmanagements
werden in der Vorlesung "Projektorganisation und Management in
der Softwareentwicklung" behandelt.
1. Grundsätzliches zum Software Engineering
1.1 Software Engineering und seine
Bedeutung
1.2 Zielsetzung des Software
Engineering
1.3 Grundbegriffe
1.4 Erfolgsfaktoren im
Entwurfsprozess
1.5 Hauptfehlentwicklungsfehler
2. Vorgehensmodelle
2.1 Projektphasen und
Systemzergliederung
2.1.1 Das Produktmodell
2.1.2 Das Prozessmodell
2.1.3 Systembeschreibungen
2.2 Phasenmodelle
2.2.1 Problem- und Systemanalyse
2.2.2 Systementwurf und Softwarearchitektur
2.2.3 Implementierung
2.2.4 Modifikation, Anpassungen und
Weiterentwicklung
2.2.5 Allgemeine Bemerkungen zur Organisation der Arbeit
in Phasen
2.2.6 Prototypen
2.3 Gebräuchliche
Vorgehensmodelle
2.3.1 Phasenmodelle, Wasserfallmodell
2.3.2 Das V-Modell
2.3.3 Spiralmodell: Der Prototypansatz
2.3.4 Inkrementelles und evolutionäres
Vorgehensmodell
2.3.5 Experimentelles und exploratives Prototyping
2.3.6 Extreme Programming
2.3.7 Systemzergliederung in Komponenten
2.3.8 Allgemeine Bemerkungen zu Vorgehensmodellen
3. Beschreibungs- und Modellierungsmittel
3.1 Modellbildung und
Beschreibungsmittel
3.2 Systemmodelle
3.3 Datenmodellierung: Sorten, Werte
und Funktionen
3.3.1 Datenmodellierung durch algebraische Spezifikation
3.3.2 Datenmodellierung durch Sortendeklaration
3.3.3 Datenmodellierung durch E/R-Methoden
3.3.4 Datenmodell und Datenlexikon
3.4 Programm und
Systemkomponenten
3.4.1 Spezifikation von Funktionen
3.4.2 Prozedurspezifikation
3.4.3 Programmdarstellung
3.4.4 Module
3.5 Struktur- und Verteilungssicht:
Datenflussmodelle
3.6 Ablauf- und Prozesssicht
3.7 Verhalten von Komponenten
3.7.1 Zustandsübergangsdiagramme
3.7.2 Zustandsmaschinen mit Ein- und Ausgabe
3.7.3 Statecharts
3.7.4 Kontrollflussdiagramme
3.7.5 Zustandsübergangstabellen
3.7.6 Erweiterte Zustandsübergangsdiagramme
3.7.7 Funktionale Sicht/Black Box Sicht
3.7.8 Spezifikation interaktiver Komponenten
3.7.9 Weitere Beschreibungstechniken für Programme
3.8 Objektorientierte
Modellierung
3.8.1 Objektorientierung
3.8.2 Objektorientierte Datenmodelle
3.9 Umfassende
Beschreibungsmethoden
4. Systemanalyse - Requirements Engineering
4.1 Erfassung des
Problembereichs
4.2 Systemstudie
4.3 Systemanforderungen
4.3.1 Logisches Datenmodell
4.3.2 Funktionenmodell
4.3.3 Benutzerschnittstelle und -oberfläche
4.3.4 Sicherheitsmodell - Risikoanalyse
4.4 Validierung
4.5 Prototypen in der
Systemanalyse
5. Systementwurf
5.1 Datenmodellierung im
Entwurf
5.2 System- und
Softwarearchitekturen
5.2.1 Bestandteile einer Softwarearchitektur
5.2.2 Parallele Systemmodelle für Architekturen
5.2.3 Interaktive Systeme
5.2.4 Sequentielle Systemmodelle
5.2.5 Eigenschaften von Softwarearchitekturen
5.3
Komponentenspezifikation
5.3.1 Black Box Spezifikation
5.3.2 Validierung
5.3.3 Einbindung von vorgefertigten Komponenten
5.4 Verfeinerung
5.5 Methodische Ratschläge:
Entwurfsmuster
5.6 Fehlerbehandlung
5.7 Komponentengrobentwurf
5.8
Qualitätssicherung
5.8.1 Verifikation
5.8.2 Leistungsabschätzung
5.8.3 Entwurfsreviews
5.8.4 Prototyping
6. Implementierung
6.1 Implementierung des
Datenmodells
6.2 Implementierung der
Komponenten
6.2.1 Komponentenfeinentwurf
6.2.2 Komponenten- und Modulrealisierung
6.2.3 Einbindung vorgefertiter Codes, Generatoren
6.2.4 Komponentendokumentation
6.2.5 Zur Codierdisziplin
6.3 Realisierung der
Benutzerschnittstelle
6.4 Integration
6.5
Qualitätssicherung
6.5.1 Codeinspektion und Code-Reviews
6.5.2 Testen
6.5.3 Verifikation durch Korrektheitsbeweis
6.5.4 Zur Effektivität der
Qualitätssicherungsmassnahmen
6.5.5 Prinzipien im Komponentenentwurf
6.6 Auslieferung,
Systeminstallation, Wartung
6.6.1 Phasen bis zur Auslieferung
6.6.2 Aufwandsabschätzungen
6.6.3 Wartung
6.7 Weiterentwicklung, Legacy
Systeme
7 Prinzipien im Systementwurf
7.1 Dokumentation
7.2 Modularisierung
7.3 Datenabstraktion und
Verkapselung
7.4 Schnittstellen
7.5 Entwicklungs- und
Programmierstil
7.6 Wiederverwendung
7.7 Flexibilität,
Änderbarkeit
7.8 Benutzerschnittstellen
7.9 Robustheit
7.10 Effizienz
7.11 Zugriffssicherheit und
Datenschutz
7.12 Ausnahmebehandlung
7.13 Softwarearchitektur
7.14 Entwicklungsmethoden
7.15 Werkzeuge im
Softwareentwurf
7.16
Implementierungsplattform
|