Loading
     

Modulbeschreibung - Detailansicht

Wichtigste Meldungen anzeigenMeldungsfenster schließen
Moduldetails
Grundlagen der Programm- und Systementwicklung
Fakultät für Informatik
TUINFIN
6
1
5
IN2078
v1
2020S
Zuordnungen zu SPO-Versionen
Lehrveranstaltungen und Prüfungsveranstaltungen
Beschreibungen
11S
Export
Allgemeine Daten (Modulhandbuch)
Bachelor/Master
Einsemestrig
Wintersemester
Deutsch
Arbeitsaufwand (Work Load)
180
75
105
Studien- und Prüfungsleistungen
90-minütige Klausur, die die erwarteten Lernergebnisse und erworbenen Kompetenzen prüft. Die Studierenden sollen formale Spezifikationen erstellen können und die Grundlagen abstrakter Algebra und der Fixpunkttheorie beschreiben können. Sie sollen Beweise bzw. Widerlegungen mathematischer Zusammenhänge in diesen Gebieten insb. von Korrektheit und Terminierung erstellen.
N
J
Beschreibung
Modul IN0001: Einführung in die Informatik 1; Modul IN0003: Einführung in die Informatik 2; Modul IN0007: Grundlagen: Algorithmen und Datenstrukturen (empfohlen)
Nach der Teilnahme an dem Modul sind die Studierenden in der Lage, algebraische und axiomatische Spezifikationen einfacher IT-Systeme zu entwickeln. Sie können Spezifikationen durch schrittweise Verfeinerung ableiten. Sie verstehen die mathematischen Grundlagen abstrakter Algebra sowie der Fixpunkttheorie und können Konstruktionsprinzipien formaler Spezifikationen rechtfertigen. Sie verstehen die formalen Grundlagen objektorientierter, funktionaler und imperativer Programmierung und können klassische Korrektheitskalküle anwenden.
System- und Programmentwicklung umfasst die Gesamtheit aller Tätigkeiten, die bei der Erstellung von Software bzw. Programmen als in einer formalen Sprache abgefasste Beschreibungen von Daten und Algorithmen zur Lösung einer Aufgabe im Sinn einer Anwendung anfallen. Eine der großen Schwierigkeiten bei der Programmentwicklung besteht in der unmissverständlichen Beschreibung und Dokumentation der einem Programm zugrunde liegenden Modelle, Theorien, Strukturen, Entscheidungen und der verwendeten Ideen und zugehörigen Beschreibungsmittel. Die Vorlesung präsentiert die wissenschaftlichen Grundlagen, und damit die logische und mathematische Fundierung der dabei auftretenden Konzepte, Modelle und Methoden. Neben diesen Modellen und Beschreibungsmitteln ist für die systematische Programmentwicklung ein methodischer Rahmen erforderlich: Entwicklungsregeln zur Durchführung von Entwicklungsschritten sowie ein Konzept, das die Schritte bei einer Programmentwicklung in eine sinnvolle Reihenfolge bringt. In der Vorlesung werden einzelne Entwicklungsschritte behandelt und der Schwerpunkt auf die methodischen und beschreibungstechnischen Grundlagen des Software Engineerings gelegt. Es werden folgende Schwerpunkte für die Modellbildung, Spezifikation, Verfeinerung und Implementierung behandelt:
- Datenmodellierung: Abstrakte Beschreibung von Daten- und Rechenstrukturen
- Signaturen, Algebren, Modelle und Beschreibungsmittel
- Axiomatische Beschreibungen
- Datentypdeklarationen und Objektmodell
- Wechsel der Datenstruktur; schrittweise Entwicklung von Daten
- Modellierung von Rechenvorschriften und Algorithmen:
- funktionale Programmierung: Spezifikation, Verfeinerung und Verifikation
- Zuweisungsorientierte Programmierung: Spezifikation, Zusicherungen, Hoare-Regeln
- Prädikative Spezifikation, schrittweise Verfeinerung, Verifikation
- Geflechtstrukturen
- Spezifikation sequentieller OO-Programme
Das Modul besteht aus einer Vorlesung und einer begleitenden Übung. Die Inhalte der Vorlesung werden im Vortrag und durch Präsentationen vermittelt. Studierende sollen zum Studium der Literatur und der inhaltlichen Auseinandersetzung mit den Themen angeregt werden. In den Übungen werden teilweise in Gruppenarbeit gemeinsam konkrete Fragestellungen beantwortet und ausgesuchte Beispiele bearbeitet.
Folien in der Vorlesung; Tafel in den Übungen.
- M. Broy, R. Steinbrüggen. Modellbildung in der Informatik. Springer, 2003.
- E. W. Dijkstra. A Discipline of Programming. Prentice-Hall, 1976.
- M.A. Jackson. Software Requirements & Specification - a Lexicon of Practice, Principles and Prejudices. Addison-Wesley, 1995.
- B. Meyer. Objektorientierte Softwareentwicklung. Hanser/Prentice-Hall, 1990.
- F.L. Bauer und H. Wössner. Algorithmische Sprache und Programmentwicklung. Springer, 1981.
- N. Wirth. Algorithmen und Datenstrukturen. 3. Aufl. Teubner, 1983.
- R. Bird and P. Wadler. Introduction to Functional Programming. Prentice-Hall, 1988.
- K.R. Apt und E.R. Olderog. Programmverifikation. Springer, 1994.
Modulverantwortliche*r
Alexander Pretschner, Prof. Dr. (alexander.pretschner@tum.de)