{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,9,6]],"date-time":"2024-09-06T23:02:09Z","timestamp":1725663729634},"reference-count":0,"publisher":"Sociedade Brasileira de Computa\u00e7\u00e3o - SBC","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"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.<\/jats:p>","DOI":"10.5753\/sbes_estendido.2000.24196","type":"proceedings-article","created":{"date-parts":[[2023,7,27]],"date-time":"2023-07-27T08:50:11Z","timestamp":1690447811000},"page":"7-12","source":"Crossref","is-referenced-by-count":0,"title":["Heuristics for Automatic Detection of Design Patterns in Object-Oriented Software"],"prefix":"10.5753","author":[{"given":"Andr\u00e9 Luis Castro de","family":"Freitas","sequence":"first","affiliation":[]},{"given":"Ana Maria de Alencar","family":"Price","sequence":"additional","affiliation":[]}],"member":"3742","published-online":{"date-parts":[[2000,10,4]]},"event":{"name":"Anais Estendidos do Simp\u00f3sio Brasileiro de Engenharia de Software","number":"14","location":"Brasil","acronym":"SBES Estendido 2000"},"container-title":["Anais Estendidos do XIV Simp\u00f3sio Brasileiro de Engenharia de Software (SBES Estendido 2000)"],"original-title":[],"link":[{"URL":"https:\/\/sol.sbc.org.br\/index.php\/sbes_estendido\/article\/download\/24196\/24022","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/sol.sbc.org.br\/index.php\/sbes_estendido\/article\/download\/24196\/24022","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,7,27]],"date-time":"2023-07-27T08:50:30Z","timestamp":1690447830000},"score":1,"resource":{"primary":{"URL":"https:\/\/sol.sbc.org.br\/index.php\/sbes_estendido\/article\/view\/24196"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2000,10,4]]},"references-count":0,"URL":"https:\/\/doi.org\/10.5753\/sbes_estendido.2000.24196","relation":{},"subject":[],"published":{"date-parts":[[2000,10,4]]}}}