Bereich: Informatik I, Vorlesung: 3 Std.
Zeit und Ort der Vorlesung: Donnerstag
8:00-9:00, Hörsaal MW0001, Freitag 8:30-10:00,
Hörsaal PH HS2
Beginn: Freitag, 24. Oktober 2003
Sprechstunde: Freitag 11:00-12:00 im
Besprechungszimmer 01.11.052 (in der Vorlesungszeit)
Hörerkreis: Studenten der Informatik im
Studiengang Bachelor und im Studiengang Diplom nach dem
Vordiplom
Voraussetzungen: Informatik bis zum
Vordiplom, Bachelor: Einführung in die Informatik I und II
Empfehlenswert für: Hauptfach und
Nebenfach Informatik, Bachelor Informatik im 3. Semester
Zeit und Ort der Zentralübung: Freitag
13:15-14:45, Hörsaal MI 00.04.011
Beginn: Freitag, 31. Oktober 2003
Übungsleitung: Herbert Ehler und Stefan Wagner
Klausur:
Die Klausur findet am 13. Februar 2004 von 13:15 bis
15:15 Uhr im Hörsaal PH HS1 (PH 2501) statt. Zur Anmeldung schicken Sie
bitte eine E-Mail an ehler@in.tum.de mit den für die Erstellung eines
Scheines erforderlichen Daten:
Anrede, Name, Vorname, Matrikelnummer, Geb.datum,
Fachrichtung, E-Mail.
Wenn aufgrund der für Sie gültigen Prüfungsordnung besondere Anforderungen
an den Leistungsnachweis bestehen, teilen Sie diese mit Ihrer Anmeldung bitte auch mit.
Zur Klausur sind Bücher und eigene Skripten zugelassen.
Klausuraufgaben
>Klausurlösung
Klausurnoten
Klausurstatistik
Der Termin für die Einsicht in die Klausur ist am Donnerstag, 29.04.04, 10:20 bis 11:00 Uhr
im Raum 01.09.011B. Die vollständige Notenliste hängt im Schaukasten im Flur zwischen den
Gebäudefingern 09 und 11 im 1. OG.
Die Aufgabenblätter für
die Zentralübung werden regelmäßig in der
Vorlesung verteilt. 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 in der
Vorlesung auch Arbeits- und
Merkblätter ausgeteilt.
Aktuelle Mitteilungen
There is a two-hour lecture for english-speaking students from
Allen Dutoit. You can find more information on the lecture
homepage.
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
Literatur (Wird im Lauf
des Semesters vervollständigt)
|