{"id":"https://openalex.org/W2172284542","doi":"https://doi.org/10.1145/2491509.2491516","title":"Trading obliviousness for modularity with cooperative aspect-oriented programming","display_name":"Trading obliviousness for modularity with cooperative aspect-oriented programming","publication_year":2013,"publication_date":"2013-07-01","ids":{"openalex":"https://openalex.org/W2172284542","doi":"https://doi.org/10.1145/2491509.2491516","mag":"2172284542"},"language":"en","primary_location":{"id":"doi:10.1145/2491509.2491516","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2491509.2491516","pdf_url":null,"source":{"id":"https://openalex.org/S142627899","display_name":"ACM Transactions on Software Engineering and Methodology","issn_l":"1049-331X","issn":["1049-331X","1557-7392"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM Transactions on Software Engineering and Methodology","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5030577882","display_name":"Kevin Hoffman","orcid":null},"institutions":[{"id":"https://openalex.org/I219193219","display_name":"Purdue University West Lafayette","ror":"https://ror.org/02dqehb95","country_code":"US","type":"education","lineage":["https://openalex.org/I219193219"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Kevin Hoffman","raw_affiliation_strings":["Purdue University, West Lafayette, IN"],"affiliations":[{"raw_affiliation_string":"Purdue University, West Lafayette, IN","institution_ids":["https://openalex.org/I219193219"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5024420075","display_name":"Patrick Eugster","orcid":"https://orcid.org/0000-0003-3864-9078"},"institutions":[{"id":"https://openalex.org/I219193219","display_name":"Purdue University West Lafayette","ror":"https://ror.org/02dqehb95","country_code":"US","type":"education","lineage":["https://openalex.org/I219193219"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Patrick Eugster","raw_affiliation_strings":["Purdue University, West Lafayette, IN"],"affiliations":[{"raw_affiliation_string":"Purdue University, West Lafayette, IN","institution_ids":["https://openalex.org/I219193219"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5030577882"],"corresponding_institution_ids":["https://openalex.org/I219193219"],"apc_list":null,"apc_paid":null,"fwci":1.9237,"has_fulltext":false,"cited_by_count":6,"citation_normalized_percentile":{"value":0.88901805,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":96},"biblio":{"volume":"22","issue":"3","first_page":"1","last_page":"46"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9994999766349792,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9994999766349792,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9991000294685364,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10430","display_name":"Software Engineering Techniques and Practices","score":0.9968000054359436,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/aspectj","display_name":"AspectJ","score":0.8823257684707642},{"id":"https://openalex.org/keywords/code-refactoring","display_name":"Code refactoring","score":0.8728671669960022},{"id":"https://openalex.org/keywords/modularity","display_name":"Modularity (biology)","score":0.8687738180160522},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8067018985748291},{"id":"https://openalex.org/keywords/aspect-oriented-programming","display_name":"Aspect-oriented programming","score":0.7845563888549805},{"id":"https://openalex.org/keywords/generic-programming","display_name":"Generic programming","score":0.5413681268692017},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.5079305768013},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.48897111415863037},{"id":"https://openalex.org/keywords/code-smell","display_name":"Code smell","score":0.4743272662162781},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4729102551937103},{"id":"https://openalex.org/keywords/separation-of-concerns","display_name":"Separation of concerns","score":0.46080660820007324},{"id":"https://openalex.org/keywords/software-engineering","display_name":"Software engineering","score":0.4458942711353302},{"id":"https://openalex.org/keywords/software-quality","display_name":"Software quality","score":0.238092303276062},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.22719663381576538},{"id":"https://openalex.org/keywords/software-development","display_name":"Software development","score":0.22478365898132324}],"concepts":[{"id":"https://openalex.org/C2781009160","wikidata":"https://www.wikidata.org/wiki/Q735604","display_name":"AspectJ","level":4,"score":0.8823257684707642},{"id":"https://openalex.org/C152752567","wikidata":"https://www.wikidata.org/wiki/Q116877","display_name":"Code refactoring","level":3,"score":0.8728671669960022},{"id":"https://openalex.org/C2779478453","wikidata":"https://www.wikidata.org/wiki/Q6889748","display_name":"Modularity (biology)","level":2,"score":0.8687738180160522},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8067018985748291},{"id":"https://openalex.org/C60051680","wikidata":"https://www.wikidata.org/wiki/Q30267","display_name":"Aspect-oriented programming","level":3,"score":0.7845563888549805},{"id":"https://openalex.org/C7051814","wikidata":"https://www.wikidata.org/wiki/Q1051282","display_name":"Generic programming","level":2,"score":0.5413681268692017},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5079305768013},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.48897111415863037},{"id":"https://openalex.org/C133237599","wikidata":"https://www.wikidata.org/wiki/Q2295111","display_name":"Code smell","level":5,"score":0.4743272662162781},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4729102551937103},{"id":"https://openalex.org/C76214141","wikidata":"https://www.wikidata.org/wiki/Q2465506","display_name":"Separation of concerns","level":3,"score":0.46080660820007324},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.4458942711353302},{"id":"https://openalex.org/C117447612","wikidata":"https://www.wikidata.org/wiki/Q1412670","display_name":"Software quality","level":4,"score":0.238092303276062},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.22719663381576538},{"id":"https://openalex.org/C529173508","wikidata":"https://www.wikidata.org/wiki/Q638608","display_name":"Software development","level":3,"score":0.22478365898132324},{"id":"https://openalex.org/C54355233","wikidata":"https://www.wikidata.org/wiki/Q7162","display_name":"Genetics","level":1,"score":0.0},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/2491509.2491516","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2491509.2491516","pdf_url":null,"source":{"id":"https://openalex.org/S142627899","display_name":"ACM Transactions on Software Engineering and Methodology","issn_l":"1049-331X","issn":["1049-331X","1557-7392"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM Transactions on Software Engineering and Methodology","raw_type":"journal-article"}],"best_oa_location":null,"sustainable_development_goals":[{"display_name":"Partnerships for the goals","score":0.4699999988079071,"id":"https://metadata.un.org/sdg/17"}],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":57,"referenced_works":["https://openalex.org/W10259981","https://openalex.org/W81515893","https://openalex.org/W135437107","https://openalex.org/W142616426","https://openalex.org/W153104621","https://openalex.org/W194952179","https://openalex.org/W1520827904","https://openalex.org/W1521838448","https://openalex.org/W1531869376","https://openalex.org/W1568564248","https://openalex.org/W1610570299","https://openalex.org/W1838738563","https://openalex.org/W1851327982","https://openalex.org/W1967586326","https://openalex.org/W1980258361","https://openalex.org/W1987312835","https://openalex.org/W1991601392","https://openalex.org/W1996428910","https://openalex.org/W2005503523","https://openalex.org/W2017846650","https://openalex.org/W2029414465","https://openalex.org/W2029486764","https://openalex.org/W2038753224","https://openalex.org/W2040348150","https://openalex.org/W2057841013","https://openalex.org/W2065646798","https://openalex.org/W2077286094","https://openalex.org/W2081052864","https://openalex.org/W2084028549","https://openalex.org/W2096160393","https://openalex.org/W2097445863","https://openalex.org/W2099592945","https://openalex.org/W2100404317","https://openalex.org/W2101102374","https://openalex.org/W2103716739","https://openalex.org/W2105379554","https://openalex.org/W2116244845","https://openalex.org/W2117153488","https://openalex.org/W2126225516","https://openalex.org/W2129063689","https://openalex.org/W2133241651","https://openalex.org/W2134119432","https://openalex.org/W2137596803","https://openalex.org/W2146740093","https://openalex.org/W2148849581","https://openalex.org/W2156091540","https://openalex.org/W2157407613","https://openalex.org/W2157551728","https://openalex.org/W2158024764","https://openalex.org/W2158864412","https://openalex.org/W2164067955","https://openalex.org/W2169291221","https://openalex.org/W2295150383","https://openalex.org/W2519312021","https://openalex.org/W4231904752","https://openalex.org/W4250258141","https://openalex.org/W4285719527"],"related_works":["https://openalex.org/W378982846","https://openalex.org/W119868181","https://openalex.org/W1763131060","https://openalex.org/W2089652167","https://openalex.org/W4246432544","https://openalex.org/W2032396198","https://openalex.org/W4253578585","https://openalex.org/W1521838448","https://openalex.org/W2466875694","https://openalex.org/W2356136292"],"abstract_inverted_index":{"The":[0,142],"potential":[1],"of":[2,146,194],"aspect-oriented":[3],"programming":[4],"to":[5,12,33,39,77,91,97],"adequately":[6],"capture":[7],"crosscutting":[8,134],"concerns":[9,135],"has":[10],"yet":[11],"be":[13],"fully":[14,109,119,179,182],"realized.":[15],"For":[16],"example,":[17],"authors":[18],"have":[19],"detailed":[20],"significant":[21],"challenges":[22],"in":[23,112,117,144,170],"creating":[24],"reusable":[25],"aspect":[26],"component":[27],"libraries.":[28],"One":[29],"proposed":[30],"solution":[31],"is":[32,157],"introduce":[34,70],"Explicit":[35],"Join":[36],"Points":[37],"(EJPs)":[38],"increase":[40],"modularity":[41,81,156],"by":[42,136],"reducing":[43],"obliviousness,":[44],"enabling":[45],"a":[46,87,118,138],"Cooperative":[47],"Aspect-Oriented":[48],"Programming":[49],"(Co-AOP)":[50],"methodology":[51,168],"where":[52],"base":[53],"code":[54,148,175],"and":[55,66,72,74,80,122,152],"aspects":[56,111],"synergistically":[57],"collaborate.":[58],"This":[59],"article":[60],"explores":[61],"the":[62,99,128,153,166,191,197],"trade-offs":[63],"between":[64],"obliviousness":[65,79],"modularity.":[67],"We":[68,84,131,185],"briefly":[69],"EJPs":[71,116,125,195],"Co-AOP,":[73],"hypothesize":[75],"how":[76],"balance":[78],"using":[82,103,108,115,124,159],"Co-AOP.":[83],"build":[85],"upon":[86],"prior":[88],"empirical":[89],"study":[90,132],"refactor":[92],"three":[93,104],"real-life":[94],"Java":[95],"applications":[96],"implement":[98],"exception":[100],"handling":[101],"concern":[102],"distinct":[105],"strategies:":[106],"(1)":[107],"oblivious":[110,180],"AspectJ,":[113],"(2)":[114],"explicit":[120,183],"fashion,":[121],"(3)":[123],"while":[126],"following":[127],"Co-AOP":[129,167,198],"methodology.":[130,199],"other":[133],"refactoring":[137],"fourth":[139],"application,":[140],"JHotDraw.":[141],"differences":[143],"terms":[145],"common":[147],"metrics":[149],"are":[150],"analyzed,":[151],"impact":[154],"on":[155,190],"assessed":[158],"design":[160],"structure":[161],"matrices.":[162],"Results":[163],"indicate":[164],"that":[165],"can":[169],"many":[171],"cases":[172],"significantly":[173],"improve":[174],"quality":[176],"attributes":[177],"versus":[178],"or":[181],"approaches.":[184],"conclude":[186],"with":[187],"guiding":[188],"principles":[189],"proper":[192],"use":[193],"within":[196]},"counts_by_year":[{"year":2022,"cited_by_count":2},{"year":2016,"cited_by_count":1},{"year":2015,"cited_by_count":1},{"year":2014,"cited_by_count":2}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
