Rudolf Ferenc, University of Szeged: Myth or Reality? The Effect of Design Pattern Usage on Software Maintainability


Although the belief of utilizing design patterns to create better quality software is fairly widespread, there are relatively few research papers objectively indicating that their usage is indeed beneficial. In this talk we will try to reveal the connection between design patterns and software maintainability. For this sake, we have performed two experiments.

First, we have analyzed more than 300 revisions of JHotDraw, a Java GUI framework whose design heavily relies on some well-known design patterns. We used our probabilistic software quality model for estimating maintainability and we parsed the javadoc annotations of the source code for gathering pattern instances. The Pearson correlation of the design pattern line density and the maintainability values revealed an interesting relationship.

Second, we have measured the maintainability of the software systems in DBP – the Design Pattern detection tools Benchmark platform – and calculated the correlations of the maintainability values with the numbers of the detected design pattern usages. We checked the results of four tools: DPD tool, Web Of Patterns, P-MARt, and MARPLE-DPD. Again, the outcomes are noteworthy. But after considering only the hand-validated true pattern instances, the results are becoming really exciting.


Rudolf Ferenc is an assistant professor at the Department of Software Engineering, University of Szeged, Hungary. He received his PhD in Mathematics and Computer Science in 2005. His research areas are source code analysis, measurement, quality assurance, change impact analysis, and bug detection. He leads several R&D projects at the University which are related to quality assessment, the improvement and architecture reconstruction of software systems of major banks and software development companies in Hungary. He was the general chair of CSMR 2012, the Program Co-Chair and Program Committee member at major conferences in the above-mentioned areas: CSMR, ICSM, SCAM, ICPC, ESEC/FSE.

Invited talk in the working session on anti-patterns:

Radu Marinescu, "Politehnica" University of Timisoara: Assessing technical debt by identifying design flaws in software systems


Tough time-to-market constraints and unanticipated integration or evolution issues lead to design tradeoffs that usually cause flaws in the structure of a software system. Thus, maintenance costs grow significantly. The impact of these design decisions, which provide short-term benefits at the expense of the system’s design integrity, is usually referred to as technical debt. In this paper, I propose a novel framework for assessing technical debt using a technique for detecting design flaws, i.e., specific violations of well-established design principles and rules. To make the framework comprehensive and balanced, it is built on top of a set of metrics-based detection rules for well-known design flaws that cover all of the major aspects of design such as coupling, complexity, and encapsulation. I demonstrate the effectiveness of the framework by assessing the evolution of technical debt symptoms over a total of 63 releases of two popular Eclipse® projects. The case study shows how the framework can detect debt symptoms and past refactoring actions. The experiment also reveals that in the absence of such a framework, restructuring actions are not always coherent and systematic, not even when performed by very experienced developers.


Radu Marinescu is an associate professor at the Politehnica University of Timisoara, co-founder and head (since 2002) of the LOOSE Research Group ( and co-founder of Intooitus (, a young spin-off company creating disruptive quality assessment tools. His research is focused on the areas of object-oriented software evolution, quality assurance and software maintenance. He is co-author of the "Object-Oriented Metrics in Practice" (Springer, 2006), which is a practical guide on how developers and architects can use metrics to understand, assess and improve code and design. Following an IBM Eclipse Innovation Award (2006), he received in 2009 the IBM John W. Backus Award in a worldwide competition for "having done the most to improve programmer productivity". He has published more than 30 papers related to metrics, quality assurance and software evolution and has served in the last years in more than 20 program committees of international conferences. In 2010 he was the General Chair of the International Conference on Software Maintenance (ICSM). Since 2011 he is a member of the editorial board of the Journal of Software Maintenance and Evolution: Research and Practice (Wiley). For the past fifteen years, Dr. Marinescu has been constantly working as a consultant and trainer for several well-known IT companies including Siemens, Alcatel-Lucent, Telelogic and Nokia. Since 2007, Radu has served constantly as an expert evaluator for the European Commission (EC) on large-scale research projects. By the appointment of the Minister of Education and Research, he is currently serving as vice-president of the Romanian National Research Council.