An important aspect of software engineering is being able to precisely document intended and actual software behaviour. In other engineering disciplines, "precise documentation" means mathematical descriptions and models. In contrast, mathematical methods are not widely used to document software—primarily because software behaviour can depend on a large number of conditions, making it difficult to express the behaviour in a compact mathematical description.
Parnas Tables are a collection of tabular templates that address this problem by decomposing software behaviour into several sub-cases, each of which is simpler to express and to comprehend. In this talk, I will introduce Parnas Tables and describe how to use them to model software behaviour and how to evaluate whether they are correct. I will also review some industrial applications that have benefited from using Parnas Tables.
NOTE: This talk is aimed at upper-year undergraduate and graduate students.