Measuring the Complexity of Class Diagrams in Reverse Engineering The Complexity of Static Structures in Object-Oriented Systems are Studied and Compared by Analyzing UML Class Diagrams.
Frederick T. Sheldon, Kristopher M. Daley, Hong Kyu Chung · 2005
Abstract Complexity metrics for Object-oriented systems are plentiful. Numerous studies have been undertaken to establish valid and meaningful measures of maintainability as they relate to the static structural characteristics of software. In general, these studies have lacked the empirical validation of their meaning and/or have succeeded in evaluating only partial aspects of the system. In this study we have determined through limited empirical means, a practical and holistic view by analyzing and comparing the structural characteristics of UML class diagrams as those characteristics relate to and impact maintainability. The class diagram is composed of three kinds of relations: association, generalization and aggregation, which make their overall structure difficult to understand. We propose combining these three relations in such a way that enables a comprehensive and valid measure of complexity. Theoretically, this measure is applicable among different class diagrams (including different domains or platforms/systems) to the extent that it is widely comparative and context free. Further, this property does not preclude comparison within a specific class diagram (or family) and is therefore very useful in evaluating a given class diagram’s strength/weaknesses. Further, we are not equating complexity with maintainability, rather, we are reporting empirical results that provide a small measure of validity against the backdrop of the complexity/maintainability question. Therefore, to evaluate our structural complexity metric, we measured the level of understandability of the system by measuring the time needed to reverse engineer the source code for a given class diagram including the number of errors produced while creating the diagram as one indicator of maintainability. The results as compared to other complexity metrics indicate our metric shows promise especially if proven to be scalable.