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 languageEnglish
Title of host publicationProceedings - 25th IEEE International Conference on Software Analysis, Evolution and Reengineering, SANER 2018
Place of PublicationPiscataway, NJ
Number of pages11
ISBN (Electronic)978-1-5386-4969-5
Publication statusPublished - Mar 2018
EventSANER 2018: 25th IEEE International Conference on Software Analysis, Evolution and ReengineeringSoftware Analysis, Evolution and Reengineering - Campobasso, Italy
Duration: 20 Feb 201823 Feb 2018
Conference number: 25


ConferenceSANER 2018
Abbreviated titleSANER
Internet address

    Research areas

  • Measurement, Computer languages, Tools, Computational modeling, Sociology, Statistics, Software

ID: 37386937