Modulverantwortlicher
Prof. Dr. Peter Thiemann
Lehrveranstaltungstyp
Blended learning inkl. tutorieller Betreuung (Vorlesung mit Übung)
Turnus
Unregelmäßig
Sprache
Deutsch
Bedeutung innerhalb des Curriculums
Eines von mehreren zu belegenden Wahlpflichtmodulen in der Vertiefungsrichtung Algorithmik.
Voraussetzungen
Fundierte Programmierkenntnisse
Im Rahmen des Studiengangs IEMS:
Lernziele
Studenten kennen eine Palette von formalen und semiformalen Methoden zur Beschreibung von Programmiersprachen und zur Unterstützung der Softwareentwicklung. Sie kennen die formalen Grundlagen der Methoden und ihre Grenzen. Sie kennen Werkzeuge zur Unterstützung der Methoden und können sie einsetzen. Sie beherrschen grundlegende Testmethodiken und sind in der Lage ausgehend von Qualitätsanforderungen und formalen Spezifikationen Testpläne zu erstellen. Sie sind mit entsprechenden Testwerkzeugen vertraut und können automatische Testszenarien entwerfen, aufsetzen und durchführen.
Lehrinhalt
Die Veranstaltung gliedert sich in vier Teile:
- Spezifikation durch Typen (Operationelle Semantik, Objektorientierte Typsysteme, Protocol Checking, Werkzeuge: ELF, Twelf)
- Spezifikation durch Logik: Design by Contract (Monitoring vs. Static Checking, Hoare Kalkül, Separation Logics, Erzeugung von Verification Conditions, Werkzeuge: ESC/Java, Spec#)
- Semiformale Techniken: UML (Klassendiagramme, Zustandsdiagramme, Aktivitätsdiagramme, OCL, Metamodellierung, Werkzeuge: Eclipse Modeling Framework EMF/GMF)
- Testen (Testfallgenerierung aus Vor- und Nachbedingungen, Coverage Kriterien, Werkzeuge: JUnit)
Bei den Werkzeugen handelt es sich jeweils um spezielle Software, die in den Übungen praktisch eingesetzt wird.
Studien- und Prüfungsleistungen
Projekt, Abschlussklausur
Die Studenten arbeiten im Rahmen der Übungen in kleinen Projektgruppen mit den jeweiligen Werkzeugen. Diese Arbeiten münden in ein Abschlussprojekt, in dem alle Techniken zum Einsatz kommen.
Literatur
- Benjamin Pierce. Types and Programming Languages. MIT Press, 2002
- Bertrand Meyer. Object-Oriented Software Construction, 2nd edition. Prentice-Hall, 1997
- D’Souza, D. F. and A. C. Wills. Objects, Components, Frameworks with UML: The Catalysis Approach. Addison- Wesley, Reading, Mass., 1998
- Richters, M. A Precise Approach to Validating UML Models and OCL Constraints. Ph.D. thesis, Universität Bremen, 2001
- Boris Beizer. Software Testing Techniques. Von Nostrand Reinhold, 1990
- Mark Fewster, Dorothy Graham: Software Test Automation. Addison Wesley, 1999
- Manfred Broy, Bengt Jonsson, Joost-Pieter Katoen, Martin Leucker and Alexander Pretschner. Model-Based Testing of Reactive Systems: Advanced Lectures. LNCS. Springer- Verlag New York, Inc., 2005