{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,17]],"date-time":"2026-06-17T16:01:58Z","timestamp":1781712118550,"version":"3.54.5"},"reference-count":24,"publisher":"Elsevier BV","license":[{"start":{"date-parts":[[2020,12,1]],"date-time":"2020-12-01T00:00:00Z","timestamp":1606780800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/tdm\/userlicense\/1.0\/"},{"start":{"date-parts":[[2020,12,1]],"date-time":"2020-12-01T00:00:00Z","timestamp":1606780800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/legal\/tdmrep-license"},{"start":{"date-parts":[[2020,7,9]],"date-time":"2020-07-09T00:00:00Z","timestamp":1594252800000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by-nc-nd\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100001711","name":"Schweizerischer Nationalfonds zur F\u00f6rderung der Wissenschaftlichen Forschung","doi-asserted-by":"publisher","id":[{"id":"10.13039\/501100001711","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100007601","name":"Horizon 2020","doi-asserted-by":"publisher","id":[{"id":"10.13039\/501100007601","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["elsevier.com","sciencedirect.com"],"crossmark-restriction":true},"short-container-title":["Journal of Systems and Software"],"published-print":{"date-parts":[[2020,12]]},"DOI":"10.1016\/j.jss.2020.110726","type":"journal-article","created":{"date-parts":[[2020,7,8]],"date-time":"2020-07-08T11:34:33Z","timestamp":1594208073000},"page":"110726","update-policy":"https:\/\/doi.org\/10.1016\/elsevier_cm_policy","source":"Crossref","is-referenced-by-count":62,"special_numbering":"C","title":["Toward a catalog of software quality metrics for infrastructure code"],"prefix":"10.1016","volume":"170","author":[{"given":"Stefano","family":"Dalla Palma","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Dario","family":"Di Nucci","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Fabio","family":"Palomba","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Damian Andrew","family":"Tamburri","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"78","reference":[{"key":"10.1016\/j.jss.2020.110726_b1","series-title":"2017 IEEE\/ACM 39th International Conference on Software Engineering Companion (ICSE-C)","first-page":"497","article-title":"Devops: introducing infrastructure-as-code","author":"Artac","year":"2017"},{"key":"10.1016\/j.jss.2020.110726_b2","series-title":"DevOps: A Software Architect\u2019s Perspective","author":"Bass","year":"2015"},{"issue":"4\u20135","key":"10.1016\/j.jss.2020.110726_b3","doi-asserted-by":"crossref","first-page":"531","DOI":"10.1007\/s10664-011-9173-9","article-title":"Evaluating defect prediction approaches: a benchmark and an extensive comparison","volume":"17","author":"D\u2019Ambros","year":"2012","journal-title":"Empir. Softw. Eng."},{"key":"10.1016\/j.jss.2020.110726_b4","series-title":"Software Metrics: a Rigorous and Practical Approach","author":"Fenton","year":"2014"},{"key":"10.1016\/j.jss.2020.110726_b5","series-title":"Refactoring: Improving the Design of Existing Programs","author":"Folwer","year":"1999"},{"key":"10.1016\/j.jss.2020.110726_b6","series-title":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","first-page":"580","article-title":"Adoption, support, and challenges of infrastructure-as-code: Insights from industry","author":"Guerriero","year":"2019"},{"issue":"6","key":"10.1016\/j.jss.2020.110726_b7","doi-asserted-by":"crossref","first-page":"1276","DOI":"10.1109\/TSE.2011.103","article-title":"A systematic literature review on fault prediction performance in software engineering","volume":"38","author":"Hall","year":"2011","journal-title":"IEEE Trans. Softw. Eng."},{"key":"10.1016\/j.jss.2020.110726_b8","series-title":"DevOps for Developers","first-page":"135","article-title":"Infrastructure as code","author":"H\u00fcttermann","year":"2012"},{"key":"10.1016\/j.jss.2020.110726_b9","series-title":"Network Function Virtualization: Towards the Commoditization of Middle Boxes","author":"Jarschel","year":"2013"},{"key":"10.1016\/j.jss.2020.110726_b10","series-title":"Mastering Ansible","author":"Keating","year":"2015"},{"issue":"3","key":"10.1016\/j.jss.2020.110726_b11","doi-asserted-by":"crossref","first-page":"401","DOI":"10.1108\/02640471011051981","article-title":"Open card sorting and factor analysis: a usability case study.","volume":"28","author":"Lewis","year":"2010","journal-title":"Electron. Libr."},{"key":"10.1016\/j.jss.2020.110726_b12","doi-asserted-by":"crossref","DOI":"10.1109\/MCC.2018.022171666","article-title":"Tosca solves big problems in the cloud and beyond!","author":"Lipton","year":"2018","journal-title":"IEEE Cloud Comput."},{"key":"10.1016\/j.jss.2020.110726_b13","series-title":"Tosca simple profile in yaml version 1.3","author":"Matt\u00a0Rutkowski","year":"2019"},{"key":"10.1016\/j.jss.2020.110726_b14","series-title":"Infrastructure as Code: Managing Servers in the Cloud","author":"Morris","year":"2016"},{"key":"10.1016\/j.jss.2020.110726_b15","doi-asserted-by":"crossref","unstructured":"Moser, R., Pedrycz, W., Succi, G., 2008. A comparative analysis of the efficiency of change metrics and static code attributes for defect prediction. In: Proceedings of the 30th International Conference on Software Engineering. pp. 181\u2013190.","DOI":"10.1145\/1368088.1368114"},{"key":"10.1016\/j.jss.2020.110726_b16","doi-asserted-by":"crossref","first-page":"164","DOI":"10.1016\/j.jss.2017.03.044","article-title":"Source code metrics: A systematic mapping study","volume":"128","author":"Nu\u00f1ez-Varela","year":"2017","journal-title":"J. Syst. Softw."},{"key":"10.1016\/j.jss.2020.110726_b17","series-title":"2013 35th International Conference on Software Engineering (ICSE)","first-page":"432","article-title":"How, and why, process metrics are better","author":"Rahman","year":"2013"},{"key":"10.1016\/j.jss.2020.110726_b18","doi-asserted-by":"crossref","unstructured":"Rahman, A., Parnin, C., Williams, L., 2019. The seven sins: Security smells in infrastructure as code scripts. In: Proceedings of the 41st International Conference on Software Engineering. pp. 164\u2013175.","DOI":"10.1109\/ICSE.2019.00033"},{"key":"10.1016\/j.jss.2020.110726_b19","doi-asserted-by":"crossref","first-page":"148","DOI":"10.1016\/j.infsof.2019.04.013","article-title":"Source code properties of defective infrastructure as code scripts","volume":"112","author":"Rahman","year":"2019","journal-title":"Inf. Softw. Technol."},{"key":"10.1016\/j.jss.2020.110726_b20","series-title":"2018 11th International Conference on the Quality of Information and Communications Technology (QUATIC)","first-page":"220","article-title":"Code smells in infrastructure as code","author":"Schwarz","year":"2018"},{"key":"10.1016\/j.jss.2020.110726_b21","series-title":"2016 IEEE\/ACM 13th Working Conference on Mining Software Repositories (MSR)","first-page":"189","article-title":"Does your configuration code smell?","author":"Sharma","year":"2016"},{"issue":"9","key":"10.1016\/j.jss.2020.110726_b22","doi-asserted-by":"crossref","first-page":"72","DOI":"10.1109\/MCOM.2015.7263348","article-title":"Software defined 5g networks for anything as a service [guest editorial]","volume":"53","author":"Soldani","year":"2015","journal-title":"IEEE Commun. Mag."},{"key":"10.1016\/j.jss.2020.110726_b23","series-title":"2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER)","first-page":"164","article-title":"How good is your puppet? an empirically defined and validated quality model for puppet","author":"Van der Bent","year":"2018"},{"key":"10.1016\/j.jss.2020.110726_b24","series-title":"2009 IEEE International Conference on Software Maintenance","first-page":"274","article-title":"An investigation of the relationships between lines of code and defects","author":"Zhang","year":"2009"}],"container-title":["Journal of Systems and Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S0164121220301618?httpAccept=text\/xml","content-type":"text\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S0164121220301618?httpAccept=text\/plain","content-type":"text\/plain","content-version":"vor","intended-application":"text-mining"}],"deposited":{"date-parts":[[2025,9,27]],"date-time":"2025-09-27T23:22:50Z","timestamp":1759015370000},"score":1,"resource":{"primary":{"URL":"https:\/\/linkinghub.elsevier.com\/retrieve\/pii\/S0164121220301618"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,12]]},"references-count":24,"alternative-id":["S0164121220301618"],"URL":"https:\/\/doi.org\/10.1016\/j.jss.2020.110726","relation":{},"ISSN":["0164-1212"],"issn-type":[{"value":"0164-1212","type":"print"}],"subject":[],"published":{"date-parts":[[2020,12]]},"assertion":[{"value":"Elsevier","name":"publisher","label":"This article is maintained by"},{"value":"Toward a catalog of software quality metrics for infrastructure code","name":"articletitle","label":"Article Title"},{"value":"Journal of Systems and Software","name":"journaltitle","label":"Journal Title"},{"value":"https:\/\/doi.org\/10.1016\/j.jss.2020.110726","name":"articlelink","label":"CrossRef DOI link to publisher maintained version"},{"value":"article","name":"content_type","label":"Content Type"},{"value":"\u00a9 2020 The Authors. Published by Elsevier Inc.","name":"copyright","label":"Copyright"}],"article-number":"110726"}}