{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,1,30]],"date-time":"2025-01-30T22:40:03Z","timestamp":1738276803243,"version":"3.35.0"},"edition-number":"1","reference-count":77,"publisher":"Wiley","isbn-type":[{"type":"print","value":"9780471383932"},{"type":"electronic","value":"9780470050118"}],"license":[{"start":{"date-parts":[[2008,6,13]],"date-time":"2008-06-13T00:00:00Z","timestamp":1213315200000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/doi.wiley.com\/10.1002\/tdm_license_1.1"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Modularity of software has long been the primary mechanism used in software development to improve reuse and support maintainability. However, certain concerns do not fit the module boundaries in contemporary software\u2010development paradigms. The consequence of such crosscutting concerns, such as logging, persistence, security, and so forth, is that the responsibilities of the individual modules are not clearly demarcated. Not only is a module responsible for its core state and behavior (pertaining to its business functionality, for instance) but also for that of the crosscutting concern (such as logging). This phenomenon is referred to as tangling. At the same time, we observe the scattering effect whereby a given crosscutting concem,for example, logging, is not modularized in a single element and hence hampers our ability to reason about its effect and behavior with respect to the other modules; such reasoning requires inspection of all the modules where logging is realized. This requirement goes against the established best practice of separation of concerns because the crosscutting effect results in software that is difficult to understand and maintain. Addressing this problem of crosscutting is the main focus of aspect\u2010oriented software\u2010development (AOSD) techniques. In this article, we provide an introduction to AOSD by highlighting how it provides systematic support for identification, modularization, and composition of crosscutting concerns throughout the software lifecycle.<\/jats:p>","DOI":"10.1002\/9780470050118.ecse022","type":"other","created":{"date-parts":[[2008,6,30]],"date-time":"2008-06-30T11:24:27Z","timestamp":1214825067000},"page":"1-10","source":"Crossref","is-referenced-by-count":5,"title":["Aspect\u2010Oriented Software Development: an Introduction"],"prefix":"10.1002","author":[{"given":"Johan","family":"Brichau","sequence":"first","affiliation":[]},{"given":"Ruzanna","family":"Chitchyan","sequence":"additional","affiliation":[]},{"given":"Awais","family":"Rashid","sequence":"additional","affiliation":[]},{"given":"Theo","family":"D'Hondt","sequence":"additional","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2008,6,13]]},"reference":[{"volume-title":"A Discipline of Programming","year":"1976","author":"Dijkstra E. W.","key":"e_1_2_10_2_1"},{"key":"e_1_2_10_3_1","unstructured":"K.van de Berg J.\u2010M.Conejero andR.Chitchyan AOSD ontology 1.0: Public ontology of aspect orientation inReport of the EU Network of Excellence on AOSD 2005."},{"key":"e_1_2_10_4_1","unstructured":"G.Kiczales AspectJ: Aspect\u2010oriented programming using java technology (0.7) inJavaOne Conference 2000."},{"key":"e_1_2_10_5_1","doi-asserted-by":"crossref","unstructured":"A.Rashid A.Moreira andJ.Araujo Modularisation and composition of aspectual requirements 2nd International Conference on Aspect\u2010Oriented Software Development (AOSD'02) 2003 pp.11\u201320.","DOI":"10.1145\/643603.643605"},{"key":"e_1_2_10_6_1","doi-asserted-by":"crossref","unstructured":"G.Kiczales J.Lamping A.Mendhekar C.Maeda C. V.Lopes J. M.Loingtier andJ.Irwin Aspect\u2010oriented programming 11th European Conference on Object\u2010Oriented Programming (ECOOP) 1997 Springer LNCS 1241 pp.220\u2013242.","DOI":"10.1007\/BFb0053381"},{"key":"e_1_2_10_7_1","unstructured":"The AspectJ Project. Available:http:\/\/www.eclipse.org\/aspectj\/ 2007."},{"key":"e_1_2_10_8_1","unstructured":"JAC \u2010 A Framework for Aspect\u2010Oriented Programming in Java. Available:http:\/\/jac.objectweb.org\/ 2007."},{"key":"e_1_2_10_9_1","doi-asserted-by":"crossref","unstructured":"R.Chitchyan A.Rashid P.Rayson andR.Waters Semantics\u2010based composition for aspect\u2010oriented requirements engineering 6th International Conference on Aspect\u2010Oriented Software Development 2007 ACM Press pp.36\u201348.","DOI":"10.1145\/1218563.1218569"},{"key":"e_1_2_10_10_1","unstructured":"J. Xu H. Rajan K. Sullivan 2004 IEEE Computer Society Press 332 335"},{"key":"e_1_2_10_11_1","doi-asserted-by":"crossref","unstructured":"G.KiczalesandM.Mezini Separation of concerns with procedures annotations advice and pointcuts European Conference on Object\u2010Oriented Programming (ECOOP) 2005 Springer LNCS 3586 pp.195\u2013213.","DOI":"10.1007\/11531142_9"},{"key":"e_1_2_10_12_1","doi-asserted-by":"crossref","unstructured":"A.Moreira J.Araujo andA.Rashid Multi\u2010Dimensional Separation of Concerns in Requirements Engineering 13th IEEE International Conference on Requirements Engineering Conference (RE 05) 2005 IEEE Computer Society pp.285\u2013296.","DOI":"10.1109\/RE.2005.46"},{"key":"e_1_2_10_13_1","doi-asserted-by":"crossref","unstructured":"A.RashidandA.Moreira Domain models are NOT aspect free Proc. MoDELS\/UML 2006 pp.155\u2013169.","DOI":"10.1007\/11880240_12"},{"key":"e_1_2_10_14_1","unstructured":"I.JacobsonandP.\u2010W.Ng Aspect\u2010Oriented Software Development with Use Cases. Addison Wesley Professional 2005."},{"key":"e_1_2_10_15_1","doi-asserted-by":"crossref","unstructured":"E.BaniassadandS.Clarke Theme: An approach for aspect\u2010oriented analysis and design International Conference on Software Engineering 2004 IEEE Computer Society pp.158\u2013167.","DOI":"10.1109\/ICSE.2004.1317438"},{"volume-title":"Aspect\u2010Oriented Analysis and Design: the Theme Approach","year":"2005","author":"Clarke S.","key":"e_1_2_10_16_1"},{"key":"e_1_2_10_17_1","first-page":"425","volume-title":"Aspect\u2010Oriented Software Development","author":"Clarke S.","year":"2005"},{"volume-title":"Object\u2010Oriented Software Engineering: A Use Case Driven Approach","year":"1992","author":"Jacobson I.","key":"e_1_2_10_18_1"},{"key":"e_1_2_10_19_1","doi-asserted-by":"publisher","DOI":"10.1016\/0167-6423(93)90021-G"},{"key":"e_1_2_10_20_1","doi-asserted-by":"crossref","unstructured":"A. Lamsweerde 2001 IEEE Press 249 263","DOI":"10.1023\/A:1013271316393"},{"key":"e_1_2_10_21_1","doi-asserted-by":"publisher","DOI":"10.1049\/ip-sen:20040921"},{"key":"e_1_2_10_22_1","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2006.8"},{"key":"e_1_2_10_23_1","unstructured":"R. Chitchyan A. Rashid P. Sawyer A. Garcia M. Pinto J. Bakker B. Tekinerdogan S. Clarke A. Jackson 2005 Lancaster University Lancaster"},{"key":"e_1_2_10_24_1","unstructured":"I.SommervilleandP.Sawyer PREview viewpoints for process and requirements analysis Lancaster University Lancaster REAIMS\/WP5.1\/LU060 29 May 1996."},{"key":"e_1_2_10_25_1","doi-asserted-by":"publisher","DOI":"10.1023\/A:1018946223345"},{"volume-title":"Computer Science","year":"2006","author":"Silva L. F.","key":"e_1_2_10_26_1"},{"key":"e_1_2_10_27_1","unstructured":"Y.Yu J. C. S. d. P.Leite andJ.Mylopoulos From goals to aspects: Discovering aspects from requirements goal models International Conference on Requirements Engineering 2004 IEEE Computer Society pp.38\u201347."},{"key":"e_1_2_10_28_1","doi-asserted-by":"crossref","unstructured":"A.Moreira J.Ara\u00fajo andI.Brito Crosscutting quality attributes for requirements engineering 14th International Conference on Software Engineering and Knowledge Engineering (SEKE) 2002 ACM pp.167\u2013174.","DOI":"10.1145\/568760.568790"},{"key":"e_1_2_10_29_1","unstructured":"W.\u2010M.Ho F.Pennaneach J.\u2010M.Jezequel andN.Plouzeau Aspect\u2010oriented design with the UML inWorkshop on Multi\u2010Dimensional Separation of Concerns in Software Engineering (ICSE 2000) 2000."},{"key":"e_1_2_10_30_1","doi-asserted-by":"crossref","unstructured":"W. M.Ho J.\u2010M.Jezequel F.Pennaneac'h andN.Plouzeau A toolkit for weaving aspect oriented UML designs inProc. 1st Int' Conf. on Aspect\u2010Oriented Software Development (AOSD\u20102002) G.Kiczales ed. 2002 pp.99\u2013105.","DOI":"10.1145\/508386.508398"},{"key":"e_1_2_10_31_1","doi-asserted-by":"crossref","unstructured":"A.Kellens K.Mens J.Brichau andK.Gybels Managing the evolution of aspect\u2010oriented software with model\u2010based pointcuts European Conference on Object\u2010Oriented Programming (ECOOP) 2006 Springer LNCS 4067 pp.501\u2013525.","DOI":"10.1007\/11785477_28"},{"key":"e_1_2_10_32_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.825767"},{"key":"e_1_2_10_33_1","doi-asserted-by":"crossref","first-page":"3","DOI":"10.1007\/978-3-540-77042-8_2","article-title":"COMPASS: composition\u2010centric mapping of aspectual requirements to architecture","volume":"4","author":"Chitchyan R.","year":"2007","journal-title":"Transactions on Aspect\u2010Oriented Software Development"},{"key":"e_1_2_10_34_1","unstructured":"M.PintoandL.Fuentes AO\u2010ADL: An ADL for describing aspect\u2010oriented architectures. Early Aspect Workshop (held with AOSD'07) 2007."},{"key":"e_1_2_10_35_1","doi-asserted-by":"crossref","unstructured":"M.Pinto N.G\u00e1mez andL.Fuentes Towards the architectural definition of the health watcher system with AO\u2010ADL. Early Aspect Workshop (held with ICSE'07) 2007.","DOI":"10.1109\/EARLYASPECTS.2007.10"},{"key":"e_1_2_10_36_1","doi-asserted-by":"crossref","unstructured":"J.P\u00e9rez I.Ramos J.Ja\u00e9n P.Letelier andE.Navarro PRISMA:Towards quality aspect\u2010oriented and dynamic software architectures 3rd IEEE Intl Conf. on Quality Software (QSIC 2003) 2003 IEEE Computer Society pp.59\u201366.","DOI":"10.1109\/QSIC.2003.1319086"},{"key":"e_1_2_10_37_1","unstructured":"N.Pessemier L.Seinturier andL.Duchien Components ADL and AOP: Towards a Common Approach RAMSE: Workshop on Reflection AOP and Meta\u2010Data for Software Evolution (held with ECOOP'04) 2004 pp.61\u201369."},{"key":"e_1_2_10_38_1","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/bxh083"},{"key":"e_1_2_10_39_1","doi-asserted-by":"crossref","unstructured":"M.Pinto D.Jim\u00e9nez andL.Fuentes Developing dynamic and adaptable applications with CAM\/DAOP: A virtual office application 4th International Conference on Generative Programming and Component Engineering (GPSE) 2005 LNCS 3676 pp.438\u2013441.","DOI":"10.1007\/11561347_29"},{"issue":"5","key":"e_1_2_10_40_1","doi-asserted-by":"crossref","DOI":"10.1145\/1163514.1178646","article-title":"Driving and Managing Architectural Decisions with Aspects","volume":"31","author":"Garcia A.","year":"2006","journal-title":"ACM SIGSOFT Software Engineering Notes"},{"key":"e_1_2_10_41_1","doi-asserted-by":"crossref","unstructured":"C.Sant'Anna E.Figueiredo A. F.Garcia andC. J. P. d.Lucena On the modularity of software architectures: A concern\u2010driven measurement framework First European Conference on Software Architecture (ECSA'07) 2007 LNCS 4758 pp.207\u2013224.","DOI":"10.1007\/978-3-540-75132-8_17"},{"key":"e_1_2_10_42_1","doi-asserted-by":"crossref","unstructured":"J.Klein L.Helouet andJ.Jezequel Semantics\u2010based weaving of scenarios International Conference on Aspect\u2010Oriented Software Development (AOSD) 2006 ACM pp.27\u201338.","DOI":"10.1145\/1119655.1119662"},{"key":"e_1_2_10_43_1","doi-asserted-by":"crossref","unstructured":"T.Cottenier A.van den Berg andT.Elrad Joinpoint inference from behavioral specification to implementation European Conference on Object\u2010Oriented Programming (ECOOP) 2007 Springer LNCS 4609 pp.476\u2013500.","DOI":"10.1007\/978-3-540-73589-2_23"},{"key":"e_1_2_10_44_1","unstructured":"J.SuzukiandY.Yamamoto Extending UML with aspects: Aspect support in the design phase Workshop on Aspect\u2010Oriented Programming (held with ECOOP 1999) 1999."},{"key":"e_1_2_10_45_1","unstructured":"L.Fuentes M.Pinto andA.Vallecillo How MDA can help designing component\u2010 and aspect\u2010based applications Enterprise Distributed Object Computing Conference (EDOC) 2003."},{"key":"e_1_2_10_46_1","unstructured":"J. L.Herrero F.Sanchez F.Lucio andM.Toro Introducing separation of aspects at design time Workshop on Aspects and Dimensions of Concerns (held with ECOOP 2000) 2000."},{"key":"e_1_2_10_47_1","doi-asserted-by":"crossref","unstructured":"S.Hanenberg D.Stein andR.Unland From aspect\u2010oriented design to aspect\u2010oriented programs: Tool\u2010supported translation of JPDDs into code 6th International Conference on Aspect\u2010Oriented Software Development 2007 ACM pp.49\u201362.","DOI":"10.1145\/1218563.1218570"},{"key":"e_1_2_10_48_1","doi-asserted-by":"crossref","unstructured":"D.Stein S.Hanenberg andR.Unland Expressing different conceptual models of join point selections in aspect\u2010oriented design 5th International Conference on Aspect\u2010Oriented Software Development 2006 ACM pp.15\u201326.","DOI":"10.1145\/1119655.1119661"},{"key":"e_1_2_10_49_1","unstructured":"JBoss Aspect Oriented Programming Webpage. Available:http:\/\/www.jboss.org\/products\/aop: JBoss 2007."},{"key":"e_1_2_10_50_1","unstructured":"The Spring Framework. Available:http:\/\/www.springframework.org\/ 2007."},{"key":"e_1_2_10_51_1","unstructured":"Survey of aspect\u2010oriented languages and execution models VUB Brussels Belgium AOSD\u2010Europe Project Report (D12) AOSD\u2010Europe\u2010VUB\u201001 2005."},{"key":"e_1_2_10_52_1","unstructured":"1997 Northeastern University Boston MA C. V. Lopes D: A language framework for distributed programming Ph.D. dissevtation"},{"key":"e_1_2_10_53_1","doi-asserted-by":"crossref","unstructured":"M.D'HondtandV.Jonckers Hybrid aspects for weaving object\u2010oriented functionality and rule\u2010based knowledge International Conference on Aspect\u2010Oriented Software Development (AOSD) 2004 ACM pp.132\u2013140.","DOI":"10.1145\/976270.976287"},{"key":"e_1_2_10_54_1","doi-asserted-by":"crossref","unstructured":"J.FabryandT.Cleenewerck Aspect\u2010oriented domain specific languages for advanced transaction management International Conference on Enterprise Information Systems (ICEIS'05) 2005 pp.428\u2013432.","DOI":"10.5220\/0002526404280432"},{"key":"e_1_2_10_55_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-36557-5_17"},{"key":"e_1_2_10_56_1","first-page":"1","volume-title":"Advances in Smalltalk","author":"Brichau J.","year":"2006"},{"key":"e_1_2_10_57_1","doi-asserted-by":"crossref","unstructured":"K.GybelsandJ.Brichau Arranging language features for more robust pattern\u2010based crosscuts Second International Conference on Aspect\u2010Oriented Software Development (AOSD) 2003 ACM pp.60\u201369.","DOI":"10.1145\/643603.643610"},{"key":"e_1_2_10_58_1","doi-asserted-by":"crossref","unstructured":"K.Ostermann M.Mezini andC.Bockisch Expressive pointcutsfor increased modularity European Conference on Object\u2010Oriented Programming (ECOOP) 2005 Springer\u2010Verlag LNCS pp.214\u2013240.","DOI":"10.1007\/11531142_10"},{"key":"e_1_2_10_59_1","doi-asserted-by":"crossref","unstructured":"C.Bockisch M.Haupt M.Mezini andK.Ostermann Virtual Machine Support for Dynamic Join Points International Conference on Aspect\u2010Oriented Software Development (AOSD'04) 2004 ACM pp.83\u201392.","DOI":"10.1145\/976270.976282"},{"key":"e_1_2_10_60_1","unstructured":"M.HauptandM.Mezini Virtual machine support for aspects with advice instance tables First French Workshop on Aspect\u2010Oriented Programming 2004."},{"key":"e_1_2_10_61_1","doi-asserted-by":"crossref","unstructured":"C.Bockisch S.Kanthak M.Haupt M.Arnold andM.Mezini Efficient Control Flow Quantification International Conference on Object\u2010oriented Programming Systems Languages and Applications (OOPSLA) 2006 ACM Sigplan pp.125\u2013138.","DOI":"10.1145\/1167515.1167484"},{"key":"e_1_2_10_62_1","first-page":"181","volume-title":"Customization of object request brokers through dynamic reconfiguration, TOOLS Europe","author":"Truyen E.","year":"2000"},{"key":"e_1_2_10_63_1","doi-asserted-by":"crossref","unstructured":"C.ZhangandH.\u2010A.Jacobsen Resolving feature convolution in middleware systems ACM SIGPLAN Conference on Object\u2010Oriented Programming Systems Languages and Applications (OOPSLA) 2004 ACM pp.188\u2013205.","DOI":"10.1145\/1035292.1028992"},{"key":"e_1_2_10_64_1","doi-asserted-by":"crossref","unstructured":"A.ColyerandA.Clement Large\u2010scale AOSD for middleware International Conference on Aspect\u2010Oriented Software Development (AOSD) 2004 ACM pp.56\u201365.","DOI":"10.1145\/976270.976279"},{"key":"e_1_2_10_65_1","doi-asserted-by":"publisher","DOI":"10.1145\/320385.320421"},{"key":"e_1_2_10_66_1","doi-asserted-by":"crossref","unstructured":"S.Soares E.Laureano andP.Borba Implementing distribution and persistence aspects with AspectJ Conference on Object\u2010Oriented Programming Systems Languages and Applications (OOPSLA) 2002 ACM pp.174\u2013190.","DOI":"10.1145\/583854.582437"},{"key":"e_1_2_10_67_1","doi-asserted-by":"crossref","unstructured":"A.Rashid Aspect\u2010Oriented Database Systems. Springer\u2010Verlag 2003.","DOI":"10.1007\/978-3-662-05851-0"},{"key":"e_1_2_10_68_1","doi-asserted-by":"crossref","unstructured":"A.RashidandR.Chitchyan Persistence as an aspect 2nd International Conference on Aspect\u2010Oriented Software Development 2003 ACM pp.120\u2013129.","DOI":"10.1145\/643603.643616"},{"key":"e_1_2_10_69_1","doi-asserted-by":"crossref","unstructured":"Y.CoadyandG.Kiczales Back to the future: a retroactive study of aspect evolution in operating system code International Conference on Aspect\u2010Oriented Software Development (AOSD) 2003 ACM pp.50\u201359.","DOI":"10.1145\/643603.643609"},{"key":"e_1_2_10_70_1","unstructured":"Spring Aspect\u2010Oriented Programming with Spring. Available:http:\/\/www.springframework.org\/docs\/reference\/aop.html 2007."},{"key":"e_1_2_10_71_1","doi-asserted-by":"crossref","unstructured":"N.Cacho C.Sant'Anna E.Figueiredo A.Garcia T.Batista andC.Lucena Composing design patterns: A scalability study of aspect\u2010oriented programming International Conference on Aspect\u2010Oriented Software Development (AOSD) 2006 ACM pp.109\u2013121.","DOI":"10.1145\/1119655.1119672"},{"key":"e_1_2_10_72_1","doi-asserted-by":"crossref","unstructured":"A.Garcia C.Sant'Anna E.Figueiredo U.Kulesza C.Lucena andA. v.Staa Modularizing design patterns with aspects: A quantitative study International Conference on Aspect\u2010Oriented Software Development (AOSD) 2005 ACM pp.3\u201314.","DOI":"10.1145\/1052898.1052899"},{"key":"e_1_2_10_73_1","doi-asserted-by":"crossref","unstructured":"P.Greenwood T.Bartolomei E.Figueiredo M.Dosea A.Garcia N.Cacho C.Sant'Anna U.Kulesza S.Soares P.Borba andA.Rashid On the impact of aspectual decompositions on design stability: An empirical study European Conference on Object\u2010Oriented Programming (ECOOP'07) 2007 Springer LNCS 4609 pp.176\u2013200.","DOI":"10.1007\/978-3-540-73589-2_9"},{"key":"e_1_2_10_74_1","doi-asserted-by":"crossref","unstructured":"C.LopesandS.Bajracharya An analysis of modularity in aspect oriented design International Conference on Aspect\u2010Oriented Software Development (AOSD) 2005 ACM pp.15\u201326.","DOI":"10.1145\/1052898.1052900"},{"key":"e_1_2_10_75_1","doi-asserted-by":"crossref","unstructured":"M.Bruntink A. v.Deursen M.D'Hondt andT.Tourwe Simple crosscutting concerns are not so simple: Analysing variability in large\u2010scale idioms\u2010based implementations International Conference on Aspect\u2010Oriented Software Development (AOSD) 2007 ACM pp.199\u2013211.","DOI":"10.1145\/1218563.1218586"},{"key":"e_1_2_10_76_1","doi-asserted-by":"crossref","unstructured":"T.XieandJ.Zhao A framework and tool supports for generating test inputs of AspectJ programs International Conference on Aspect\u2010Oriented Software Development (AOSD) 2006 ACM pp.190\u2013201.","DOI":"10.1145\/1119655.1119681"},{"key":"e_1_2_10_77_1","doi-asserted-by":"crossref","unstructured":"D.XuandW.Xu State\u2010based incremental testing of aspect\u2010oriented programs International Conference on Aspect\u2010Oriented Software Development (AOSD) 2006 ACM pp.180\u2013189.","DOI":"10.1145\/1119655.1119680"},{"key":"e_1_2_10_78_1","unstructured":"J. Zhao 2003 IEEE Computer Society 188 197"}],"container-title":["Wiley Encyclopedia of Computer Science and Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/9780470050118.ecse022","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,1,30]],"date-time":"2025-01-30T22:05:32Z","timestamp":1738274732000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/9780470050118.ecse022"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2008,6,13]]},"ISBN":["9780471383932","9780470050118"],"references-count":77,"alternative-id":["10.1002\/9780470050118.ecse022","10.1002\/9780470050118"],"URL":"https:\/\/doi.org\/10.1002\/9780470050118.ecse022","archive":["Portico"],"relation":{},"subject":[],"published":{"date-parts":[[2008,6,13]]}}}