Understanding Formal Specifications through Good Examples

Alex Gerdes, John Hughes, Nicholas Smallbone, Stefan Hanenberg, Sebastian Ivarsson, Meng Wang

Research output: Chapter in Book/Report/Conference proceedingConference Contribution (Conference Proceeding)

193 Downloads (Pure)

Abstract

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.
Original languageEnglish
Title of host publication17th ACM Erlang Workshop 2018
Subtitle of host publicationProceedings of the 17th ACM SIGPLAN International Workshop on Erlang
PublisherAssociation for Computing Machinery (ACM)
Pages13-24
ISBN (Print)9781450358248
DOIs
Publication statusPublished - 29 Sep 2018

Structured keywords

  • Programming Languages

Fingerprint

Dive into the research topics of 'Understanding Formal Specifications through Good Examples'. Together they form a unique fingerprint.

Cite this