{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,20]],"date-time":"2026-03-20T17:19:38Z","timestamp":1774027178664,"version":"3.50.1"},"reference-count":22,"publisher":"Springer Science and Business Media LLC","issue":"2","license":[{"start":{"date-parts":[[2004,6,1]],"date-time":"2004-06-01T00:00:00Z","timestamp":1086048000000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/2.0"},{"start":{"date-parts":[[2004,6,1]],"date-time":"2004-06-01T00:00:00Z","timestamp":1086048000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/2.0"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J Braz Comp Soc"],"published-print":{"date-parts":[[2004,6]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Design patterns offer flexible solutions to common problems in software development. Recent studies have shown that several design patterns involve crosscutting concerns. Unfortunately, object-oriented (OO) abstractions are often not able to modularize those crosscutting concerns, which in turn decrease the system reusability and maintainability. Hence, it is important verifying whether aspect-oriented approaches support improved modularization of crosscutting concerns relative to design patterns. Ideally, quantitative studies should be performed to compare object-oriented and aspect-oriented implementations of classical patterns with respect to important software engineering attributes, such as coupling and cohesion. This paper presents a quantitative study that compares aspect-based and OO solutions for a representative set of design patterns. We have used stringent software engineering attributes as the assessment criteria. We have found that most aspect-oriented solutions improve separation of pattern-related concerns, although some aspect-oriented implementations of specific patterns resulted in higher coupling and more lines of code.<\/jats:p>","DOI":"10.1007\/bf03192358","type":"journal-article","created":{"date-parts":[[2010,11,12]],"date-time":"2010-11-12T04:44:03Z","timestamp":1289537043000},"page":"49-63","source":"Crossref","is-referenced-by-count":2,"title":["Design patterns as aspects: A quantitative assessment"],"prefix":"10.1007","volume":"10","author":[{"given":"Cl\u00e1udio","family":"Sant\u2019Anna","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Alessandro","family":"Garcia","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Uir\u00e1","family":"Kulesza","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Carlos","family":"Lucena","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Arndt","family":"von Staa","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","reference":[{"key":"BF03192358_CR1","series-title":"TR CS-2004\u201313","volume-title":"A Query-Based Approach for Aspect Measurement and Analysis","author":"P. Alencar","year":"2004","unstructured":"P. Alencar et al. A Query-Based Approach for Aspect Measurement and Analysis. TR CS-2004\u201313, School of Computer Science, University of Waterloo, Canada, February 2004"},{"key":"BF03192358_CR2","unstructured":"AspectJ Team. The AspectJ Programming Guide. http:\/\/eclipse.org\/aspectj\/, December 2003."},{"key":"BF03192358_CR3","doi-asserted-by":"crossref","first-page":"733","DOI":"10.1109\/TSE.1986.6312975","volume":"12","author":"V. Basili","year":"1986","unstructured":"V. Basili, R. Selby, D. Hutchins. Experimentation in Software Engineering.IEEE Transactions on Software Engineering, SE-12:733\u2013743, 1986.","journal-title":"IEEE Transactions on Software Engineering"},{"issue":"6","key":"BF03192358_CR4","doi-asserted-by":"publisher","first-page":"476","DOI":"10.1109\/32.295895","volume":"20","author":"S. Chidamber","year":"1994","unstructured":"S. Chidamber, C. Kemerer. A Metrics Suite for Object Oriented Design.IEEE Transactions on Software Engineering, 20(6):476\u2013493, June 1994.","journal-title":"IEEE Transactions on Software Engineering"},{"key":"BF03192358_CR5","volume-title":"Software Metrics: A Rigorous Practical Approach","author":"N. Fenton","year":"1997","unstructured":"N. Fenton, S. Pfleeger. Software Metrics: A Rigorous Practical Approach. London: PWS, 1997."},{"key":"BF03192358_CR6","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"E. Gamma","year":"1995","unstructured":"E. Gamma et al. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, 1995."},{"key":"BF03192358_CR7","volume-title":"From Objects to Agents: An Aspect-Oriented Approach","author":"A. Garcia","year":"2004","unstructured":"A. Garcia. From Objects to Agents: An Aspect-Oriented Approach. Doctoral Thesis, PUC-Rio, Computer Science Department, Rio de Janeiro, Brazil, April 2004."},{"key":"BF03192358_CR8","doi-asserted-by":"crossref","unstructured":"A. Garcia et al. Separation of Concerns in Multi-Agent Systems: An Empirical Study. In C. Lucena et al (eds.)Software Engineering for Multi-Agent Systems II, pages 49\u201371, Springer, LNCS 2940, January 2004.","DOI":"10.1007\/978-3-540-24625-1_4"},{"issue":"8","key":"BF03192358_CR9","doi-asserted-by":"crossref","first-page":"57","DOI":"10.1590\/S0104-65002002000100006","volume":"1","author":"A. Garcia","year":"2002","unstructured":"A. Garcia, V. Silva, C. Chavez, C. Lucena. Engineering Multi-Agent Systems with Aspects and Patterns.Journal of the Brazilian Computer Society, 1(8):57\u201372, July 2002.","journal-title":"Journal of the Brazilian Computer Society"},{"key":"BF03192358_CR10","doi-asserted-by":"crossref","unstructured":"J. Hannemann, G. Kiczales. Design Pattern Implementation in Java and AspectJ. InProceedings of OOPSLA\u201902, pages 161\u2013173, November 2002.","DOI":"10.1145\/583854.582436"},{"key":"BF03192358_CR11","unstructured":"B. Henderson-Sellers. Object-Oriented Metrics: Measures of Complexity. Prentice Hall, 1996."},{"key":"BF03192358_CR12","unstructured":"Java Reference Documentation. http:\/\/java.sun.com\/reference\/docs\/index.html, February 2004."},{"key":"BF03192358_CR13","doi-asserted-by":"crossref","unstructured":"A. Kersten, G. Murphy. Atlas: A Case Study in Building a Web-based learning environment using aspect-oriented programming. InProceedings of OOPSLA\u201999, pages 340\u2013352, November 1999.","DOI":"10.1145\/320385.320421"},{"key":"BF03192358_CR14","first-page":"220","volume-title":"Proceedings of ECOOP\u201997, LNCS (1241)","author":"G. Kiczales","year":"1997","unstructured":"G. Kiczales et al. Aspect-Oriented Programming. InProceedings of ECOOP\u201997, LNCS (1241), Springer-Verlag, Finland, pages 220\u2013242, June 1997."},{"issue":"1","key":"BF03192358_CR15","doi-asserted-by":"publisher","first-page":"11","DOI":"10.1145\/381790.381795","volume":"21","author":"B. Kitchenham","year":"1996","unstructured":"B. Kitchenham. Evaluating Software Engineering methods and tools, Part 1: The Evaluation Context and Evaluation Methods.ACM SIGSOFT Software Engineering Notes, 21(1):11\u201315, 1996.","journal-title":"ACM SIGSOFT Software Engineering Notes"},{"key":"BF03192358_CR16","doi-asserted-by":"crossref","unstructured":"M. Lippert, C. Lopes. A Study on Exception Detection and Handling Using Aspect-Oriented Programming. InProceedings of ICSE\u201900, pages 418\u2013427, May 2000.","DOI":"10.1145\/337180.337229"},{"key":"BF03192358_CR17","unstructured":"C. Lopes. D: A Language Framework for Distributed Programming. PhD Thesis, Northeastern University, 1997."},{"key":"BF03192358_CR18","unstructured":"C. Sant\u2019Anna. Maintainability and Reusability of Aspect-Oriented Software: An Assessment Framework. Masters Thesis, PUC-Rio, March 2004 (in Portuguese)."},{"key":"BF03192358_CR19","doi-asserted-by":"crossref","unstructured":"C. Sant\u2019Anna et al. On the Reuse and Maintenance of Aspect-Oriented Software: An Assessment Framework. InProceedings of the 17 o Brazilian Symposium on Software Engineering, pages 19\u201334, October 2003.","DOI":"10.5753\/sbes.2003.23850"},{"key":"BF03192358_CR20","doi-asserted-by":"crossref","unstructured":"S. Soares, E. Laureano, P. Borba. Implementing Distribution and Persistence Aspects with AspectJ. InProceedings of OOPSLA\u201902, pages 174\u2013190, 2002.","DOI":"10.1145\/583854.582437"},{"key":"BF03192358_CR21","doi-asserted-by":"crossref","unstructured":"P. Tarr et al. N Degrees of Separation: Multi-Dimensional Separation of Concerns. InProceedings of ICSE\u201999, pp. 107\u2013119, May 1999.","DOI":"10.1145\/302405.302457"},{"key":"BF03192358_CR22","doi-asserted-by":"crossref","unstructured":"R. Walker, E. Baniassad, G. Murphy. An Initial Assessment of Aspect-oriented Programming. InProceedings of ICSE\u201999, pages 120\u2013130, May 1999.","DOI":"10.1145\/302405.302458"}],"container-title":["Journal of the Brazilian Computer Society"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/BF03192358.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/BF03192358\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/BF03192358","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/BF03192358.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,6,4]],"date-time":"2023-06-04T05:40:38Z","timestamp":1685857238000},"score":1,"resource":{"primary":{"URL":"https:\/\/journal-bcs.springeropen.com\/articles\/10.1007\/BF03192358"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2004,6]]},"references-count":22,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2004,6]]}},"alternative-id":["BF03192358"],"URL":"https:\/\/doi.org\/10.1007\/bf03192358","relation":{},"ISSN":["0104-6500","1678-4804"],"issn-type":[{"value":"0104-6500","type":"print"},{"value":"1678-4804","type":"electronic"}],"subject":[],"published":{"date-parts":[[2004,6]]}}}