Object-Oriented design patterns are an emergent technology: they are reusable micro-architectures, high level building blocks. A system which has been designed using well-known, documented and accepted design patterns is also likely to exhibit good properties such as modularity, separation of concerns and maintainability. While for forward engineering the benefits of using design patterns are clear, using reverse engineering technologies to discover instances of patterns in a software artifact (e.g., design or code) may help in several key areas, among which program understanding, design to code traceability and quality assessment. This paper describes a conservative approach and experimental results, based on a multi-stage reduction stragegy using OO software metrics and structural properties to extract structural design patterns from OO design or C++ code. To assess the effectiveness of the pattern recovery process a portable environment written in Java, remotely accessible by means of any WEB browser, has been developed. The developed system and experimental results on 8 industrial sofware (design and code) and 300.000 line of public domain C++ code are presented.
Object-Oriented Design Patterns Recovery
Cristoforetti, Luca
1998-01-01
Abstract
Object-Oriented design patterns are an emergent technology: they are reusable micro-architectures, high level building blocks. A system which has been designed using well-known, documented and accepted design patterns is also likely to exhibit good properties such as modularity, separation of concerns and maintainability. While for forward engineering the benefits of using design patterns are clear, using reverse engineering technologies to discover instances of patterns in a software artifact (e.g., design or code) may help in several key areas, among which program understanding, design to code traceability and quality assessment. This paper describes a conservative approach and experimental results, based on a multi-stage reduction stragegy using OO software metrics and structural properties to extract structural design patterns from OO design or C++ code. To assess the effectiveness of the pattern recovery process a portable environment written in Java, remotely accessible by means of any WEB browser, has been developed. The developed system and experimental results on 8 industrial sofware (design and code) and 300.000 line of public domain C++ code are presented.I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.