Abstract
Puppet is a declarative language for configuration management that has rapidly gained popularity in recent years. Numerous organizations now rely on Puppet code for deploying their software systems onto cloud infrastructures. In this paper we provide a definition of code quality for Puppet code and an automated technique for measuring and rating Puppet code quality. To this end, we first explore the notion of code quality as it applies to Puppet code by performing a survey among Puppet developers. Second, we develop a measurement model for the maintainability aspect of Puppet code quality. To arrive at this measurement model, we derive appropriate quality metrics from our survey results and from existing software quality models. We implemented the Puppet code quality model in a software analysis tool. We validate our definition of Puppet code quality and the measurement model by a structured interview with Puppet experts and by comparing the tool results with quality judgments of those experts. The validation shows that the measurement model and tool provide quality judgments of Puppet code that closely match the judgments of experts. Also, the experts deem the model appropriate and usable in practice. The Software Improvement Group (SIG) has started using the model in its consultancy practice.
Original language | English |
---|---|
Title of host publication | 25th IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER 2018) |
Publisher | IEEE |
Pages | 164-174 |
Number of pages | 11 |
ISBN (Electronic) | 9781538649695 |
DOIs | |
Publication status | Published - 5 Apr 2018 |
Event | 25th IEEE International Conference on Software Analysis, Evolution and Reengineering 2018 - Campobasso, Italy Duration: 20 Mar 2018 → 23 Mar 2018 |
Conference
Conference | 25th IEEE International Conference on Software Analysis, Evolution and Reengineering 2018 |
---|---|
Abbreviated title | SAMER 2018 |
Country/Territory | Italy |
City | Campobasso |
Period | 20/03/18 → 23/03/18 |
Keywords
- Measurement
- Computer languages
- Tools
- Computational modeling
- Sociology
- Statistics
- Software