Authors
Jorge Mendes, Jacome Cunha, Francisco Duarte, Gregor Engels, Joao Saraiva, & Stefan Sauer
Abstract
Spreadsheets are used in professional business contexts to make decisions based on collected data. Usually, these spreadsheets are developed by end users (e.g. accountants) in an ad-hoc way.
The effect of this practice is that the business logic of a concrete spreadsheet is not explicit to them. Thus, its correctness is hard to assess and users have to trust.
We present an approach where structure and computational behavior of a spreadsheet are specified by a model with a process-like notation based on combining pre-defined functional spreadsheet services with typed interfaces.
This allows for a consistent construction of a spreadsheet by defining its structure and computational behavior as well as filling it with data and executing the defined computational behavior. Thus, concrete spreadsheets are equipped with a specification of their construction process. This supports their understanding and correct usage, even in case of legacy spreadsheets.
The approach has been developed in cooperation with an industrial partner from the automotive industry.
Sample
The process of creating and executing a construction process for spreadsheets is organized in three distinct phases:
- Phase 1. Two distinct and parallel tasks are performed: requirements elicitation for the spreadsheet application, and a toolbox of reusable, parameterizable, and typed functional spreadsheet services (e.g. insert a pivot table, insert a chart) is provided.
- Phase 2. The functional spreadsheet services from the toolbox are instantiated and integrated in the construction process.
- Phase 3. The construction process is (automatically) enacted by the spreadsheet user, which means that a spreadsheet is created, filled with data and its functional services executed.
Publication
2017, International Conference on Software Engineering, May, pages 356-358
Full article
Towards systematic spreadsheet construction processes
Also see
Summary poster and expanded version from VL/HCC October 2017