Quantitative measurement of object-oriented design principles (e.g., Single Responsibility Principle, Acyclic Dependency Principle, Information Hiding) directly from the source code.


Motivation 

Measuring object-oriented design is a research topic with some tradition. There exist different approaches for capturing design quality, like Design Patterns, Design Smells or Design Principles. Design Principles (e.g. Single Responsibility Principle, Open-Closed Principle, Information Hiding Principle, Don’t Repeat Yourself Principle) are well discussed and adhering to design principles seems to be a good idea to guide designers and deveopers and to enhance the internal software quality. Currently there is no common understanding how to measure the adherence of software to these design principles. Although there is some related work available that tries to identify and use rough indicators (typically based on metrics) for design principles, there is not yet a comprehensive approach available that allows to guide improvements in object-oriented design driven by measurements of the source code.

Goals

  • Collection of design principles and insights into the importance of individual design principles in practice.
  • Identification, specification and implementation of rules to measure violations of design principles for the most important design principles.
  • An operational quality model that allows to measure and evaluate the design quality (with a focus on design principles) of Java and C++ source code.
  • Analysis of the relationship between design principles and overall software qualtiy – driven by the question whether design qualtiy is a major lever for improving the overall software quality.

Results

  • MUSE (Muse Understand Script Engine) – a tool that provides 80+ measures for 12 object-oriented design principles.
  • SonarQube plugins that allow to define operational quality models for object-oriented design and that allow to analyse the measurement data provided by the MUSE tool.
  • The results of a survey on the importance of object-oriented design princples in practice.

Research Spotlights

Duration
06/2013 – up to now

Partner Siemens Corporate Technology

Contact Reinhold Plösch

 

Object-Oriented Design Quality

Publications

J. Bräuer, R. Plösch, M. Saft, Ch. Körner: Measuring Object-Oriented Design Principles: The Results of Focus Group-Based Research, Software Engineering Conference (SE) 2020, Innsbruck, Austria, February 24-28, 2020. article
Conference Article
R. Plösch: Design Quality Measurment, Published as Technical Report (Siemens Corporta Technology - CCT Software Systems and Processes), October 2018, Munich. The report is not available to the public.
Technical Report
J. Bräuer, R. Plösch, M. Saft, Ch. Körner: Which design best practices should be taken care of?, IEEE Software Blogpost, April 16, 2018, blog software
Misc
R. Plösch, J. Bräuer, Ch. Körner, M. Saft: On the Suitability of a Portfolio-Based Design Improvement Approach, in Proceedings of QRS 2018, IEEE Computer Society Press, July 16-20 2018, Lisboa, Portugal. Doi: 10.1109/QRS.2018.00038
Conference Article
J. Bräuer, R. Plösch, M. Saft, Ch. Körner: Measuring Object-Oriented Design Principles: The Results of Focus Group-Based Research, Journal of Systems and Software, Volume 140, June 2018, pp 74-90, Doi: 10.1016/j.jss.2018.03.002
Journal Article
R. Plösch, J. Bräuer, M. Saft, Ch. Körner: Design Debt Prioritization - A Design Best Practice-Based Approach, International Conference on Technical Debt (TechDebt) 2018, Gothenburg, Sweden, May 27 - June 3rd, 2018, Association for Computing Machinery, Doi: 10.1145/3194164.3194172
Conference Article
Johannes Bräuer: Measuring and Assessing Object-oriented Design Principles, Dissertation, Institut für Wirtschaftsinformatik/ Software Engineering, Johannes Kepler Universität Linz, Dezember 2017. epub
PhD Thesis
J. Bräuer, R. Plösch: Improving Object-Oriented Design Quality: A Portfolio- and Measurement-Based Approach, IWSM MENSURA Conference, Gothenburg, Sweden, October 24-26, 2017, doi:10.1145/3143434.3143454.
Conference Article
J. Bräuer, R. Plösch, M. Saft, Ch. Körner: A Survey on the Importance of Object-oriented Design Best Practices, Proceedings of the Euromicro Conference on Software Engineering and Advanced Applications (SEAA) 2017, Vienna, Austria, August 30-September 1, 2017, doi:10.1109/SEAA.2017.14.
Conference Article
R. Plösch, J. Bräuer, Ch. Körner, M. Saft: Measuring, Assessing and Improving Software Quality based on Object-Oriented Design Principles, Open Computer Science, Volume 6, Issue 1, December 2016, pp. 187–207, doi: 10.1515/comp-2016-0016.
Journal Article
R. Plösch, J. Bräuer, Ch. Körner, M. Saft: MUSE: A Framework for Measuring Object-Oriented Design Quality, Journal of Object Technology, Volume 15, Issue 4, August 2016, pp. 2:1-29, doi:10.5381/jot.2016.15.4.a2.
Journal Article
J. Bräuer: Measuring Object-Oriented Design Principles, Proceedings of the Doctoral Symposium at the 30th ACM/IEEE International Conference on Automated Software Engineering (ASE 2015), Lincoln, Nebraska, USA, November 9-13, 2015, doi:10.1109/ASE.2015.17.
Conference Article