skip to main content
10.1145/3143434.3143454acmotherconferencesArticle/Chapter ViewAbstractPublication Pagesiwsm-mensuraConference Proceedingsconference-collections
research-article

Improving object-oriented design quality: a portfolio- and measurement-based approach

Published: 25 October 2017 Publication History

Abstract

Current software development trends have shortened release cycles and forced developers to implement short-term solutions that cannot cope with increasing product complexity. This phenomenon of introducing hasty design choices or applying bad design practices becomes something known as technical debt, in particular design debt. To pay off this debt, the literature offers approaches for identifying these design flaws; however, few methods for properly prioritizing investment efforts are available. In this paper, we propose an approach that supports the decision-making process regarding design improvements. It identifies violations of design best practices that are then arranged within a two-dimensional portfolio matrix. This matrix combines the importance of practices of design quality with actual achievement relative to a benchmark suite. To show the application of the approach in a quality-improvement process, we performed a feasibility study on three open-source projects and a benchmark suite containing 50 projects. This study clearly shows that the importance of the design best practices greatly impacts the improvement decisions and must be aligned with the strategic quality goals of the product.

References

[1]
JagdishBansiya and Carl G. Davis. 2002. A hierarchical model for object-oriented design quality assessment. IEEE Transactions on Software Engineering 28, 1 (2002), 4--17.
[2]
Lionel C. Briand, Jürgen Wüst, John W. Daly, and Victor D. Porter. 2000. Exploring the relationships between design measures and software quality in object-oriented systems. Journal of Systems and Software 51, 3 (2000), 245--273.
[3]
Nanette Brown, Yuanfang Cai, Yuepu Guo, Rick Kazman, Miryung Kim, Philippe Kruchten, Erin Lim, Alan MacCormack, Robert Nord, Ipek Ozkaya, Raghvinder Sangwan, Carolyn Seaman, Kevin Sullivan, and Nico Zazworka. 2010. Managing Technical Debt in Software-reliant Systems. In Proceedings of the FSE/SDP Workshop on Future of Software Engineering Research (FoSER '10). ACM, New York, NY, USA, 47--52.
[4]
William Brown, Raphael Malveau, Hays McCormick, and Thomas Mowbray. 1998. AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis. Wiley and Sons, New York, NY, USA.
[5]
Johannes Bräuer, Reinhold Plösch, Matthias Saft, and Christian Körner. 2017. A Survey on the Importance of Object-Oriented Design Best Practices. In Proceedings of the 35th Euromicro Conference on Software Engineering and Advanced Applications, SEAA '17. Vienna, Austria, accepted for publication.
[6]
Shyam R. Chidamber and Chris F. Kemerer. 1994. A metrics suite for object oriented design. IEEE Transactions on Software Engineering 20, 6 (1994), 476--493.
[7]
José P. Correia and Joost Visser. 2008. Benchmarking Technical Quality of Software Products. In 15th Working Conference on Reverse Engineering, 2008. WCRE '08. 297--300.
[8]
Ward Cunningham. 1992. The WyCash Portfolio Management System. In Addendum to the Proceedings on Object-oriented Programming Systems, Languages, and Applications (Addendum) (OOPSLA '92). ACM, New York, NY, USA, 29--30.
[9]
Eduardo Figueiredo, Claudio Sant'Anna, Alessandro Garcia, and Carlos Lucena. 2012. Applying and evaluating concern-sensitive design heuristics. Journal of Systems and Software 85, 2 (2012), 227--243.
[10]
Martin Fowler, Kent Beck, John Brant, and William Opdyke. 1999. Refactoring: Improving the Design of Existing Code. Addison Wesley, Reading, MA, USA.
[11]
Samarthyam Ganesh, Tushar Sharma, and Girish Suryanarayana. 2013. Towards a Principle-based Classification of Structural Design Smells. Journal of Object Technology 12, 2 (2013), 1--29.
[12]
Suryanarayana Girish, Samarthyam Ganesh, and Sharma Tushar. 2014. Refactoring for Software Design Smells - Managing Technical Debt (1 ed.). Morgan Kaufmann. http://www.designsmells.com/resources.php
[13]
Harald Gruber, Reinhold Plösch, and Matthias Saft. 2010. On the Validity of Benchmarking for Evaluating Code Quality. In Proceedings of the Joined International Conferences on Software Measurement IWSM/MetriKon/Mensura 2010. Shaker Verlag, Aachen.
[14]
Donald C. Hambrick, Ian C. MacMillan, and Diana L. Day. 1982. Strategic Attributes and Performance in the BCG Matrix-A PIMS-Based Analysis of Industrial Product Businesses1. Academy of Management Journal 25, 3 (1982), 510--531.
[15]
Salima Hassaine, Foutse Khomh, Yann-Gaël Guéhenéuc, and Sylvie Hamel. 2010. IDS: An Immune-Inspired Approach for the Detection of Software Design Smells. In 2010 Seventh International Conference on the Quality of Information and Communications Technology (QUATIC). IEEE, 343--348.
[16]
David C. Hoaglin and Boris Iglewicz. 1987. Fine-Tuning Some Resistant Rules for Outlier Labeling. J. Amer. Statist. Assoc. 82, 400 (1987), 1147--1149.
[17]
Michael Kläs, Jens Heidrich, Jürgen Münch, and Adam Trendowicz. 2009. CQML Scheme: A Classification Scheme for Comprehensive Quality Model Landscapes. In Proceedings of the 35th Euromicro Conference on Software Engineering and Advanced Applications, SEAA '09. Patras, Greece, 243--250.
[18]
Jean L. Letouzey and Thierry Coq. 2010. The SQALE Analysis Model: An Analysis Model Compliant with the Representation Condition for Assessing the Quality of Software Source Code. In 2010 Second International Conference on Advances in System Testing and Validation Lifecycle. Nice, France, 43--48.
[19]
Radu Marinescu. 2004. Detection strategies: metrics-based rules for detecting design flaws. In Proceedings of the 20th IEEE International Conference on Software Maintenance. IEEE, 350--359.
[20]
Radu Marinescu. 2012. Assessing technical debt by identifying design flaws in software systems. IBM Journal of Research and Development 56, 5 (2012), 9:1--13.
[21]
Robert C. Martin. 2003. Agile software development: Principles, Patterns and Practices. Pearson Education, Upper Saddle River, NJ, USA.
[22]
Alois Mayr, Reinhold Plösch, and Christian Körner. 2014. A Benchmarking-Based Model for Technical Debt Calculation. In Proceedings of the 14th International Conference on Quality Software (QSIC 2014). IEEE, Dallas, TX, USA, 305--314.
[23]
Naouel Moha, Yann-Gaël Guéhéneuc, Laurence Duchien, and Anne-Françoise Le Meur. 2010. DECOR: A Method for the Specification and Detection of Code and Design Smells. IEEE Transactions on Software Engineering 36, 1 (2010), 20--36.
[24]
Reinhold Plösch, Johannes Bräuer, Christian Körner, and Matthias Saft. 2016. Measuring, Assessing and Improving Software Quality based on Object-Oriented Design Principles. Open Computer Science 6, 1 (2016).
[25]
Reinhold Plösch, Johannes Bräuer, Christian Körner, and Matthias Saft. 2016. MUSE - Framework for Measuring Object-Oriented Design. Journal of Object Technology 15, 4 (2016), 2:1--29.
[26]
Roger S. Pressman and Bruce R. Maxim. 2014. Software Engineering: A Practitioner's Approach (8th ed.). Mcgraw-Hill Education - Europe, New York, NY.
[27]
Arthur J. Riel. 1996. Object-Oriented Design Heuristics (1st ed.). Addison-Wesley Longman Publishing, Boston, MA, USA.
[28]
Ganesh Samarthyam, Girish Suryanarayana, Toshi Sharma, and Swastik Gupta. 2013. MIDAS: A design quality assessment method for industrial software. In Proceedings of the 35th International Conference on Software Engineering (ICSE 2013). San Francisco, CA, USA, 911--920.
[29]
Jan Schumacher, Nico Zazworka, Forrest Shull, Carolyn Seaman, and Michele Shaw. 2010. Building Empirical Support for Automated Code Smell Detection. In Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM '10). ACM, New York, NY, USA, 8:1--8:10.
[30]
Frank Simon, OlafSeng, and Thomas Mohaupt. 2006. Code-Quality-Management: technische Qualität industrieller Softwaresysteme transparent und vergleichbar gemacht. dpunkt-Verlag.
[31]
Ramanath Subramanyam and Mayuram S. Krishnan. 2003. Empirical analysis of CK metrics for object-oriented design complexity: implications for software defects. IEEE Transactions on Software Engineering 29, 4 (2003), 297--310.
[32]
Adrian Trifu and Radu Marinescu. 2005. Diagnosing design problems in object oriented systems. In 12th Working Conference on Reverse Engineering. IEEE, 10 pp.
[33]
Claes Wohlin, Per Runeson, Martin Höst, Magnus C. Ohlsson, Björn Regnell, and Anders Wesslén. 2012. Experimentation in Software Engineering. Springer Berlin Heidelberg, Berlin, Heidelberg.
[34]
Nico Zazworka, Carolyn Seaman, and Forrest Shull. 2011. Prioritizing Design Debt Investment Opportunities. In Proceedings of the 2Nd Workshop on Managing Technical Debt (MTD '11). ACM, New York, NY, USA, 39--42.
[35]
Nico Zazworka, Michele A. Shaw, Forrest Shull, and Carolyn Seaman. 2011. Investigating the Impact of Design Debt on Software Quality. In Proceedings of the 2nd Workshop on Managing Technical Debt (MTD '11). ACM, New York, NY, USA, 17--23.

Cited By

View all
  • (2021)Technical Debt Prioritization: Taxonomy, Methods Results, and Practical Characteristics2021 47th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)10.1109/SEAA53835.2021.00034(206-213)Online publication date: Sep-2021
  • (2020)Collecting Service-Based Maintainability Metrics from RESTful API Descriptions: Static Analysis and Threshold DerivationSoftware Architecture10.1007/978-3-030-59155-7_16(215-227)Online publication date: 7-Sep-2020
  • (2018)Design debt prioritizationProceedings of the 2018 International Conference on Technical Debt10.1145/3194164.3194172(95-104)Online publication date: 27-May-2018
  • Show More Cited By

Index Terms

  1. Improving object-oriented design quality: a portfolio- and measurement-based approach

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Other conferences
      IWSM Mensura '17: Proceedings of the 27th International Workshop on Software Measurement and 12th International Conference on Software Process and Product Measurement
      October 2017
      273 pages
      ISBN:9781450348539
      DOI:10.1145/3143434
      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

      Sponsors

      • SWC: Software Center, University of Gothenburg, Sweden

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 25 October 2017

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. design debt
      2. design quality
      3. software quality
      4. technical debt

      Qualifiers

      • Research-article

      Conference

      IWSM/Mensura '17
      Sponsor:
      • SWC

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)6
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 05 Mar 2025

      Other Metrics

      Citations

      Cited By

      View all
      • (2021)Technical Debt Prioritization: Taxonomy, Methods Results, and Practical Characteristics2021 47th Euromicro Conference on Software Engineering and Advanced Applications (SEAA)10.1109/SEAA53835.2021.00034(206-213)Online publication date: Sep-2021
      • (2020)Collecting Service-Based Maintainability Metrics from RESTful API Descriptions: Static Analysis and Threshold DerivationSoftware Architecture10.1007/978-3-030-59155-7_16(215-227)Online publication date: 7-Sep-2020
      • (2018)Design debt prioritizationProceedings of the 2018 International Conference on Technical Debt10.1145/3194164.3194172(95-104)Online publication date: 27-May-2018
      • (2018)On the Suitability of a Portfolio-Based Design Improvement Approach2018 IEEE International Conference on Software Quality, Reliability and Security (QRS)10.1109/QRS.2018.00038(249-256)Online publication date: Jul-2018

      View Options

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Figures

      Tables

      Media

      Share

      Share

      Share this Publication link

      Share on social media