Should we believe the 20:80 'rule' for software defects?

by Martin Shepperd


A major driver for much of our software quality assurance and testing activity is the intuition that defects are not distributed uniformly. Thus the ability to identify the few components that contain the many defects can enable testing resources to be allocated efficiently. This is frequently referred to as the 20:80 rule.

So I pose the question, what evidence is there for this rule? More specifically, what is our best estimate of the proportion of defects covered by the 20% most defect-prone components? Is it 80%? To answer this I describe the results of a systematic search to locate all relevant evidence. This is then used as input to a Bayesian hierarchical meta-analysis which suggests, encouragingly, there is indeed support for this intuition. However, this conclusion comes with two caveats. One, there is some diversity between individual software systems and two, if our population is intended to be any software system then the sample is biased. Nevertheless, it is gratifying when software developer intuition is supported by rigorous analysis of the evidence!

Martin Shepperd received a PhD in computer science from the Open University in 1991 for his work in measurement theory and its application to empirical software engineering. He is professor of Software Technology and Modelling at Brunel University London, UK. Previously he has worked as a software developer for HSBC and also as COPUS Fellow in the Parliamentary Office of Science & Technology. He has published more than 180 refereed papers and three books in the areas of software engineering and machine learning. He is a fellow of the British Computer Society.


Managing Quality in Software and Systems Engineering: A Modeling Perspective

by Manuel Wimmer


We are currently facing a dramatically increasing complexity in engineering, operation, and management of systems with the emergence of Cyber-Physical Systems (CPS) and the Internet-of-Things (IoT). This demands for comprehensive and systematic views on all system aspects (e.g., mechanical engineering, electrical engineering, and software engineering) throughout the whole system life-cycle, moving Software Engineering closer to Systems Engineering.

To engineer such interdisciplinary systems, modeling is traditionally considered as the technique to understand and simplify reality through abstraction. In addition, models are nowadays used beyond the engineering phases by connecting them to the observed runtime data of the operating systems in so-called digital twins. However, in order to use models and their digital twin extensions in an effective and efficient way, the quality of models must be ensured throughout the complete system life-cycle.

In my talk, I will outline several concepts and techniques to assess, and if required, to improve the quality of models and associated artefacts, e.g., model transformations, language definitions, and digital twins. In particular, I will talk about AI-based techniques, which can be applied directly on models to improve their quality, e.g., by finding refactoring sequences. Finally, I will conclude with some lessons learned from several projects and outline future challenges for managing the quality of models in software and systems engineering.

Manuel Wimmer is a full professor and head of the Department of Business Informatics – Software Engineering at the Johannes Kepler Univ. Linz, Austria. He received his Ph.D. and Habilitation from TU Wien, Austria. He has been a research associate at the University of Malaga, Spain, a visiting professor at the University of Marburg, Germany as well as at TU Munich, Germany, and an assistant professor at the Business Informatics Group (BIG), TU Wien, Austria. Currently, he is also leading the Christian Doppler Laboratory on Model-Integrated Smart Production (CDL-MINT). In this context, he is developing modeling approaches for smart production facilities, as well as techniques for the continuous evolution of such systems based on production information gathered and analyzed at runtime. Moreover, he is/was involved in several national and international projects dealing with the foundations and application of model engineering techniques, especially metamodeling and model transformations, for domains such as tool interoperability, legacy tool modernization, model versioning and evolution, software reverse engineering, and migration, web engineering including social web and semantic web, cloud computing, and flexible production systems. He is co-author of the book Model-driven Software Engineering in Practice (Morgan & Claypool, second edition, 2017).


Providing software quality at scale: learnings, opportunities and future

by Jaime Jorge


The digital transformation of the prototypical enterprise has made software a starting requirement to start a company. In other words: all modern companies are software companies. The role of quality, where software is ubiquitous, becomes critical and intertwined in the fabric of software development.

In this talk we'll benefit from 8 years of building a code quality and static code analysis product, serving 750 companies around the world and 200k developers. We'll start by exploring some of the assumptions and observations we have made in the market of static code analysis. Particularly, the democratization of a segment of the static code analysis, also known as 'linters', which have benefited from 'Wisdom of the crowds'. We'll then further explore the utility and use case of a software analysis tool to contextualize the scaling quality challenges of a growing software enterprise. Finally we'll pose non exhaustive and exploratory industry related questions involving the recent developments in commercialized solutions and techniques.

Jaime Jorge (Industry keynote) is the CEO and co-founder of Codacy, one of the best-known platforms for software quality standardization around the world. Jaime has an MSc in Software Engineering from IST and was previously an associate researcher in L2F/INESC-ID in Lisbon, Portugal.

Codacy Homepage