Softwareentwicklungsmethoden

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:

  • Diskrete Methoden

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

  1. Benjamin Pierce. Types and Programming Languages. MIT Press, 2002
  2. Bertrand Meyer. Object-Oriented Software Construction, 2nd edition. Prentice-Hall, 1997
  3. D’Souza, D. F. and A. C. Wills. Objects, Components, Frameworks with UML: The Catalysis Approach. Addison- Wesley, Reading, Mass., 1998
  4. Richters, M. A Precise Approach to Validating UML Models and OCL Constraints. Ph.D. thesis, Universität Bremen, 2001
  5. Boris Beizer. Software Testing Techniques. Von Nostrand Reinhold, 1990
  6. Mark Fewster, Dorothy Graham: Software Test Automation. Addison Wesley, 1999
  7. 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
 
Impressum© 2007-2011    iems – intelligente eingebettete mikrosysteme