Automated Prioritization of Metrics-Based Design Flaws in UML Class Diagrams

The importance of software architecture in software development prolongs throughout the entire software life cycle. This is because quality of the architectural design defines the structural aspects of the system that are difficult to change, and hence will affect most of the subsequent development and maintenance activities. This paper considers software design flaws (related to the system structure) and not flaws identified at run time (by testing). These design flaws are akin to what is described in the literature as anti-patterns, bad smells or rotting design. Recently, two tools that have been developed for quality assurance of software designs represented in the UML notation: SDMetrics and Metric View. However these tools are not considered practical because they report many design flaws which are not considered by developers (false positives). This paper explores an approach that tries to identify which design flaws should be considered important and which are not. To this end, we propose an approach for automated prioritization of software design flaws (BX approach), to facilitate developers to focus on important design flaws more effectively. We designed and implemented a tool (PoSDef) that implements this approach. The BX approach and the PoSDef tool have been validated using two open source projects and one large industrial system. Our validation consists of comparing our approach and tool with the existing design flaw tools. The evaluation has shown that the proposed approach could facilitate developers to identify and prioritize important design flaws effectively.

[1]  Sallie M. Henry,et al.  Object-oriented metrics that predict maintainability , 1993, J. Syst. Softw..

[2]  Lionel C. Briand,et al.  Exploring the relationships between design measures and software quality in object-oriented systems , 2000, J. Syst. Softw..

[3]  Alexandru Telea,et al.  Visual Exploration of Combined Architectural and Metric Information , 2005, 3rd IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[4]  Alexander Egyed,et al.  Automatically Detecting and Tracking Inconsistencies in Software Design Models , 2011, IEEE Transactions on Software Engineering.

[5]  John Grundy,et al.  A taxonomy of computer-supported critics , 2010, 2010 International Symposium on Information Technology.

[6]  Tom Mens,et al.  Incremental Resolution of Model Inconsistencies , 2006, WADT.

[7]  Alexander Egyed,et al.  Computing repair trees for resolving inconsistencies in design models , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[8]  C.J.H. Mann,et al.  Object-Oriented Metrics in Practice: Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object-Oriented Systems , 2007 .

[9]  Wichian Premchaiswadi,et al.  Developing a Bayesian Network Model Based on a State and Transition Model for Software Defect Detection , 2012, 2012 13th ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing.

[10]  Mark D. Semon,et al.  POSTUSE REVIEW: An Introduction to Error Analysis: The Study of Uncertainties in Physical Measurements , 1982 .

[11]  C. Wohlin,et al.  Understanding software defect detection in the Personal Software Process , 1998, Proceedings Ninth International Symposium on Software Reliability Engineering (Cat. No.98TB100257).

[12]  Arthur J. Riel,et al.  Object-Oriented Design Heuristics , 1996 .

[13]  Markland J. Benson Toward Intelligent Software Defect Detection - Learning Software Defects by Example , 2011, 2011 IEEE 34th Software Engineering Workshop.

[14]  E. R. Cohen An Introduction to Error Analysis: The Study of Uncertainties in Physical Measurements , 1998 .

[15]  Klaus Lochmann,et al.  A benchmarking-inspired approach to determine threshold values for metrics , 2012, ACM SIGSOFT Softw. Eng. Notes.

[16]  Ivan Polásek,et al.  Design Smell Detection with Similarity Scoring and Fingerprinting: Preliminary Study , 2011, 2011 Second Eastern European Regional Conference on the Engineering of Computer Based Systems.

[17]  Michel R. V. Chaudron,et al.  Assessing UML design metrics for predicting fault-prone classes in a Java system , 2010, 2010 7th IEEE Working Conference on Mining Software Repositories (MSR 2010).

[18]  Jason E. Robbins,et al.  Software architecture critics in the Argo design environment , 1998, Knowl. Based Syst..

[19]  Yann-Gaël Guéhéneuc,et al.  DECOR: A Method for the Specification and Detection of Code and Design Smells , 2010, IEEE Transactions on Software Engineering.

[20]  Björn Regnell,et al.  Setting quality targets for coming releases with QUPER: an industrial case study , 2011, Requirements Engineering.

[21]  J. Taylor An Introduction to Error Analysis , 1982 .

[22]  Hai Tao Sun Optimize defect detection techniques through empirical software engineering method , 2005, 2005 IEEE International Conference on Electro Information Technology.