Specification Mining
Seminar – WS 2011/12

Lehrstuhl für Softwaretechnik (Prof. Zeller)
Universität des Saarlandes – Informatik
Campus E1 1
66123 Saarbrücken
E-mail: specmine2011@st.cs.uni-saarland.de
Telefon: +49 681 302-70970

Deutschsprachige Startseite Page d'acceuil en fran?ais English home page

About this Seminar

Sample model

Many software systems are poorly documented. Developers commonly spend more time implementing new functionality than documenting existing one. Underdocumented software is hard to understand and harder to evolve.

There is way too many bugs in software. Using automated testing it has become possible to automatically generate test cases to explore program behaviour. If only we could automatically distinguish intended from unintended program behaviour, we could help developers by automatically uncovering bugs in software, making it much easier to develop reliable software.

Specifications can help address both of these issues: They document intended software behaviour, help in software maintenance, make it easier to refactor or add new features to software, and help in uncovering software bugs. If we have a specification we can answer many questions on software:

  • What is this code supposed to do?
  • Does this code behave as intended, even in edge cases?
  • Will this code still work if I change it?
  • Are there any bugs in this code?

Everybody agrees it is crucial to have specifications in software, yet 99% of all software does not have any of them. This seminar focuses on how to fix that by automatically mining specifications from software.

This seminar is going to loosely be based on the book Mining Software Specifications published by CRC Press. We are going to make it available as part of the seminar and at the Campus Bibliothek Informatik + Mathematik as necessary.

Place and Time

  • Weekly meeting: Every Monday, 9:00 - 10:00, Building E1.1, Room 1.09.
  • Summary hand-in: Until Sunday, 17:00. Send a PDF by mail to specmine2011@st.cs.uni-saarland.de, include your student id.

Important Dates

Schedule for Saturday, March 17

  1. 9:30 – 10:00: Introduction to Specification Mining:
    • Based on Chapter 1 of the book, written by David Lo, Siau-Cheng Khoo, Chao Liu, and Jiawei Han
    • Assigned to: Mehdi
  2. 10:00 – 10:30: Mining annotated Finite-State Automatons:
    • Based on Chapter 2 of the book, written by Leonardo Mariani, Fabrizio Pastore, Mauro Pezzè, and Mauro Santoro
    • Assigned to: Oliver
  3. 10:30 – 11:00: Dynamically Discovering Program Invariants (Daikon):
  4. 30 minute break

  5. 11:30 – 12:00: Grammar Inference Technique for State Machine Mining:
    • Based on Chapter 3 of the book, written by Neil Walkinshaw and Kirill Bogdanov
    • Assigned to: Evica
  6. 12:00 – 12:30: Mining API Usage Protocols from Large Method Traces:
    • Based on Chapter 4 of the book, written by Michael Pradel and Thomas R. Gross
    • Assigned to: Krishna
  7. 12:30 – 13:00: Generating Test Cases for Specification Mining (Tautoko):
  8. 60 minute break with pizza

  9. 14:00 – 14:30: Static API Specification Mining and Source Code Model Checking:
    • Based on Chapter 5 of the book, written by Mithun Acharya and Tao Xie
    • Assigned to: Daniil
  10. 14:30 – 15:00: Finding Usage Patterns and Their Violations by Mining Software Repositories (DynaMine):
    • Based on Chapter 7 of the book, written by Benjamin Livshits and Thomas Zimmermann
    • Assigned to: Andreas
  11. 15:00 – 15:30: Automatic Inference and Effective Application of Temporal Specifications:
    • Based on Chapter 8 of the book, written by Jinlin Yang and David Evans
    • Assigned to: Karsten
  12. 30 minute break

  13. 16:00 – 16:30: Specification Inference for Explicit Information Flow Problems (Merlin):
    • Based on Chapter 11 of the book, written by Benjamin Livshits, Aditya V. Nori, Sriram K. Rajamani, and Anindya Banerjee
    • Assigned to: Marie-Therese
  14. 16:30 – 17:00: Lightweight Mining of Object Usage:
    • Based on Chapter 12 of the book, written by Andrzej Wasylkowski and Andreas Zeller
    • Assigned to: Mykola
  15. 17:00 – 17:30: Mining temporal specifications from object usage:

Requirements for successful participation

  • Important: You can only take part in this seminar after you have successfully registered for it. Registration is now closed.
  • Prerequisites: This seminar is suitable for all students, bachelor's or master's, who are interested in software engineering and its applications. You don't need to have any prior knowledge regarding the subject, however participation in any other course offered by the Software Engineering chair might be useful.
  • Hands-on project: Daikon
  • For each meeting:
    • Hand in a summary until Sunday, 17:00 before each meeting. Send a PDF by mail to specmine2011@st.cs.uni-saarland.de, include your student id.
    • Your summary should give a good overview of the material that will be discussed in the following session. It is intended to show us that you familiarized yourself with the material.
    • You should also include ~3 questions on the material to prepare yourself for the discussion.
    • On each session we will ask one student to kick-start the discussion based on their summary (~5 minutes). This is an opportunity for you to get early feedback on your presentation style.
    • We also offer (ungraded) opportunities to present your summary in form of a five-minute presentation, allowing you to get early feedback on your presentation style.
  • End-term presentation (see above)
  • Grading: Your final grade will consist of the following components:
    • 40 % based on your final presentation
    • 20 % based on the annotated slides
    • 40 % based on participation in discussions / handed-in summaries / hands-on projects


Please remember to register yourself in the HISPOS system. We can only provide you with a certificate ("Schein") at the end of the term, if you have registered for our seminar in the HISPOS system. Information on how to register is available here.


<webmaster@st.cs.uni-saarland.de> · http://www.st.cs.uni-saarland.de/edu/specmine11/ · Stand: 2018-04-05 13:40