Measurement and Quality in Object-Oriented Design

In order to support the maintenance of object-oriented software systems, the quality of their design must be evaluated using adequate quantification means. In spite of the current extensive use of metrics, if used in isolation, metrics are oftentimes too fine grained to quantify comprehensively an investigated aspect of the design. To help the software engineer detect and localize design problems, the novel detection strategy mechanism is defined so that deviations from good-design principles and heuristics are quantised inform of metrics-based rules. Using detection strategies an engineer can directly localize classes or methods affected by a particular design flaw (e.g. God Class), rather than having to infer the real design problem from a large set of abnormal metric values. In order to reach the ultimate goal of bridging the gap between qualitative and quantitative statements about design, the dissertation proposes a novel type of quality model, called factor-strategy. In contrast to traditional quality models that express the goodness of design in terms of a set of metrics, this novel model relates explicitly the quality of a design to its conformance with a set of essential principles, rules and heuristics, which are quantified using detection strategies.

[1]  Tom DeMarco,et al.  Controlling software projects : management, measurement & estimation , 1982 .

[2]  Tom DeMarco,et al.  Controlling Software Projects: Management, Measurement, and Estimates , 1986 .

[3]  Designing Reuseable Classes , 1988 .

[4]  李幼升,et al.  Ph , 1989 .

[5]  Edward Yourdon,et al.  Object-oriented design , 1991, Yourdon Press Computing Series.

[6]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

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

[8]  Karin Erni Anwendung multipler Metriken bei der Entwicklung objektorientierter Frameworks , 1996 .

[9]  Radu Marinescu Using Object-Oriented Metrics for Automatic Design Flaws Detection in Large Scale Systems , 1998, ECOOP Workshops.

[10]  Radu Marinescu A multi-layered system of metrics for the measurement of reuse by inheritance , 1999, Proceedings Technology of Object-Oriented Languages and Systems (Cat. No.PR00393).

[11]  M. Fowler Improving the Design of Existing Code , 2000 .

[12]  Alistair Cockburn,et al.  Agile Software Development , 2001 .

[13]  Stéphane Ducasse,et al.  A categorization of classes based on the visualization of their internal structure: the class blueprint , 2001, OOPSLA '01.

[14]  Radu Marinescu,et al.  Detecting design flaws via metrics in object-oriented systems , 2001, Proceedings 39th International Conference and Exhibition on Technology of Object-Oriented Languages and Systems. TOOLS 39.

[15]  Robert C. Martin Agile Software Development, Principles, Patterns, and Practices , 2002 .

[16]  Radu Marinescu,et al.  Quantifying the quality of object-oriented design: the factor-strategy model , 2004, 11th Working Conference on Reverse Engineering.

[17]  Stéphane Ducasse,et al.  Using history information to improve design flaws detection , 2004, Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings..

[18]  Adrian Trifu,et al.  Automated design flaw correction in object-oriented systems , 2004, Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings..

[19]  Radu Marinescu,et al.  Detection strategies: metrics-based rules for detecting design flaws , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[20]  THIS STRATEGIC DATA SYSTEMS MATERIAL IS FURNISHED ON AN “AS-IS ” BASIS. STRATEGIC DATA , 2022 .

[21]  Radu Marinescu,et al.  Towards the optimization of automatic detection of design flaws in object-oriented software systems , 2005, Ninth European Conference on Software Maintenance and Reengineering.