{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,6,1]],"date-time":"2023-06-01T08:41:41Z","timestamp":1685608901165},"reference-count":45,"publisher":"Springer Science and Business Media LLC","issue":"2","license":[{"start":{"date-parts":[[2010,5,7]],"date-time":"2010-05-07T00:00:00Z","timestamp":1273190400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/2.0"},{"start":{"date-parts":[[2010,5,7]],"date-time":"2010-05-07T00:00:00Z","timestamp":1273190400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/2.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["J Braz Comput Soc"],"published-print":{"date-parts":[[2010,8]]},"abstract":"Abstract<\/jats:title>In this paper, we argue that the most favorable uses of aspects happen when their code relies extensively on quantified statements, i.e.,\u00a0statements that may affect many parts of a system. When this happens, aspects better contribute to separation of concerns, since the otherwise duplicated and tangled code related to the implementation of a crosscutting concern is confined in a single block of code. We provide in the paper both qualitative and quantitative arguments in favor of quantification. We also propose two new metrics to capture in a simple way the amount of quantification employed in the aspects of a given system. Finally, we describe an Eclipse plugin, called ConcernMetrics that estimates the proposed metrics directly from the object-oriented code of an existing system, i.e.,\u00a0before crosscutting concerns are extracted to aspects. Our main motivation is to help developers and maintainers to decide in a cost-effective way if it is worthwhile to use aspects in their systems.<\/jats:p>","DOI":"10.1007\/s13173-010-0008-0","type":"journal-article","created":{"date-parts":[[2010,5,24]],"date-time":"2010-05-24T23:51:18Z","timestamp":1274745078000},"page":"133-146","update-policy":"http:\/\/dx.doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":8,"title":["On the benefits of quantification in AspectJ systems"],"prefix":"10.1007","volume":"16","author":[{"given":"Marco Tulio","family":"Valente","sequence":"first","affiliation":[]},{"given":"Cesar","family":"Couto","sequence":"additional","affiliation":[]},{"given":"Jaqueline","family":"Faria","sequence":"additional","affiliation":[]},{"given":"S\u00e9rgio","family":"Soares","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2010,5,7]]},"reference":[{"key":"8_CR1","doi-asserted-by":"crossref","unstructured":"Anbalagan P, Xie T (2007) Automated inference of pointcuts in aspect-oriented refactoring. In: 29th international conference on software engineering (ICSE), May 2007","DOI":"10.1109\/ICSE.2007.19"},{"issue":"1","key":"8_CR2","doi-asserted-by":"publisher","first-page":"117","DOI":"10.5381\/jot.2010.9.1.a2","volume":"9","author":"S Apel","year":"2010","unstructured":"Apel S (2010) How AspectJ is used: an analysis of eleven AspectJ programs. J\u00a0Object Technol 9(1):117\u2013142","journal-title":"J\u00a0Object Technol"},{"key":"8_CR3","doi-asserted-by":"crossref","unstructured":"Apel S, Batory D (2006) When to use features and aspects: a case study. In: 5th international conference on generative programming and component engineering (GPCE), pp\u00a059\u201368","DOI":"10.1145\/1173706.1173716"},{"key":"8_CR4","series-title":"Lecture notes in computer science","doi-asserted-by":"publisher","first-page":"125","DOI":"10.1007\/11561347_10","volume-title":"4th international conference on generative programming and component engineering (GPCE)","author":"S Apel","year":"2005","unstructured":"Apel S, Leich T, Rosenm\u00fcller M, Saake G (2005) FeatureC++: on the symbiosis of feature-oriented and aspect-oriented programming. In: 4th international conference on generative programming and component engineering (GPCE). Lecture notes in computer science, vol\u00a03676. Springer, Berlin, pp\u00a0125\u2013140"},{"key":"8_CR5","doi-asserted-by":"crossref","unstructured":"Batory D (2004) Feature-oriented programming and the AHEAD tool suite. In: 26th international conference on software engineering (ICSE), pp\u00a0702\u2013703","DOI":"10.1109\/ICSE.2004.1317496"},{"key":"8_CR6","doi-asserted-by":"crossref","unstructured":"Binkley D, Ceccato M, Harman M, Ricca F, Tonella P (2005) Automated refactoring of object oriented code into aspects. In: 21st IEEE international conference on software maintenance (ICSM), pp\u00a027\u201336","DOI":"10.1109\/ICSM.2005.27"},{"issue":"9","key":"8_CR7","doi-asserted-by":"publisher","first-page":"698","DOI":"10.1109\/TSE.2006.95","volume":"32","author":"D Binkley","year":"2006","unstructured":"Binkley D, Ceccato M, Harman M, Ricca F, Tonella P (2006) Tool-supported refactoring of existing object-oriented code into aspects. IEEE Trans Softw Eng 32(9):698\u2013717","journal-title":"IEEE Trans Softw Eng"},{"key":"8_CR8","unstructured":"Ceccato M, Tonella P (2004) Measuring the effects of software aspectization. In: 1st workshop on aspect reverse engineering (WARE 2004)"},{"key":"8_CR9","doi-asserted-by":"crossref","unstructured":"Ceccato M, Marin M, Mens K, Moonen L, Tonella P, Tourw\u00e9 T (2005) A qualitative comparison of three aspect mining techniques. In: 13th international workshop on program comprehension (IWPC), pp\u00a013\u201322","DOI":"10.1109\/WPC.2005.2"},{"issue":"6","key":"8_CR10","doi-asserted-by":"publisher","first-page":"476","DOI":"10.1109\/32.295895","volume":"20","author":"SR Chidamber","year":"1994","unstructured":"Chidamber SR, Kemerer CF (1994) A metrics suite for object oriented design. IEEE Trans Softw Eng 20(6):476\u2013493","journal-title":"IEEE Trans Softw Eng"},{"key":"8_CR11","volume-title":"Software product lines: practices and patterns","author":"P Clements","year":"2002","unstructured":"Clements P, Northrop LM (2002) Software product lines: practices and patterns. Addison-Wesley, Reading"},{"key":"8_CR12","doi-asserted-by":"crossref","unstructured":"Cole L, Borba P (2005) Deriving refactorings for AspectJ. In: 4th international conference on aspect-oriented software development (AOSD), pp\u00a0123\u2013134","DOI":"10.1145\/1052898.1052909"},{"key":"8_CR13","doi-asserted-by":"publisher","first-page":"56","DOI":"10.1145\/976270.976279","volume-title":"3rd international conference on aspect-oriented software development","author":"A Colyer","year":"2004","unstructured":"Colyer A, Clement A (2004) Large-scale AOSD for middleware. In: 3rd international conference on aspect-oriented software development. ACM, New York, pp\u00a056\u201365"},{"issue":"4","key":"8_CR14","doi-asserted-by":"publisher","first-page":"497","DOI":"10.1109\/TSE.2008.36","volume":"34","author":"M Eaddy","year":"2008","unstructured":"Eaddy M, Zimmermann T, Sherwood KD, Garg V, Murphy Gail C, Nagappan N, Aho AV (2008) Do\u00a0crosscutting concerns cause defects? IEEE Trans Softw Eng 34(4):497\u2013515","journal-title":"IEEE Trans Softw Eng"},{"key":"8_CR15","doi-asserted-by":"crossref","unstructured":"Figueiredo E, Cacho N, Sant\u2019Anna C, Monteiro M, Kulesza U, Garcia A, Soares S, Ferrari FC, Khan SS, Filho FC, Dantas F (2008) Evolving software product lines with aspects: an empirical study on design stability. In: 30th international conference on software engineering (ICSE), pp\u00a0261\u2013270","DOI":"10.1145\/1368088.1368124"},{"key":"8_CR16","doi-asserted-by":"crossref","unstructured":"Figueiredo E, Whittle J, Garcia AF (2009) ConcernMorph: metrics-based detection of crosscutting patterns. In: 7th international symposium on foundations of software engineering (FSE), pp\u00a0299\u2013300","DOI":"10.1145\/1595696.1595751"},{"key":"8_CR17","doi-asserted-by":"crossref","unstructured":"Filho FC, Cacho N, Figueiredo E, Maranhao R, Garcia A, Rubira C (2006) Exceptions and aspects: the devil is in the details. In: 14th international symposium on foundations of software engineering (FSE), pp\u00a0152\u2013162","DOI":"10.1145\/1181775.1181794"},{"key":"8_CR18","unstructured":"Filman RE, Friedman DP (2000) Aspect-oriented programming is quantification and obliviousness. In: OOSPLA workshop on advanced separation of concerns, October 2000"},{"key":"8_CR19","volume-title":"Refactoring: improving the design of existing code","author":"M Fowler","year":"1999","unstructured":"Fowler M, Beck K, Brant J, Opdyke W, Roberts D (1999) Refactoring: improving the design of existing code. Addison-Wesley, Reading"},{"key":"8_CR20","doi-asserted-by":"crossref","unstructured":"Garcia A, Sant\u2019Anna C, Figueiredo E, Kulesza U, de Lucena CJP, von Staa A (2005) Modularizing design patterns with aspects: a quantitative study. In: 4th international conference on aspect-oriented software development (AOSD), pp\u00a03\u201314","DOI":"10.1145\/1052898.1052899"},{"issue":"5","key":"8_CR21","doi-asserted-by":"publisher","first-page":"31","DOI":"10.1145\/1290993.1291005","volume":"32","author":"A Garcia","year":"2007","unstructured":"Garcia A, Greenwood P, Heineman G, Walker R, Cai Y, Yang HY, Baniassad E, Lopes CV, Schwanninger C, Zhao J (2007) Assessment of contemporary modularization techniques (ACoM) 2007: workshop report. SIGSOFT Softw Eng Notes 32(5):31\u201337","journal-title":"SIGSOFT Softw Eng Notes"},{"key":"8_CR22","doi-asserted-by":"crossref","unstructured":"Greenwood P, Bartolomei TT, Figueiredo E, D\u00f3sea M, Garcia AF, Cacho N, Sant\u2019Anna C, Soares S, Borba P, Kulesza U, Rashid A (2007) On the impact of aspectual decompositions on design stability: an empirical study. In: 21st European conference on object-oriented programming (ECOOP), pp\u00a0176\u2013200","DOI":"10.1007\/978-3-540-73589-2_9"},{"key":"8_CR23","doi-asserted-by":"crossref","unstructured":"Hilsdale E, Hugunin J (2004) Advice weaving in AspectJ. In: 3rd international conference on aspect-oriented software development (AOSD), pp\u00a026\u201335","DOI":"10.1145\/976270.976276"},{"key":"8_CR24","doi-asserted-by":"crossref","unstructured":"Kastner C, Apel S, Batory D (2007) A case study implementing features using AspectJ. In: 11th international software product line conference (SPLC), pp\u00a0223\u2013232","DOI":"10.1109\/SPLINE.2007.12"},{"key":"8_CR25","first-page":"145","volume":"4","author":"A Kellens","year":"2007","unstructured":"Kellens A, Mens K, Tonella P (2007) A survey of automated code-level aspect mining techniques. Trans Aspect-Oriented Softw Dev 4:145\u2013164","journal-title":"Trans Aspect-Oriented Softw Dev"},{"key":"8_CR26","series-title":"LNCS","first-page":"220","volume-title":"11th European conference on object-oriented programming (ECOOP)","author":"G Kiczales","year":"1997","unstructured":"Kiczales G, Lamping J, Mendhekar A, Maeda C, Lopes C, Loingtier J-M, Irwin J (1997) Aspect-oriented programming. In: 11th European conference on object-oriented programming (ECOOP). LNCS, vol\u00a01241. Springer, Berlin, pp\u00a0220\u2013242"},{"key":"8_CR27","series-title":"LNCS","first-page":"327","volume-title":"15th European conference on object-oriented programming (ECOOP)","author":"G Kiczales","year":"2001","unstructured":"Kiczales G, Hilsdale E, Hugunin J, Kersten M, Palm J, Griswold WG (2001) An overview of AspectJ. In: 15th European conference on object-oriented programming (ECOOP). LNCS, vol\u00a02072. Springer, Berlin, pp\u00a0327\u2013355"},{"key":"8_CR28","unstructured":"Koppen C, St\u00f6rzer M (2004) PCDiff: attacking the fragile pointcut problem. In: European interactive workshop on aspects in software (EIWAS), September 2004"},{"key":"8_CR29","doi-asserted-by":"crossref","unstructured":"Kulesza U, Sant\u2019Anna C, Garcia A, Coelho R, von Staa A, Lucena C (2006) Quantifying the effects of aspect-oriented programming: a\u00a0maintenance study. In: 22nd IEEE international conference on software maintenance, pp\u00a0223\u2013233","DOI":"10.1109\/ICSM.2006.48"},{"key":"8_CR30","unstructured":"Laddad R (2003) Aspect-oriented refactoring. TheServerSide.com"},{"key":"8_CR31","doi-asserted-by":"crossref","unstructured":"Liu J, Batory D, Lengauer C (2006) Feature oriented refactoring of legacy applications. In: 28th international conference on software engineering (ICSE), pp\u00a0112\u2013121","DOI":"10.1145\/1134285.1134303"},{"key":"8_CR32","doi-asserted-by":"crossref","unstructured":"Lopez-Herrejon R, Apel S (2007) Measuring and characterizing crosscutting in aspect-based programs: basic metrics and case studies. In: 10th international conference on fundamental approaches to software engineering (FASE), March 2007","DOI":"10.1007\/978-3-540-71289-3_32"},{"key":"8_CR33","series-title":"LNCS","first-page":"169","volume-title":"19th European conference on object-oriented programming (ECOOP)","author":"R Lopez-Herrejon","year":"2005","unstructured":"Lopez-Herrejon R, Batory D, Cook WR (2005) Evaluating support for features in advanced modularization technologies. In: 19th European conference on object-oriented programming (ECOOP). LNCS, vol\u00a03586. Springer, Berlin, pp\u00a0169\u2013194"},{"key":"8_CR34","doi-asserted-by":"crossref","unstructured":"Marin M, van Deursen A, Moonen L (2007) Identifying crosscutting concerns using fan-in analysis. ACM Trans Softw Eng Methodol 17(1)","DOI":"10.1145\/1314493.1314496"},{"issue":"2","key":"8_CR35","doi-asserted-by":"publisher","first-page":"323","DOI":"10.1007\/s10515-009-0051-2","volume":"16","author":"M Marin","year":"2009","unstructured":"Marin M, van Deursen A, Moonen L, van\u00a0der Rijst R (2009) An integrated crosscutting concern migration strategy and its semi-automated application to JHotDraw. Autom Softw Eng 16(2):323\u2013356","journal-title":"Autom Softw Eng"},{"key":"8_CR36","doi-asserted-by":"publisher","first-page":"214","DOI":"10.1007\/11687061_7","volume":"3880","author":"MP Monteiro","year":"2006","unstructured":"Monteiro MP, Fernandes JM (2006) Towards a catalogue of refactorings and code smells for AspectJ. Trans Aspect-Oriented Softw Dev 3880:214\u2013258","journal-title":"Trans Aspect-Oriented Softw Dev"},{"issue":"1","key":"8_CR37","doi-asserted-by":"publisher","first-page":"138","DOI":"10.1016\/j.infsof.2008.02.001","volume":"51","author":"M Nassau","year":"2009","unstructured":"Nassau M, Valente MT (2009) Object-oriented transformations for extracting aspects. Inf Softw Technol 51(1):138\u2013149","journal-title":"Inf Softw Technol"},{"issue":"3","key":"8_CR38","first-page":"101","volume":"8","author":"M Nassau","year":"2009","unstructured":"Nassau M, Oliveira S, Valente MT (2009) Guidelines for enabling the extraction of aspects from existing object-oriented code. J\u00a0Object Technol 8(3):101\u2013119","journal-title":"J\u00a0Object Technol"},{"issue":"12","key":"8_CR39","doi-asserted-by":"publisher","first-page":"1053","DOI":"10.1145\/361598.361623","volume":"15","author":"DL Parnas","year":"1972","unstructured":"Parnas DL (1972) On the criteria to be used in decomposing systems into modules. Commun ACM 15(12):1053\u20131058","journal-title":"Commun ACM"},{"key":"8_CR40","doi-asserted-by":"crossref","unstructured":"Robillard MP, Weigand-Warr F (2005) ConcernMapper: simple view-based separation of scattered concerns. In: OOPSLA eclipse technology exchange workshop (ETX), pp\u00a065\u201369","DOI":"10.1145\/1117696.1117710"},{"key":"8_CR41","doi-asserted-by":"crossref","unstructured":"Sant\u2019Anna C, Garcia A, Chavez C, Lucena C, von Staa A (2003) On the reuse and maintenance of aspect-oriented software: an assessment framework. In: 17th Brazilian symposium on software engineering (SBES), pp\u00a019\u201334","DOI":"10.5753\/sbes.2003.23850"},{"key":"8_CR42","doi-asserted-by":"publisher","first-page":"174","DOI":"10.1145\/582419.582437","volume-title":"Proceedings of the 17th ACM conference on object-oriented programming, systems, languages, and applications, OOPSLA\u201902","author":"S Soares","year":"2002","unstructured":"Soares S, Laureano E, Borba P (2002) Implementing distribution and persistence aspects with AspectJ. In: Proceedings of the 17th ACM conference on object-oriented programming, systems, languages, and applications, OOPSLA\u201902, Seattle, WA, USA, November 2002. ACM, New York, pp 174\u2013190"},{"key":"8_CR43","doi-asserted-by":"crossref","unstructured":"Steimann F (2006) The paradoxical success of aspect-oriented programming. In: 21st conference on object-oriented programming systems, languages, and applications (OOPSLA), pp\u00a0481\u2013497","DOI":"10.1145\/1167515.1167514"},{"key":"8_CR44","first-page":"299","volume-title":"8th international conference on functional programming (ICFP)","author":"M Wand","year":"2003","unstructured":"Wand M (2003) Understanding aspects: extended abstract. In: 8th international conference on functional programming (ICFP). ACM, New York, pp\u00a0299\u2013300"},{"key":"8_CR45","series-title":"Lecture notes in computer science","doi-asserted-by":"publisher","first-page":"54","DOI":"10.1007\/978-3-540-24721-0_4","volume-title":"7th fundamental approaches to software engineering (FASE)","author":"J Zhao","year":"2004","unstructured":"Zhao J, Xu B (2004) Measuring aspect cohesion. In: 7th fundamental approaches to software engineering (FASE). Lecture notes in computer science, vol\u00a02984. Springer, Berlin, pp\u00a054\u201368"}],"container-title":["Journal of the Brazilian Computer Society"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s13173-010-0008-0.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s13173-010-0008-0\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s13173-010-0008-0","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s13173-010-0008-0.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,6,1]],"date-time":"2023-06-01T08:08:27Z","timestamp":1685606907000},"score":1,"resource":{"primary":{"URL":"https:\/\/journal-bcs.springeropen.com\/articles\/10.1007\/s13173-010-0008-0"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2010,5,7]]},"references-count":45,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2010,8]]}},"alternative-id":["8"],"URL":"https:\/\/doi.org\/10.1007\/s13173-010-0008-0","relation":{},"ISSN":["0104-6500","1678-4804"],"issn-type":[{"value":"0104-6500","type":"print"},{"value":"1678-4804","type":"electronic"}],"subject":[],"published":{"date-parts":[[2010,5,7]]},"assertion":[{"value":"13 November 2009","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"13 April 2010","order":2,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"7 May 2010","order":3,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}]}}