2000Unpublished venueOpen access

Heuristics for Automatic Detection of Design Patterns in Object-Oriented Software

André Luís Castro de Freitas, Ana Maria de Alencar Price

Open full text 0 citations

Abstract

Design patterns summarize the experience of expert designers. Patterns are not invented, rather they are extracted from existing systems. The extracting process of patterns had involved the observation of a number of systems designs, looking for patterns across those systems. A design pattern is a reusable implementation model or architecture that can be applied to solve a particular recurring class of problem. In general, it is hard to recognize a pattern use in real-world software systems, unless you know what you are looking for and go carefully and methodically searching for a particular pattern. This paper is about the problem of detecting the essence of design patterns. By pattern essence we mean those collaborations between classes that characterize each one of the patterns. Heuristics have been created to identify and apply design patterns to object-oriented programs. The rules are based on the structural realtionship between classes and objects. It is implemented a tool in Smalltalk that automatizes detection and identification of design patterns in object-oriented applications. The tool intendes to be a validation prototype for the buit in heuristics. The development of the examples allows patterns comparison, showing advantages and tendencies in using one or another type of collaboration between classes and objects. Patterns studies stimulate facilities during the building of object-oriented programs. The patterns also help in the definition of good designs. We understand that a good design is a software that follows the fundamental concepts of the object-oriented paradigm including those rules stated by recognized.

Open-access reader

About this research paper

What this paper is about

Design patterns summarize the experience of expert designers. Patterns are not invented, rather they are extracted from existing systems. The extracting process of patterns had involved the observation of a number of systems designs, looking for patterns across those systems. A design pattern is a reusable implementation model or architecture that can be applied to solve a particular recurring class of problem. In general, it is hard to recognize a pattern use in real-world software systems, unless you know what you are looking for and go carefully and methodically searching for a particular pattern. This paper is about the problem of detecting the essence of design patterns. By pattern essence we mean those collaborations between classes that characterize each one of the patterns. Heuristics have been created to identify and apply design patterns to object-oriented programs. The rules are based on the structural realtionship between classes and objects. It is implemented a tool in Smalltalk that automatizes detection and identification of design patterns in object-oriented applications. The tool intendes to be a validation prototype for the buit in heuristics. The development of the examples allows patterns comparison, showing advantages and tendencies in using one or another type of collaboration between classes and objects. Patterns studies stimulate facilities during the building of object-oriented programs. The patterns also help in the definition of good designs. We understand that a good design is a software that follows the fundamental concepts of the object-oriented paradigm including those rules stated by recognized.

Why it matters

A significance statement is not available in the OpenAlex record.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

Design patterns summarize the experience of expert designers. Patterns are not invented, rather they are extracted from existing systems. The extracting process of patterns had involved the observation of a number of systems designs, looking for patterns across those systems. A design pattern is a reusable implementation model or architecture that can be applied to solve a particular recurring class of problem. In general, it is hard to recognize a pattern use in real-world software systems, unless you know what you are looking for and go carefully and methodically searching for a particular pattern. This paper is about the problem of detecting the essence of design patterns. By pattern essence we mean those collaborations between classes that characterize each one of the patterns. Heuristics have been created to identify and apply design patterns to object-oriented programs. The rules are based on the structural realtionship between classes and objects. It is implemented a tool in Smalltalk that automatizes detection and identification of design patterns in object-oriented applications. The tool intendes to be a validation prototype for the buit in heuristics. The development of the examples allows patterns comparison, showing advantages and tendencies in using one or another type of collaboration between classes and objects. Patterns studies stimulate facilities during the building of object-oriented programs. The patterns also help in the definition of good designs. We understand that a good design is a software that follows the fundamental concepts of the object-oriented paradigm including those rules stated by recognized.

Key concepts: Heuristics, Structural pattern, Software design pattern, Computer science, Architectural pattern, Smalltalk, Object-oriented design, Design pattern

Related papers

Back to paper searchBrowse research topicsOriginal source
Heuristics for Automatic Detection of Design Patterns in Object-Oriented Software — Research Paper | ScholarLens