Measuring, Assessing and Improving Software Quality based on Object-Oriented Design Principles

Reinhold Plösch 1 , Johannes Bräuer 1 , Christian Körner 2  and Matthias Saft 2
  • 1 Department of Business Informatics – Software Engineering Johannes Kepler University Linz, Linz, Austria
  • 2 Corporate Technology Siemens AG, Munich, Germany

Abstract

Good object-oriented design is crucial for a successful software product. Metric-based approaches and the identification of design smells are established concepts for identifying design flaws and deriving design improvements thereof. Nevertheless, metrics are difficult to use for improvements as they provide only weak guidance and are difficult to interpret. Thus, this paper proposes a novel design quality model (DQM) based on fundamental object-oriented design principles and best practices. In course of discussing DQM, the paper provides a contribution in three directions: (1) it shows how to measure design principles automatically, (2) then the measuring result is used to assess the degree of fulfilling object-oriented design principles, (3) and finally design improvements of identified design flaws in object-oriented software are derived. Additionally, the paper provides an overview of the research area by explaining terms used to describe designrelated aspects and by depicting the result of a survey on the importance of object-oriented design principles. The underlying concepts of the DQM are explained before it is applied on two open-source projects in the format of a case study. The qualitative discussion of its application shows the advantages of the automated design assessment that can be used for guiding design improvements.

If the inline PDF is not rendering correctly, you can download the PDF file here.

  • [1] Chidamber S.R., Kemerer C. F., A metrics suite for object oriented design, IEEE Transactions on Software Engineering, 1994, 20(6), 476–493

  • [2] Marinescu R., Ratiu D., Quantifying the quality of objectoriented design: The factor-strategy model, Proceedings of the 11th Working Conference on Reverse Engineering, Delft, The Netherlands, 2004, 192–201

  • [3] Fowler M., Beck K., Brant J., Opdyke W., Refactoring: Improving the Design of Existing Code, Addison Wesley, Reading, US, 1999

  • [4] Moha N., Guéhéneuc Y.G., Duchien L., Le Meur A.F., DECOR: A Method for the Specification and Detection of Code and Design Smells, IEEE Transactions on Software Engineering, 2010, 36(1), 20–36

  • [5] Samarthyam G., Suryanarayana G., Sharma T., Gupta S., MIDAS: A design quality assessment method for industrial software, Proceedings of the 35th International Conference on Software Engineering (ICSE 2013), San Francisco, US, 2013, 911–920

  • [6] Kläs M., Heidrich J., Münch J., Trendowicz A., CQML Scheme: A Classification Scheme for Comprehensive Quality Model Landscapes, Proceedings of the 35th Euromicro Conference on Software Engineering and Advanced Applications (SEAA 2009), Patras, Greece, 2009, 243–250

  • [7] Coad P., Yourdon E., Object-Oriented Design, Prentice Hall, London, UK, 1991

  • [8] Henderson-Sellers B., Constantine L.L., Graham I.M., Coupling and cohesion (toward a valid metrics suite for object-oriented analysis and design), Object Oriented Systems, 1996, 3(3), 143– 158

  • [9] Dooley J., Object-Oriented Design Principles, in Software Development and Professional Practice, Apress, 2011, 115–136

  • [10] Sharma T., Samarthyam G., Suryanarayana G., Applying Design Principles in Practice, Proceedings of the 8th India Software Engineering Conference (ISEC 2015), New York, US, 2015, 200–201

  • [11] Riel A.J., Object-Oriented Design Heuristics, 1st ed, Addison- Wesley Longman Publishing, Boston, US, 1996

  • [12] BrownW.,Malveau R., McCormick H., Mowbray T., AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis, Wiley and Sons, New York, US, 1998

  • [13] Gamma E., Helm R., Johnson R., Vlissides J., Design Patterns: Elements of Reusable Object-Oriented Software, Pearson Education India, 1995

  • [14] Muraki T., Saeki M., Metrics for Applying GOF Design Patterns in Refactoring Processes, Proceedings of the 4th International Workshop on Principles of Software Evolution (IWPSE 2001), New York, US, 2001, 27–36

  • [15] Boehm B. W., Brown J.R., Kasper M., Lipow M., Macleod G.J., Merrit .M.J., Characteristics of software quality, North-Holland, 1978

  • [16] Dromey R.G., A model for software product quality, IEEE Transactions on Software Engineering, 1995, 21(2), 146–162

  • [17] Al-Kilidar H., Cox K., Kitchenham B., The use and usefulness of the ISO/IEC 9126 quality standard, International Symposiumon Empirical Software Engineering 2005, Queensland, Australia, 2005, 126–132

  • [18] Mordal-Manet K., Balmas F., Denier S., Ducasse S., Wertz H., Laval J., et al., The squale model - A practice-based industrial quality model, Proceedings of the 25th IEEE International Conference on Software Maintenance (ICSM 2009), Alberta, Canada, 2009, 531–534

  • [19] Wagner S., Goeb A., Heinemann L., Kläs M., Lochmann K., Plösch R., et al., The Quamoco product quality modelling and assessment approach, in Proceedings of the 34th International Conference on Software Engineering (ICSE 2012), Zurich, Switzerland, 2012, 1133–1142

  • [20] Bansiya J., Davis C., A hierarchical model for object-oriented design quality assessment, IEEE Transactions on Software Engineering, 2002, 28(1), 4–17

  • [21] ISO/IEC 9126-1:2001 - Software engineering – Product quality – Part 1: Quality model, ISO/IEC, ISO/IEC 9126:2001, 2001.

  • [Online]. Available: http://www.iso.org/iso/catalogue_detail.htm? csnumber=22749

  • [22] Wagner S., Goeb A., Heinemann L., Kläs M., Lampasona C., Lochmann K., et al., Operationalised product quality models and assessment: The Quamoco approach, Information and Software Technology, 2015, 62, 101–123

  • [23] Martin R.C., Agile software development : principles, patterns and practices, Pearson Education, Upper Saddle River, US, 2003

  • [24] Dijkstra E.W., On the role of scientific thought.

  • [Online]. Available: http://www.cs.utexas.edu/users/EWD/transcriptions/E WD04xx/EWD447.html

  • [25] Laplante P.A.,What Every Engineer Should Knowabout Software Engineering, CRC Press, Boca Raton, US, 2007

  • [26] Parnas D.L., Software Aging, in Proceedings of the 16th International Conference on Software Engineering (ICSE 1994), Los Alamitos, US, 1994, 279–287

  • [27] Hunt A., Thomas D., The Pragmatic Programmer: From Journeyman to Master, Addison-Wesley Longman Publishing, Boston, US, 1999

  • [28] Mayr A., Plösch R., Klas M., Lampasona C., Saft M., A Comprehensive Code-Based Quality Model for Embedded Systems: Systematic Development and Validation by Industrial Projects, in Proceedings of the 23rd International Symposium on Software Reliability Engineering (ISSRE 2012), Dallas, US, 2012, 281–290

  • [29] Mayr A., Plösch R., Saft M., Objective Measurement of Safety in the Context of IEC 61508-3, in Proceedings of the 39th Euromicro Conference on Software Engineering and Advanced Applications (SEAA 2013), Washington, US, 2013, 45–52

  • [30] Dautovic A., Automatic Measurement of Software Documentation Quality, PhD thesis, Deptartment for Business Informatics, Johannes Kepler University Linz, Austria, 2012

  • [31] Plösch R., Bräuer J., Körner C., Saft M., MUSE - Framework for Measuring Object-Oriented Design, Journal of Object Technology, 2016, 15(4), 2:1–29

  • [32] Barron F.H., Barrett B.E., Decision Quality Using Ranked Attribute Weights, Management Science, 1996, 42(11), 1515–1523

  • [33] Edwards W., Barron F.H., SMARTS and SMARTER: Improved Simple Methods for Multiattribute Utility Measurement, Organizational Behavior and Human Decision Processes, 1994, 60(3), 306–325

  • [34] Gruber H., Plösch R., Saft M., On the Validity of Benchmarking for Evaluating Code Quality, in Proceedings of the Joined International Conferences on Software Measurement IWSM/MetriKon/Mensura 2010, Aachen, Germany: Shaker Verlag, 2010

  • [35] Bräuer J., Plösch R., Saft M., Measuring Maintainability of OOSoftware - Validating the IT-CISQ Quality Model, in Proceedings of the 2015 Federated Conference on Software Development and Object Technologies (SDOT 2015), Zilina, Slovakia, 2015

  • [36] Wohlin C., Runeson P., Höst M., Ohlsson M.C., Regnell B., Wesslén A., Experimentation in Software Engineering, Springer, Berlin, Heidelberg, 2012

OPEN ACCESS

Journal + Issues

Open Computer Science is an open access, peer-reviewed journal. The journal publishes research results in the following fields: algorithms and complexity theory, artificial intelligence, bioinformatics, networking and security systems,
programming languages, system and software engineering, and theoretical foundations of computer science.

Search