Understanding formal specifications through good examples
Paper i proceeding, 2018

Formal specifications of software applications are hard to understand, even for domain experts. Because a formal specification is abstract, reading it does not immediately convey the expected behaviour of the software. Carefully chosen examples of the software’s behaviour, on the other hand, are concrete and easy to understand—but poorly-chosen examples are more confusing than helpful. In order to understand formal specifications, software developers need good examples.

We have created a method that automatically derives a suite of good examples from a formal specification. Each example is judged by our method to illustrate one feature of the specification. The generated examples give users a good understanding of the behaviour of the software. We evaluated our method by measuring how well students understood an API when given different sets of examples; the students given our examples showed significantly better understanding.

Formal specification



property-based testing


Alex Gerdes

Chalmers, Data- och informationsteknik, Funktionell programmering

Stefan Hanenberg

Duisburg-Essen universitet

Sebastian Ivarsson

John Hughes

Chalmers, Data- och informationsteknik, Funktionell programmering

Nicholas Smallbone

Chalmers, Data- och informationsteknik, Funktionell programmering

Meng Wang

University Of Kent


17th ACM SIGPLAN International Workshop on Erlang
St Louis, USA,

Verktyg för snabb analys av globala system med hjälp av språk för funktionell och villkors-programmering

Europeiska kommissionen (Horisont 2020), 2015-02-01 -- 2018-01-31.

Systematisk testning av cyberfysiska system (SyTeC)

Vetenskapsrådet (VR), 2017-01-01 -- 2022-12-31.

Property-based testing of Web services (PROWESS)

Europeiska kommissionen (FP7), 2012-10-01 -- 2015-09-30.


Annan data- och informationsvetenskap


Datavetenskap (datalogi)


Informations- och kommunikationsteknik



Mer information

Senast uppdaterat