@techreport{filman:baop05, title = {A Bibliography of Aspect-Oriented Programming, Version 2.0}, author = {Robert E. Filman}, month = nov, year = 2005, institution = { }, remark = { source is: \documentclass[twocolumn,10pt]{article} \setlength{\columnsep}{.375in} \setlength{\textwidth}{6.5in} \setlength{\textheight}{9in} \setlength{\oddsidemargin}{0in} \setlength{\evensidemargin}{0in} \begin{document} \bibliographystyle{plain} \title{A Bibliography of Aspect-Oriented Software Development\\Version 2.0} \author{Robert E. Filman} \maketitle A bibliography of the literature related to Aspect-Oriented Software Development. My thanks to Mario {S\"udholt}, Karl Lieberherr, Sacher Dominik, G\"unter Kniesel, Bart De Win, Lee Carver, Curtis Clifton, Mira Mezini, Olaf Conradi, and Minhuan Huang for their contributions. This is meant to be an evolving document. Please send additions, corrections, comments and disagreements to the author at {\em filman@computer.org}. There's more detail in the bibtex version of this file (http://home.comcast.net/{\tilde}refilman/text/oif/aosd-bibliography.bib). \newsavebox{\baz}\savebox{\baz}{\cite{*}} \bibliography{aosdp-bibliography} \end{document} }, remark2 = {Journal of Aspect Orientation http://www.onlinejao.org/ (periodic)} } @string{icse = "Int'l Conf. Software Engineering"} @string{ieee-software = "{IEEE} Software"} @string{ecoop = "European Conf. on Object-Oriented Programming"} @string{case = "Int'l Workshop on CASE"} @string{tose = "{IEEE} Trans. Soft. Eng."} @string{sac = "{ACM} Computer Science Conference, Symposium on Applied Computing"} @string{tapos = "Theory and Practice of Object Systems"} @string{surveys = "{ACM} Computing Surveys"} @string{toplas = "{ACM} Trans. Prog. Lang. Sys."} @string{cacm = "Comm. {ACM}"} @string{fse = "Symposium on Foundations of Software Engineering, SIGSOFT"} @string{kluwer = "Kluwer Academic Publishers"} @string{svlncs = "Springer-Verlag Lecture Notes in Computer Science"} @string{acm = "{ACM}"} @string{sv = "{Springer-Verlag}"} @string{ieee = "{IEEE}"} @string{spe = "Software Practice and Experience"} @string{jsme = "Journal of Software Maintenance and Evolution: Research and Practice"} @string{joot = "Journal of Object Technology"} @string{tosem = "{ACM} Transactions on Software Engineering and Methodology (TOSEM)"} @string{software = "{IEEE} Software"} @string{toplas = "{ACM} Transactions on Programming Languages and Systems"} @string{ibmsj = "{IBM} Systems Journal"} @string{lncs = "lncs"} @string{computer = "{IEEE} Computer"} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @inproceedings{stein:ecmda-abmbsocss05, crossref = {:ecmda-abmbsocss05}, author = {Dominik Stein and Stefan Hanenberg}, url = {http://www.win.tue.nl/ABMB/SteinHanenberg_MDA_vs_AOSD.pdf}, title = {Why Aspect-Oriented Software Development and Model-Driven Development are not the same?} } @inproceedings{schippers:ecmda-abmbsocss05, crossref = {:ecmda-abmbsocss05}, author = {Hans Schippers and Dirk Janssens}, url = {http://www.win.tue.nl/ABMB/2SchippersABMB2005.pdf}, title = {A Model Driven Approach to Multi-Dimensional Separation of Concerns with {OC}} } @inproceedings{amaya:ecmda-abmbsocss05, crossref = {:ecmda-abmbsocss05}, author = {Pablo Amaya and Carlos Gonzalez and Juan M. Murillo}, url = {http://www.win.tue.nl/ABMB/5AMBM_amaya_initialversion.pdf}, title = {Towards a Subject-Oriented Model-Driven Framework} } @inproceedings{yamada:ecmda-abmbsocss05, crossref = {:ecmda-abmbsocss05}, author = {Kiyoshi Yamada and Takuo Watanabe}, url = {http://www.win.tue.nl/ABMB/3Yamada_Watanabe.pdf}, title = {An Aspect-Oriented Approach to Modular Behavioural Specification} } @inproceedings{lau:ecmda-abmbsocss05, crossref = {:ecmda-abmbsocss05}, author = {Kung-Kiu Lau and Vladyslav Ukis}, url = {http://www.win.tue.nl/ABMB/4LauIkis.pdf}, title = {A Component Model for Separation of Control Flow from Computation in Component -Based Systems} } @inproceedings{allan:oopsla05, author = {Chris Allan and Pavel Avgustinov and Aske Simon Christensen and Laurie Hendren and Sascha Kuzins and Ond{\v r}ej Lhot\'ak and Oege de Moor and Damien Sereni and Ganesh Sittampalam and Julian Tibble}, title = {Adding trace matching with free variables to {AspectJ}}, booktitle = {OOPSLA '05: Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming systems languages and applications}, year = {2005}, isbn = {1-59593-031-0}, pages = {345--364}, location = {San Diego, CA, USA}, doi = {http://doi.acm.org/10.1145/1094811.1094839}, publisher = {ACM Press}, } @inproceedings{kojarski:oopsla05, author = {Sergei Kojarski and David H. Lorenz}, title = {Pluggable {AOP}: {Designing} aspect mechanisms for third-party composition}, booktitle = {OOPSLA '05: Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming systems languages and applications}, year = {2005}, isbn = {1-59593-031-0}, pages = {247--263}, location = {San Diego, CA, USA}, doi = {http://doi.acm.org/10.1145/1094811.1094831}, publisher = {ACM Press}, } @inproceedings{altman:eiwas05, url = {http://prog.vub.ac.be/events/eiwas2005/Papers/EIWAS2005-Alan Cyment.pdf}, title = {On the need for setpoints}, author = {Rub\'en Altman and Alan Cyment and Nicol\'as Kicillof}, crossref = {:eiwas05}, } @inproceedings{havinga:eiwas05, url = {http://prog.vub.ac.be/events/eiwas2005/Papers/EIWAS2005-Wilke Havinga.pdf}, title = {Introduction and Derivation of Annotations in {AOP}: {Applying} Expressive Pointcut Languages to Introductions}, author = {Wilke Havinga and Istv\`an Nagy and Lodewijk Bergmans\}, crossref = {:eiwas05}, } @inproceedings{douence:eiwas05, url = {http://prog.vub.ac.be/events/eiwas2005/Papers/EIWAS2005-Remi Douence.pdf}, title = {Towards a concurrent model of Event-based Aspect-Oriented Programming}, author = {R\'emi Douence and Jacques {Noy\'e}}, crossref = {:eiwas05}, } @inproceedings{stein:eiwas05, url = {http://prog.vub.ac.be/events/eiwas2005/Papers/EIWAS2005-Dominik Stein.pdf}, title = {Visualizing Join Point Selections for Stateful Aspects}, author = {Dominik Stein and Stefan Hanenberg and Rainer Unland}, crossref = {:eiwas05}, } @inproceedings{hirschfeld:eiwas05, url = {http://prog.vub.ac.be/events/eiwas2005/Papers/EIWAS2005-Robert Hirschfeld.pdf}, title = {Extending Advice Activation in AspectS}, author = {Robert Hirschfeld and Pascal Costanza}, crossref = {:eiwas05}, } @inproceedings{tanter:eiwas05, url = {http://prog.vub.ac.be/events/eiwas2005/Papers/EIWAS2005-Eric Tanter.pdf}, title = {Metalevel Facilities for Multi-Language {AOP}}, author = {\'Eric Tanter}, crossref = {:eiwas05}, } @inproceedings{vandenberg:eiwas05, url = {http://prog.vub.ac.be/events/eiwas2005/Papers/EIWAS2005-Klaas van den Berg.pdf}, title = {Disentangling Crosscutting in {AOSD}: {A} Conceptual Framework}, author = {Klaas {van den Berg} and Jos\'e Mar\'ia Conejero}, crossref = {:eiwas05}, } @inproceedings{adams:eiwas05, url = {http://prog.vub.ac.be/events/eiwas2005/Papers/EIWAS2005-Bram Adams.pdf}, title = {{AOP} for Legacy Environments, a Case Study}, author = {Bram Adams and Kris De Schutter and Andy Zaidman}, crossref = {:eiwas05}, } @inproceedings{durr:eiwas05, url = {http://prog.vub.ac.be/events/eiwas2005/Papers/EIWAS2005-Pascal Durr.pdf}, title = {Reasoning About Semantic Conflicts Between Aspects}, author = {Pascal Durr and Tom Staijen and Lodewijk Bergmans and Mehmet Aksit}, crossref = {:eiwas05}, } @inproceedings{yao:gpce05, author = {Zhen Yao and Qi-long Zheng and Guo-Liang Chen}, title = {{AOP++}: {A} Generic Aspect-Oriented Programming Framework in {C++}}, pages = {94-108}, doi = {http://dx.doi.org/10.1007/11561347_8}, crossref = {:gpce05}, bibsource = {DBLP, http://dblp.uni-trier.de} } @inproceedings{ubayashi:gpce05, author = {Naoyasu Ubayashi and Tetsuo Tamai and Shinji Sano and Yusaku Maeno and Satoshi Murakami}, title = {Model Compiler Construction Based on Aspect-Oriented Mechanisms}, pages = {109-124}, doi = {http://dx.doi.org/10.1007/11561347_9}, crossref = {:gpce05}, bibsource = {DBLP, http://dblp.uni-trier.de} } @inproceedings{apel:gpce05, author = {Sven Apel and Thomas Leich and Marko Rosenm{\"u}ller and Gunter Saake}, title = {{FeatureC++}: {On} the Symbiosis of Feature-Oriented and Aspect-Oriented Programming}, pages = {125-140}, doi = {http://dx.doi.org/10.1007/11561347_10}, crossref = {:gpce05}, bibsource = {DBLP, http://dblp.uni-trier.de} } @inproceedings{wu:gpce05, author = {Pengcheng Wu and Karl J. Lieberherr}, title = {Shadow Programming: {Reasoning} About Programs Using Lexical Join Point Information}, pages = {141-156}, doi = {http://dx.doi.org/10.1007/11561347_11}, crossref = {:gpce05}, bibsource = {DBLP, http://dblp.uni-trier.de} } @inproceedings{tanter::gpce05, author = {{\'E}ric Tanter and Jacques Noy{\'e}}, title = {A Versatile Kernel for Multi-language {AOP}}, pages = {173-188}, doi = {http://dx.doi.org/10.1007/11561347_13}, crossref = {:gpce05}, bibsource = {DBLP, http://dblp.uni-trier.de} } @inproceedings{pinto:gpce05, author = {M{\'o}nica Pinto and Daniel Jim{\'e}nez and Lidia Fuentes}, title = {Developing Dynamic and Adaptable Applications with {CAM/DAOP}: {A} Virtual Office Application}, pages = {438-441}, doi = {http://dx.doi.org/10.1007/11561347_29}, crossref = {:gpce05}, bibsource = {DBLP, http://dblp.uni-trier.de} } @inproceedings{allan:gpce05, crossref = {:gpce05}, author = {Chris Allan and Pavel Avgustinov and Aske Simon Christensen and Laurie J. Hendren and Sascha Kuzins and Jennifer {Lhot{\'a}k} and Ondrej {Lhot{\'a}k} and Oege de Moor and Damien Sereni and Ganesh Sittampalam and Julian Tibble}, title = {{{\it abc}}: The {AspectBench} Compiler for {AspectJ}}, pages = {10-16}, doi = {http://dx.doi.org/10.1007/11561347_2}, bibsource = {DBLP, http://dblp.uni-trier.de} } @inproceedings{kniesel:jfdlpa05, crossref = {:jfdlpa05}, url = {http://www.lifl.fr/jfdlpa05/kniesel.pdf}, title = {Generic Aspect Languages - Needs, Options and Challenges}, author = {G\"unter Kniesel and Tobias Rho}, } @inproceedings{denier:jfdlpa05, crossref = {:jfdlpa05}, url = {http://www.lifl.fr/jfdlpa05/denier.pdf}, title = {Expression and Composition of Design Patterns with Aspects}, author = {Simon Denier and Herv\'e Albin-Amiot and Pierre Cointe}, } @inproceedings{fabry:jfdlpa05, crossref = {:jfdlpa05}, url = {http://www.lifl.fr/jfdlpa05/fabry.jpg}, title = {Aspect-Oriented Domain-Specific Languages for Advanced Transaction Management}, author = {Johan Fabry and Thomas Cleenewerck}, } @inproceedings{escoffier:jfdlpa05, crossref = {:jfdlpa05}, url = {http://www.lifl.fr/jfdlpa05/escoffier.pdf}, title = {FractNet - Une impl\'ementation du mod\`ele \'a composant Fractal pour .NET}, author = {Cl\'ement Escoffier and Didier Donsez}, } @inproceedings{Pessemier:jfdlpa05, crossref = {:jfdlpa05}, url = {http://www.lifl.fr/jfdlpa05/pessemier.jpg}, title = {Fractal Aspect Component}, author = {Nicolas Pessemier}, } @inproceedings{mostefaoui:jfdlpa05, crossref = {:jfdlpa05}, url = {http://www.lifl.fr/jfdlpa05/mostefaoui.pdf}, title = {Mod\'elisation et v\'erificationformelle de la composition des aspects}, author = {Farida Mostefaoui and Julie Vachon}, } @inproceedings{crescenzo:jfdlpa05, crossref = {:jfdlpa05}, url = {http://www.lifl.fr/jfdlpa05/crescenzo.pdf}, title = {Une approche pour am\'eliorer la r\'eutilisabilit\`e des mod\`eles m\'etiers}, author = {Pierre Crescenzo and Philippe Lahire}, } @inproceedings{fradet:jfdlpa05, crossref = {:jfdlpa05}, url = {http://www.lifl.fr/jfdlpa05/fradet.pdf}, title = {Syst\'emes degestion de ressources et aspects de disponibilit\'e}, author = {Pascal Fradet and St\'ephane Hong Tuan Ha}, } @inproceedings{david:jfdlpa05, crossref = {:jfdlpa05}, url = {http://www.lifl.fr/jfdlpa05/david.pdf}, title = {Une approche par aspects pour le d\'eveloppement de composants Fractal adaptatifs}, author = {Pierre-Charles David and Thomas Ledoux}, } @inproceedings{cibran:jfdlpa05, crossref = {:jfdlpa05}, url = {http://www.lifl.fr/jfdlpa05/cibran.pdf}, title = {Mapping high-level business rules to and through aspects}, author = {Mar\'ia Agustina {Cibr\'an} and Maja D'Hondt and Viviane Jonckers}, } @inproceedings{cheungfoowoo:jfdlpa05, crossref = {:jfdlpa05}, url = {http://www.lifl.fr/jfdlpa05/cheung.pdf}, title = {Langage d'aspects pour la composition dynamique de composants embarqu\'es}, author = {Daniel Cheung-Foo-Woo and Mireille Blay-Fornarino and Jean-Yves Tigli and Anne-Marie Dery and David Emsellem and- Michel Riveill}, } @inproceedings{painter:icse-macs05, author = {Robert R. Painter and David Coppit}, title = {A model for software plans}, crossref = {:icse-macs05}, isbn = {1-59593-119-8}, pages = {1--5}, doi = {http://doi.acm.org/10.1145/1083125.1083128}, publisher = {ACM Press}, } @inproceedings{coelho:icse-macs05, author = {Wesley Coelho and Gail C. Murphy}, title = {ActiveAspect: presenting crosscutting structure}, booktitle = {MACS '05: Proceedings of the 2005 workshop on Modeling and analysis of concerns in software}, crossref = {:icse-macs05}, isbn = {1-59593-119-8}, pages = {1--4}, doi = {http://doi.acm.org/10.1145/1083125.1083131}, publisher = {ACM Press}, } @inproceedings{robillard:icse-macs05, author = {Martin P. Robillard and Gail C. Murphy}, title = {Just-in-time concern modeling}, booktitle = {MACS '05: Proceedings of the 2005 workshop on Modeling and analysis of concerns in software}, crossref = {:icse-macs05}, isbn = {1-59593-119-8}, pages = {1--3}, doi = {http://doi.acm.org/10.1145/1083125.1083136}, publisher = {ACM Press}, } @inproceedings{harrison:icse-macs05, author = {William Harrison and Harold Ossher and Stanley Sutton and Peri Tarr}, title = {Concern modeling in the concern manipulation environment}, booktitle = {MACS '05: Proceedings of the 2005 workshop on Modeling and analysis of concerns in software}, crossref = {:icse-macs05}, isbn = {1-59593-119-8}, pages = {1--5}, doi = {http://doi.acm.org/10.1145/1083125.1083134}, publisher = {ACM Press}, } @inproceedings{hamza:icse-macs05, author = {Haitham S. Hamza}, title = {Separation of concerns for evolving systems: a stability-driven approach}, booktitle = {MACS '05: Proceedings of the 2005 workshop on Modeling and analysis of concerns in software}, crossref = {:icse-macs05}, isbn = {1-59593-119-8}, pages = {1--5}, doi = {http://doi.acm.org/10.1145/1083125.1083137}, publisher = {ACM Press}, } @inproceedings{shepherd:icse-macs05, author = {David Shepherd and Lori Pollock and Tom Tourw\&\#233;}, title = {Using language clues to discover crosscutting concerns}, booktitle = {MACS '05: Proceedings of the 2005 workshop on Modeling and analysis of concerns in software}, crossref = {:icse-macs05}, isbn = {1-59593-119-8}, pages = {1--6}, doi = {http://doi.acm.org/10.1145/1083125.1083129}, publisher = {ACM Press}, } @inproceedings{memmert:icse-macs05, author = {Juri Memmert}, title = {Concern patterns and analysis}, booktitle = {MACS '05: Proceedings of the 2005 workshop on Modeling and analysis of concerns in software}, crossref = {:icse-macs05}, isbn = {1-59593-119-8}, pages = {1--5}, doi = {http://doi.acm.org/10.1145/1083125.1083135}, publisher = {ACM Press}, } @inproceedings{saleh:icse-macs05, author = {Mazen Saleh and Hassan Gomaa}, title = {Separation of concerns in software product line engineering}, booktitle = {MACS '05: Proceedings of the 2005 workshop on Modeling and analysis of concerns in software}, crossref = {:icse-macs05}, isbn = {1-59593-119-8}, pages = {1--5}, doi = {http://doi.acm.org/10.1145/1083125.1083139}, publisher = {ACM Press}, } @inproceedings{ying:icse-macs05, author = {Annie T. T. Ying and James L. Wright and Steven Abrams}, title = {An exploration of how comments are used for marking related code fragments}, booktitle = {MACS '05: Proceedings of the 2005 workshop on Modeling and analysis of concerns in software}, crossref = {:icse-macs05}, isbn = {1-59593-119-8}, pages = {1--4}, doi = {http://doi.acm.org/10.1145/1083125.1083141}, publisher = {ACM Press}, } @inproceedings{ubayashi:icse-macs05, author = {Naoyasu Ubayashi and Tetsuo Tamai}, title = {Concern management for constructing model compilers}, booktitle = {MACS '05: Proceedings of the 2005 workshop on Modeling and analysis of concerns in software}, crossref = {:icse-macs05}, isbn = {1-59593-119-8}, pages = {1--5}, doi = {http://doi.acm.org/10.1145/1083125.1083127}, publisher = {ACM Press}, } @inproceedings{pazos:icse-macs05, author = {Jos\'e J. {Pazos-Arias} and Jorge {Garc\'ia-Duque} and Mart\'in {L\'opez-Nores}}, title = {Locating crosscutting concerns in the formal specification of distributed reactive systems}, booktitle = {MACS '05: Proceedings of the 2005 workshop on Modeling and analysis of concerns in software}, crossref = {:icse-macs05}, isbn = {1-59593-119-8}, pages = {1--5}, doi = {http://doi.acm.org/10.1145/1083125.1083130}, publisher = {ACM Press}, } @inproceedings{jakobac:icse-macs05, author = {Vladimir Jakobac and Nenad Medvidovic and Alexander Egyed}, title = {Separating architectural concerns to ease program understanding}, booktitle = {MACS '05: Proceedings of the 2005 workshop on Modeling and analysis of concerns in software}, crossref = {:icse-macs05}, isbn = {1-59593-119-8}, pages = {1--5}, doi = {http://doi.acm.org/10.1145/1083125.1083132}, publisher = {ACM Press}, } @inproceedings{wu:icse-macs05, author = {Xiaoqing Wu and Barrett R. Bryant and Jeff Gray and Marjan Mernik}, title = {Pattern transformation for two-dimensional separation of concerns}, booktitle = {MACS '05: Proceedings of the 2005 workshop on Modeling and analysis of concerns in software}, crossref = {:icse-macs05}, isbn = {1-59593-119-8}, pages = {1--5}, doi = {http://doi.acm.org/10.1145/1083125.1083133}, publisher = {ACM Press}, } @inproceedings{zhang:icse-macs05, author = {Jing Zhang and Jeff Gray and Yuehua Lin}, title = {A model-driven approach to enforce crosscutting assertion checking}, booktitle = {MACS '05: Proceedings of the 2005 workshop on Modeling and analysis of concerns in software}, crossref = {:icse-macs05}, isbn = {1-59593-119-8}, pages = {1--5}, doi = {http://doi.acm.org/10.1145/1083125.1083138}, publisher = {ACM Press}, } @inproceedings{marin:icse-macs05, author = {Marius Marin and Leon Moonen and Arie van Deursen}, title = {An approach to aspect refactoring based on crosscutting concern types}, booktitle = {MACS '05: Proceedings of the 2005 workshop on Modeling and analysis of concerns in software}, crossref = {:icse-macs05}, isbn = {1-59593-119-8}, pages = {1--5}, doi = {http://doi.acm.org/10.1145/1083125.1083140}, publisher = {ACM Press}, } @inproceedings{liu:icse-macs05, author = {Jing (Janet) Liu and Robyn R. Lutz and Jeffrey M. Thompson}, title = {Mapping concern space to software architecture: a connector-based approach}, booktitle = {MACS '05: Proceedings of the 2005 workshop on Modeling and analysis of concerns in software}, crossref = {:icse-macs05}, isbn = {1-59593-119-8}, pages = {1--5}, doi = {http://doi.acm.org/10.1145/1083125.1083126}, publisher = {ACM Press}, } @inproceedings{baudry:models-aom05, crossref = {:models-aom05}, author = {Benoit Baudry and Franck Fleurey and Robert France and Raghu Reddy}, url = {http://dawis.informatik.uni-essen.de/events/AOM_MODELS2005/Baudry.pdf}, title = {Exploring the Relationship between Model Composition and Model Transformation}, } @inproceedings{cepa:models-aom05, crossref = {:models-aom05}, author = {Vasian Cepa and Sven Kloppenburg}, url = {http://dawis.informatik.uni-essen.de/events/AOM_MODELS2005/Cepa.pdf}, title = {Representing Explicit Attributes in UML}, } @inproceedings{cottenier:models-aom05, crossref = {:models-aom05}, author = {Thomas Cottenier and Aswin {Van Den Berg} and Tzilla Elrad}, url = {http://dawis.informatik.uni-essen.de/events/AOM_MODELS2005/Cottenier.pdf}, title = {Modeling Aspect-Oriented Compositions}, } @inproceedings{ferreira:models-aom05, crossref = {:models-aom05}, author = {Ricardo Ferreira and Ricardo Raminhos and Ana Moreira}, url = {http://dawis.informatik.uni-essen.de/events/AOM_MODELS2005/Ferreira.pdf}, title = {Metadata Driven Aspect Specification}, } @inproceedings{grieskamp:models-aom05, crossref = {:models-aom05}, author = {Wolfgang Grieskamp and Nicolas Kicillof and Colin Campbell}, url = {http://dawis.informatik.uni-essen.de/events/AOM_MODELS2005/Grieskamp.pdf}, title = {Behavioral Composition in Symbolic Domains}, } @inproceedings{groher:models-aom05, crossref = {:models-aom05}, author = {Iris Groher and Stephan Bleicher and Christa Schwanninger}, url = {http://dawis.informatik.uni-essen.de/events/AOM_MODELS2005/Groher.pdf}, title = {Model-Driven Development for Pluggable Collaborations}, } @inproceedings{jackson:models-aom05, crossref = {:models-aom05}, author = {Andrew Jackson and Siobh\'an Clarke}, url = {http://dawis.informatik.uni-essen.de/events/AOM_MODELS2005/Jackson.pdf}, title = {Towards a Generic Aspect Oriented Design Process}, } @inproceedings{lengyel:models-aom05, crossref = {:models-aom05}, author = {L\'aszl\'o Lengyel and Tiham\'er Levendovszky and Hassan Charaf }, url = {http://dawis.informatik.uni-essen.de/events/AOM_MODELS2005/Lengyel.pdf}, title = {Eliminating Crosscutting Constraints from Visual Model Transformation Rules}, } @inproceedings{mahoney:models-aom05, crossref = {:models-aom05}, author = {Mark Mahoney and Tzilla Elrad}, url = {http://dawis.informatik.uni-essen.de/events/AOM_MODELS2005/Mahoney.pdf}, title = {Weaving Crosscutting Concerns into Live Sequence Charts Using the Play Engine}, } @inproceedings{pavlich:models-aom05, crossref = {:models-aom05}, author = {Jaime Pavlich-Mariscal and Laurent Michel and Steven Demurjian}, url = {http://dawis.informatik.uni-essen.de/events/AOM_MODELS2005/Pavlich.pdf}, title = {Role Slices and Runtime Permissions: Improving an AOP-based Access Control Schema}, } @inproceedings{rached:models-aom05, crossref = {:models-aom05}, author = {Miloud Rached and Jean-Paul Bodeveix and Mamoun Filfali and Odile Nasr}, url = {http://dawis.informatik.uni-essen.de/events/AOM_MODELS2005/Rached.pdf}, title = {Real Time Aspects: Specification and Composition in B}, } @inproceedings{reddy:models-aom05, crossref = {:models-aom05}, author = {Raghu Reddy and Robert France and Sudipto Ghosh and Franck Fleurey and Benoit Baudry}, url = {http://dawis.informatik.uni-essen.de/events/AOM_MODELS2005/Reddy.pdf}, title = {Model Composition - A Signature-Based Approach}, } @inproceedings{chitchyan:oopsla-ea05, crossref = {:oopsla-ea05}, title = {Relating AO Requirements to AO Architecture}, author = {R. Chitchyan and M. Pinto and L. Fuentes, A. Rashid}, url = {http://www.cse.cuhk.edu.hk/~elisa/EA/chitchyan_pinto_fuentes_rashid_ea05.pdf}, } @inproceedings{kulesza:oopsla-ea05, crossref = {:oopsla-ea05}, title = {Instantiating and Customizing Product Line Architectures using Aspects and Crosscutting Feature Models}, author = {U. Kulesza and A. Garcia and F. Bleasby and C. Lucena}, url = {http://www.cse.cuhk.edu.hk/~elisa/EA/kulesza-garcia-bleasby-lucena-2005.pdf}, } @inproceedings{merson:oopsla-ea05, crossref = {:oopsla-ea05}, title = {Representing Aspects in the Software Architecture Practical Considerations}, author = {Paulo Merson}, url = {http://www.cse.cuhk.edu.hk/~elisa/EA/Merson05_EAworkshop.pdf}, } @inproceedings{bubl:oopsla-ea05, crossref = {:oopsla-ea05}, title = {Never mind the Source Code, but be aware of the Context when dealing with Cross Cutting Requirements}, author = {Felix Bubl}, url = {http://www.cse.cuhk.edu.hk/~elisa/EA/buebl-context_and_aspects.pdf}, } @inproceedings{rosenhainer:oopsla-ea05, crossref = {:oopsla-ea05}, title = {The Discern method: Dealing Separately with Crosscutting Concerns}, author = {Lars Rosenhainer}, url = {http://www.cse.cuhk.edu.hk/~elisa/EA/rosenhainer.pdf}, } @inproceedings{suen:oopsla-ea05, crossref = {:oopsla-ea05}, title = {Isolating Concerns in Requirements using Latent Semantic Analysis}, author = {R. Suen and E. Baniassad}, url = {http://www.cse.cuhk.edu.hk/~elisa/EA/LSA-AORA.pdf}, } @inproceedings{walton:oopsla-ea05, crossref = {:oopsla-ea05}, title = {Feature Types in Early Aspects}, author = {S. Walton and E. Eide}, url = {http://www.cse.cuhk.edu.hk/~elisa/EA/walton.pdf}, } @inproceedings{deresende:oopsla-ea05, crossref = {:oopsla-ea05}, title = {Early Aspects: Some Analysis, Trends and Perspectives}, author = {A. M. P. {de Resende} and F. F. Silveira and A. M. {da Cunha}}, url = {http://www.cse.cuhk.edu.hk/~elisa/EA/Resende - OOPSLA-EA 05 V1.5.pdf}, } @inproceedings{alfert:splc-aspl05, url = {http://trese.cs.utwente.nl/workshops/early-aspects-SPLC2005/Papers/Paper Alfert.pdf}, title = {Requirements, Features and Aspectsfor Software Product Lines}, author = {Klaus Alfert}, crossref = {:splc-aspl05}, } @inproceedings{apel:splc-aspl05, crossref = {:splc-aspl05}, url = {http://trese.cs.utwente.nl/workshops/early-aspects-SPLC2005/Papers/Paper Apel Leich Saake.pdf"}, title = {Aspect Refinement in Software Product Lines}, author = {Sven Apel and Thomas Leich and Gunter Saake}, } @inproceedings{chastek:splc-aspl05, crossref = {:splc-aspl05}, url = {http://trese.cs.utwente.nl/workshops/early-aspects-SPLC2005/Papers/Paper Chastek McGregor.pdf}, title = {Early Aspects in Software Product Line in Product Production}, author = {Gary Chastek and John D. McGregor} } @inproceedings{groher:splc-aspl05, crossref = {:splc-aspl05}, url = {http://trese.cs.utwente.nl/workshops/early-aspects-SPLC2005/Papers/Paper Groher Bleicher Schwanninger.pdf}, title = {Designing Features as Pluggable Collaborations}, author = {Iris Groher and Stephan Bleicher and Christa Schwanninger}, } @inproceedings{klein:splc-aspl05, crossref = {:splc-aspl05}, url = {http://trese.cs.utwente.nl/workshops/early-aspects-SPLC2005/Papers/Paper Klein Jezequel.pdf}, title = {Problems of the Semantic-based Weaving of Scenarios}, author = {Jacques Klein and Jean-Marc {J\'ez\'equel}}, } @inproceedings{nyssen:splc-aspl05, crossref = {:splc-aspl05}, url = {http://trese.cs.utwente.nl/workshops/early-aspects-SPLC2005/Papers/Paper Nyben Tyszberowicz Weiler.pdf}, title = {Are Aspects useful for Managing Variability in Software Product Lines? A Case Study}, author = {Alexander Nyssen and Shmuel Tyszberowicz and Thomas Weiler}, } @inproceedings{siy:splc-aspl05, crossref = {:splc-aspl05}, url = {http://trese.cs.utwente.nl/workshops/early-aspects-SPLC2005/Papers/Paper%20Siy Zand Winter.pdf}, title = {The Role of Aspects in Domain Engineering}, author = {Harvey Siy and Mansour Zand and Victor Winter}, } @book{pawlak:faopj2ee05, title = {Foundations of {AOP} for {J2EE} Development}, author = {Renaud Pawlak and Jean-Philippe {Retaill\'e} and Lionel Seinturier}, publisher = {APress}, ISBN = {1-59059-507-6}, year = {2005} } @book{pawlak:poapj04, title = {Programmation orient\'ee aspect pour {Java/J2EE}}, author = {Renaud Pawlak and Jean-Philippe {Retaill\'e} and Lionel Seinturier}, publisher = {Eyrolles}, year = 2004, remark = {In French} } @techreport{jrockit:boner05, title = {{JRockit} {JVM} Support For {AOP}, Part 1}, author = {Jonas {Bon\'er} and Alexandre Vasseur and Joakim Dahlstedt}, month = aug, year = 2005, url = {http://dev2dev.bea.com/pub/a/2005/08/jvm_aop_1.html}, institution = {BEA dev2dev}, } @techreport{jrockit:boner05a, title = {{JRockit} {JVM} Support For {AOP}, Part 2}, author = {Jonas {Bon\'er} and Alexandre Vasseur and Joakim Dahlstedt}, month = aug, year = 2005, url = {http://dev2dev.bea.com/pub/a/2005/08/jvm_aop_2.html}, institution = {BEA dev2dev}, } @techreport{sampaio:aosdeu05b, author = {Americo Sampaio and Awais Rashid}, month = apr, year = 2005, number = {AOSD-Europe-ULANC-4}, title = {Report on Tools for Knowlegde Repository}, url = {http://www.aosd-europe.net/documents/index.htm/kRep.pdf}, abstract = {This document describes technologies and tools related to Knowledge Repositories.}, institution = {AOSD-Europe}, } @techreport{sampaio:asodeu05, institution = {AOSD-Europe}, author = {Americo Sampaio and Awais Rashid}, month = apr, year = 2005, number = {AOSD-Europe-ULANC-3}, title = {Report on Tools for Web Portal Construction}, url = {http://www.aosd-europe.net/documents/index.htm/webPortal.pdf}, abstract = {This document describes recent web development techniques, standards and tools for web portal construction.} } @techreport{haupt:aosdeu05, institution = {AOSD-Europe}, number = {AOSD-Europe-TUD-3}, month = mar, year = 2005, author = {Michael Haupt and Matthew Webster and Siobh\'an Clarke and Andrew Jackson and Awais Rashid}, title = {Report of Current {AOSD} Tools-Based Activity in the Network}, url = {http://www.aosd-europe.net/documents/index.htm/FinalDeliverableD7.pdf}, abstract = {In this report, a survey of ongoing work in the AOSD-Europe network of excellence is presented.} } @techreport{chitchyan:aosdeu05, number = {AOSD-Europe-ULANC-9}, month = may, year = 2005, institution = {AOSD-Europe}, author = {Ruzanna Chitchyan and Awais Rashid and Pete Sawyer and Alessandro Garcia and M\'onica Pinto Alarcon and Jethro Bakker and Bedir Tekinerdogan and Siobh\'an Clarke and, Andrew Jackson}, title = {Survey of Aspect-Oriented Analysis and Design Approaches}, url = {http://www.aosd-europe.net/documents/index.htm/analys.pdf}, abstract = {In this report, several methods and techniques for Aspect-Oriented Analysis and Design are presented.} } @techreport{brichau:aosdeu05, institution = {AOSD-Europe}, number = {AOSD-Europe-VUB-01}, author = {Johan Brichau and Michael Haupt}, month = may, year = 2005, title = {Survey of Aspect-Oriented Languages and Execution Models }, url = {http://www.aosd-europe.net/documents/index.htm/aspLang.pdf}, abstract = {In this report, different Aspect-oriented Languages and Execution Models are presented.} } @techreport{loughran:aosdeu05, institution = {AOSD-Europe}, number = {AOSD-Europe-ULANC-10}, month = jun, year = 2005, author = {Neil Loughran and Nikos Parlavantzas and Monica Pinto and Lidia Fuentes Fern\'andez and Pablo S\'anchez and Matthew Webster and Adrian Colyer}, title = {Survey of Aspect-Oriented Middleware }, url = {http://www.aosd-europe.net/documents/index.htm/middle.pdf}, abstract = {In this report, different Aspect-oriented middlewares are presented and assessed.} } @inproceedings{tatsuzawa:icfp05, title = {Aspectual Caml: an Aspect-Oriented Functional Language}, author = {Hideaki Tatsuzawa and Hidehiko Masuhara and Akinori Yonezawa}, booktitle = {International Conference on Functional Programming (ICFP)}, location = {Tallinn, Estonia}, month = sep, publisher = {ACM}, year = 2005, isbn = {1-59593-064-7}, pages = {320--330}, doi = {http://doi.acm.org/10.1145/1086365.1086405}, } @inproceedings{dantas:icfp05, title = {PolyAML: A polymorphic aspect-oriented functional programmming language}, author = {Daniel S. Dantas and David Walker and Geoffrey Washburn and Stephanie Weirich}, booktitle = {International Conference on Functional Programming (ICFP)}, location = {Tallinn, Estonia}, month = sep, publisher = {ACM}, year = 2005, isbn = {1-59593-064-7}, doi = {http://doi.acm.org/10.1145/1086365.1086404}, pages = {306--319}, } @article{ray:ist04, author = {I. Ray and R. France and N. Li and G. Georg}, title = {An aspect-based approach to modeling access control concern}, journal = {Information and Software Technology}, month = jul, year = 2004, pages = {557-587} } @inproceedings{georg:iceccs05, author = {G. Georg and I. Ray and R. France}, title = {Using Aspects to Design a Secure System}, booktitle = {Proc. 8th IEEE Int'l Conf. on Engineering of Complex Computer Systems}, publisher = {IEEE CS Press}, month = dec, year = 2002 } @inproceedings{chen:ispec05, author = {K. Chen and C.M. Huang}, title = {A Practical Aspect Framework for Enforcing Fine-Grained Access Control in Web Applications}, booktitle = {Proc. of First Information Security Practice and Experience Conference (ISPEC 2005)}, series = {LNCS}, volume = {3439}, publisher = {Springer-Verlag}, year = 2005, pages = {156-167} } @inproceedings{kiczales:icse05, author = {Gregor Kiczales and Mira Mezini}, title = {Aspect-oriented programming and modular reasoning}, booktitle = {ICSE '05: Proceedings of the 27th international conference on Software engineering}, year = {2005}, isbn = {1-59593-963-2}, pages = {49--58}, location = {St. Louis}, doi = {http://doi.acm.org/10.1145/1062455.1062482}, publisher = {ACM Press}, address = {New York}, } @inproceedings{courbis:icse05, author = {Carine Courbis and Anthony Finkelstein}, title = {Towards aspect weaving applications}, booktitle = {ICSE '05: Proceedings of the 27th international conference on Software engineering}, year = {2005}, isbn = {1-59593-963-2}, pages = {69--77}, location = {St. Louis}, doi = {http://doi.acm.org/10.1145/1062455.1062484}, publisher = {ACM Press}, address = {New York}, } @inproceedings{batory:icse05, author = {Don Batory and Jia Liu and Jacob Neal Sarvela}, title = {Refinements and multi-dimensional separation of concerns}, booktitle = {ESEC/FSE-11: Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering}, year = {2003}, isbn = {1-58113-743-5}, pages = {48--57}, location = {Helsinki}, doi = {http://doi.acm.org/10.1145/940071.940079}, publisher = {ACM Press}, address = {New York}, } @inproceedings{chung:icse05, author = {William Chung and William Harrison and Vincent Kruskal and Harold Ossher and Stanley M. Sutton, Jr. and Peri Tarr and Matthew Chapman and Andrew Clement and Helen Hawkins and Sian January}, title = {The concern manipulation environment (Demonstration)}, booktitle = {ICSE '05: Proceedings of the 27th international conference on Software engineering}, year = 2005, isbn = {1-59593-963-2}, pages = {666--667}, location = {St. Louis}, doi = {http://doi.acm.org/10.1145/1062455.1062599}, publisher = {ACM Press}, address = {New York}, } @inproceedings{kiczales:icse05a, author = {Gregor Kiczales}, title = {Aspect-oriented programming (Tutorial)}, booktitle = {ICSE '05: Proceedings of the 27th international conference on Software engineering}, year = {2005}, isbn = {1-59593-963-2}, pages = {730--730}, location = {St. Louis}, doi = {http://doi.acm.org/10.1145/1062455.1062640}, publisher = {ACM Press}, address = {New York}, } @inproceedings{robillard:icse05, author = {Martin P. Robillard and Peri Tarr}, title = {First international workshop on the modeling and analysis of concerns in software (MACS 2005)}, booktitle = {ICSE '05: Proceedings of the 27th international conference on Software engineering}, year = {2005}, isbn = {1-59593-963-2}, pages = {685--685}, location = {St. Louis}, doi = {http://doi.acm.org/10.1145/1062455.1062611}, publisher = {ACM Press}, address = {New York}, } @inproceedings{rajan:icse05, author = {Hridesh Rajan and Kevin J. Sullivan}, title = {Classpects: unifying aspect- and object-oriented language design}, booktitle = {ICSE '05: Proceedings of the 27th international conference on Software engineering}, year = {2005}, isbn = {1-59593-963-2}, pages = {59--68}, location = {St. Louis}, doi = {http://doi.acm.org/10.1145/1062455.1062483}, publisher = {ACM Press}, address = {New York}, } @inproceedings{rajan:esecfse03, author = {Hridesh Rajan and Kevin Sullivan}, title = {Eos: instance-level aspects for integrated system design}, booktitle = {ESEC/FSE-11: Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering}, year = {2003}, isbn = {1-58113-743-5}, pages = {297--306}, location = {Helsinki, Finland}, doi = {http://doi.acm.org/10.1145/940071.940111}, publisher = {ACM Press}, address = {New York, NY, USA}, } @article{lieberherr:toplas04, author = {Karl Lieberherr and Boaz Pat-Shamir and Doug Orleans}, title = {Traversals of object structures: {Specification} and efficient implementation}, journal = toplas, month = mar, year = 2004, pages = {370--412}, volume = 26, number = 2 } @mastersthesis{furlong:ms05, author = {Jason Furlong}, school = {Royal Military College of Canada}, title = {Using Aspect-Oriented Software Development to build a Scenario Based Access Control Reference Monitor}, url = {http://www.jasonfurlong.com/thesis.pdf}, year = 2005, abstract = {Aspect-Oriented Software Development (AOSD) provides the facility to modularize cross-cutting concerns in a software system. One of the benefits of AOSD is the simultaneous parallel decomposition of orthogonal concerns, which is termed application transparency. An additional advantage is that the software programmers can focus on their respective concerns, in effect allowing for a greater amount of specialization within a project. One of the most common crosscutting concerns is security, in particular the issue of access control of protected resources and data. The goal of this thesis was to use AOSD to build a security reference monitor and implement the Scenario-Based Access Control (SBAC) model in an enterprise environment. The SBAC model is based upon the workflow of a business environment and allocates permissions based on a pre-scripted scenario. The implementation environment used the Java 2 Enterprise Edition (J2EE) application environment along with the Jakarta-Struts Model-View-Controller (MVC) framework to provide a web browser interface to the user. The thesis concludes that nearly complete application transparency and concern specialization is realizable.} } @inproceedings{breu:ase04, title = {Aspect mining using event traces}, author = {Silvia Breu and Jens Krinke}, pages = {310--315}, url = {http://ieeexplore.ieee.org/iel5/9305/29571/01342754.pdf?isNumber=29571&prod=CNF&arnumber=1342754&arSt=+310&ared=+315&arAuthor=+Breu%2C+S.%3B++Krinke%2C+J.}, publisher = {IEEE Computer Society}, address = {Los Alamitos, California}, location = {Linz, Austria}, month = sep, booktitle = {19th International Conference on Automated Software Engineering}, year = 2004} } @inproceedings{garcia:aosd05, crossref = {:aosd05}, title = {Modularizing Design Patterns with Aspects: {A} Quantitative Study}, author = {Alessandro Garcia and Cl\'audio Sant'Anna and Eduardo Figueiredo and Uir\'a Kulesza and Carlos Lucena and Arndt von Staa}, pages = {3--14}, } @inproceedings{lopes:aosd05, crossref = {:aosd05}, title = {An Analysis Of Modularity In Aspect Oriented Design}, author = {Cristina Videira Lopes and Sushil Krishna Bajracharya}, pages = {15--26}, } @inproceedings{douence:aosd05, crossref = {:aosd05}, title = {An expressive aspect language for system applications with {Arachne}}, author = {R\'emi Douence and Fritz Thomas and Nicolas Loriant and Jean-Marc Menaud and Marc {S\'egura-Devillechaise} and Mario {S\'udholt}}, pages = {27--38}, } @inproceedings{tesanovic:aosd05, crossref = {:aosd05}, title = {Empowering Configurable {QoS} Management in Real-Time Systems}, author = {Aleksandra Tesanovic and Mehdi Amirijoo and Mikael {Bj\'ork} and J\'orgen Hansson}, pages = {39--50}, } @inproceedings{engel:aosd05, crossref = {:aosd05}, title = {Supporting Autonomic Computing Functionality via Dynamic Operating System Kernel Aspects}, author = {Michael Engel and Bernd Freisleben}, pages = {51--62}, } @inproceedings{zhang:aosd05, crossref = {:aosd05}, title = {Towards Just-in-time Middleware Architectures}, author = {Charles Zhang and Gilbert Gao and Hans-Arno Jacobsen}, pages = {63--74}, } @inproceedings{vanderperren:aosd05, crossref = {:aosd05}, title = {Adaptive Programming in {JAsCo}}, author = {Wim Vanderperren and Davy {Suv\'ee} and Bart Verheecke and Mar\'\i{}a Agustina {Cibr\'an} and Viviane Jonckers}, pages = {75--86}, } @inproceedings{avgustinov:aosd05, crossref = {:aosd05}, title = {{abc}: {An} Extensible {AspectJ} Compiler}, author = {Pavel Avgustinov and Aske Simon Christensen and Laurie Hendren and Sascha Kuzins and Jennifer Lhotak and Ondrej Lhotak and Oege de Moor and Damien Sereni and Ganesh Sittampalam and Julian Tibble}, pages = {87--98}, } @inproceedings{deschutter:aosd05, crossref = {:aosd05}, title = {What does aspect-oriented programming mean to {Cobol}?}, author = {Ralf {L\'ammel} and Kris De Schutter}, pages = {99--110}, } @inproceedings{monteiro:aosd05, crossref = {:aosd05}, title = {Towards a Catalog of Aspect-Oriented Refactorings}, author = {Miguel Monteiro and Jo\tildacc{a}o Fernandes}, pages = {111--122}, } @inproceedings{cole:aosd05, crossref = {:aosd05}, title = {Deriving Refactorings for {AspectJ}}, author = {Leonardo Cole and Paulo Borba}, pages = {123--134}, } @inproceedings{hannemann:aosd05, crossref = {:aosd05}, title = {Role-Based Refactoring of Crosscutting Concerns}, author = {Jan Hannemann and Gail Murphy and Gregor Kiczales}, pages = {135--146}, } @inproceedings{cheng:aosd05, crossref = {:aosd05}, title = {Weaving a Social Fabric into Existing Software}, author = {Li-Te Cheng and John Patterson and Steven Rohall and Susanne Hupfer and Steven Ross}, pages = {147--158}, } @inproceedings{kersten:aosd05, crossref = {:aosd05}, title = {Mylar: a degree-of-interest model for {IDEs}}, author = {Mik Kersten and Gail Murphy}, pages = {159--168}, } @inproceedings{lam:aosd05, crossref = {:aosd05}, title = {Crosscutting Techniques in Program Specification and Analysis}, author = {Patrick Lam and Viktor Kuncak and Martin Rinard}, pages = {169--180}, } @inproceedings{rajan:aosd05, crossref = {:aosd05}, title = {Aspect Language Features for Concern Coverage Profiling}, author = {Hridesh Rajan and Kevin Sullivan }, pages = {181--191}, } @inproceedings{mceachen:aosd05, crossref = {:aosd05}, title = {Distributing Classes with Woven Concerns---An Exploration of Potential Fault Scenarios}, author = {Nathan McEachen and Roger Alexander }, pages = {192--200}, } @inproceedings{engel:aosd-acp4is05, crossref = {:aosd-acp4is05}, url = {http://aosd.net/2005/workshops/acp4is/crc/engel.pdf}, title = {Using a Low-Level Virtual Machine to Improve Dynamic Aspect Support in Operating System Kernels}, author = {Michael Engel and Bernd Freisleben}, } @inproceedings{lafferty:aosd-acp4is05, crossref = {:aosd-acp4is05}, url = {http://aosd.net/2005/workshops/acp4is/crc/lafferty.pdf}, title = {Avoiding Incorrect and Unpredictable Behaviour with Attribute-based Crosscutting}, author = {Donal Lafferty}, } @inproceedings{lawall:aosd-acp4is05, crossref = {:aosd-acp4is05}, url = {http://aosd.net/2005/workshops/acp4is/crc/lawall.pdf}, title = {Tarantula: Killing Driver Bugs Before They Hatch}, author = {Julia L. Lawall and Gilles Muller and Richard Urunuela}, } @inproceedings{lohmann:aosd-acp4is05, crossref = {:aosd-acp4is05}, url = {http://aosd.net/2005/workshops/acp4is/crc/lohmann.pdf}, title = {On the Configuration of Non-Functional Properties in Operating System Product Lines}, author = {Daniel Lohmann and Olaf Spinczyk and Wolfgang {Schr\"oder-Preikschat}}, } @inproceedings{loriant:aosd-acp4is05, crossref = {:aosd-acp4is05}, url = {http://aosd.net/2005/workshops/acp4is/crc/loriant.pdf}, title = {Software security patches: {Audit}, deployment and hot update}, author = {Nicolas Loriant and Marc {S\'eegura-Devillechaise} and Jean-Marc Menaud}, } @inproceedings{monfort:aosd-acp4is05, crossref = {:aosd-acp4is05}, url = {http://aosd.net/2005/workshops/acp4is/crc/monfort.pdf}, title = {Weaving Aspects to Support High Reliable Systems: {Developping} a Blood Plasma Analysis Automaton}, author = {Val\'erie Monfort and Muhammad Usman Bhatti and Assia {Ait Ali Slimane}}, } @inproceedings{pesonen:aosd-acp4is05, crossref = {:aosd-acp4is05}, url = {http://aosd.net/2005/workshops/acp4is/crc/pesonen.pdf}, title = {Evaluating an Aspect-Oriented Approach for Production-Testing Software}, author = {Jani Pesonen and Mika Katara and Tommi Mikkonen}, } @inproceedings{tesanovic:aosd-acp4is05, crossref = {:aosd-acp4is05}, url = {http://aosd.net/2005/workshops/acp4is/crc/tesanovic.pdf}, title = {Development environment for configuration and analysis of embedded and real-time systems}, author = {Aleksandra Tesanovic and Peng Mu and J\"orgen Hansson}, } @inproceedings{wohlstadter:aosd-acp4is05, crossref = {:aosd-acp4is05}, url = {http://aosd.net/2005/workshops/acp4is/crc/wohlstadter.pdf}, title = {Two Party Aspect Agreement using a {COTS} Solver}, author = {Eric Wohlstadter and Stefan Tai and Prem Devanbu}, } @inproceedings{gonzalez:aosd-aom05, crossref = {:aosd-aom05}, author = {Pablo Amaya and Carlos {Gonz\'alez} and Juan Murillo}, url = {http://dawis.informatik.uni-essen.de/events/AOM_AOSD2005/Amaya.pdf}, title = {{MDA} and Separation of Aspects --- An Approach based on Multiple Views and Subject Oriented Design} } @inproceedings{conejero:aosd-aom05, crossref = {:aosd-aom05}, author = {Jos\'e Conejero and Juan {Hern\'andez} and Roberto {Rodr\'\i{}guez}}, url = {http://dawis.informatik.uni-essen.de/events/AOM_AOSD2005/Conejero.pdf}, title = {{UML} Profile Definition for Dealing with the Notification Aspect in Distributed Environments} } @inproceedings{gokhale:aosd-aom05, crossref = {:aosd-aom05}, author = {Aniruddha Gokhale and Jeff Gray}, url = {http://dawis.informatik.uni-essen.de/events/AOM_AOSD2005/Gokhale.pdf}, title = {An Integrated Aspect-Oriented Model-Driven Development Toolsuite for Distributed Real-Time and Embedded Systems} } @inproceedings{han:aosd-aom05, crossref = {:aosd-aom05}, author = {Yan Han and G\"unter Kniesel and Armin Cremers}, url = {http://dawis.informatik.uni-essen.de/events/AOM_AOSD2005/Han.pdf}, title = {Towards Visual AspectJ by a Meta Model and Modeling Notation} } @inproceedings{mahoney:aosd-aom05, crossref = {:aosd-aom05}, author = {Mark Mahoney and Tzilla Elrad}, url = {http://dawis.informatik.uni-essen.de/events/AOM_AOSD2005/Mahoney.pdf}, title = {Modeling Platform Specific Attributes of a System as Crosscutting Concerns using Aspect-Oriented Statecharts and Virtual Finite State Machines} } @inproceedings{reddy:aosd-aom05, crossref = {:aosd-aom05}, author = {Raghu Reddy and Robert France and Geri Georg}, url = {http://dawis.informatik.uni-essen.de/events/AOM_AOSD2005/Reddy.pdf}, title = {An Aspect Oriented Approach to Analyzing Dependability Features} } @inproceedings{tkatchenko:aosd-aom05, crossref = {:aosd-aom05}, author = {Maria Tkatchenko and Gregor Kiczales}, url = {http://dawis.informatik.uni-essen.de/events/AOM_AOSD2005/Tkatchenko.pdf}, title = {Uniform Support for Modeling Crosscutting Structure} } @inproceedings{zhang:aosd-aom05, crossref = {:aosd-aom05}, author = {Gefei Zhang and Hubert Baumeister and Nora Koch and Alexander Knapp}, url = {http://dawis.informatik.uni-essen.de/events/AOM_AOSD2005/Zhang.pdf}, title = {Aspect-Oriented Modeling of Access Control in Web Applications} } @inproceedings{cole:aosd-foal05, crossref = {:aosd-foal05}, title = {Proving aspect-oriented programming laws}, url = {http://www.cs.iastate.edu/~leavens/FOAL/papers-2005/cole-borba-mota.pdf}, author = {Leonardo Cole and Paulo Borba and Alexandre Mota } } @inproceedings{harbulot:aosd-foal05, crossref = {:aosd-foal05}, title = {A join point for loops in {AspectJ}}, url = {http://www.cs.iastate.edu/~leavens/FOAL/papers-2005/harbulot-gurd.pdf}, author = {Bruno Harbulot and John R. Gurd } } @inproceedings{wu:aosd-foal05, crossref = {:aosd-foal05}, title = {How to Compile Aspects with {Real-Time} {Java}}, url = {http://www.cs.iastate.edu/~leavens/FOAL/papers-2005/wu.pdf}, author = {Pengcheng Wu } } @inproceedings{balzarotti:aosd-foal05, crossref = {:aosd-foal05}, title = {Slicing {AspectJ} Woven Code}, url = {http://www.cs.iastate.edu/~leavens/FOAL/papers-2005/balzarotti-etal.pdf}, author = {Davide Balzarotti and Antonio Castaldo D'Ursi and Luca Cavallaro and Mattia Monga } } @inproceedings{klose:aosd-foal05, crossref = {:aosd-foal05}, title = {Back to the Future: {Pointcuts} as Predicates over Traces}, url = {http://www.cs.iastate.edu/~leavens/FOAL/papers-2005/klose-ostermann.pdf}, author = {Karl Klose and Klaus Ostermann } } @inproceedings{tatsuzawa:aosd-foal05, crossref = {:aosd-foal05}, title = {Aspectual Caml: {An} Aspect-Oriented Functional Language}, url = {http://www.cs.iastate.edu/~leavens/FOAL/papers-2005/tatsuzawa-masuhara-yonezawa.pdf}, author = {Hideaki Tatsuzawa and Hidehiko Masuhara and Akinori Yonezawa} } @inproceedings{clifton:aosd-foal05, crossref = {:aosd-foal05}, title = {{MiniMAO}: {Investigating} the Semantics of Proceed}, url = {http://www.cs.iastate.edu/~leavens/FOAL/papers-2005/clifton-leavens.pdf}, author = {Curtis Clifton and Gary T. Leavens } } @inproceedings{lieberherr:aosd-foal05, crossref = {:aosd-foal05}, title = {Expressiveness and Complexity of Crosscut Languages}, url = {http://www.cs.iastate.edu/~leavens/FOAL/papers-2005/lieberherr-palm-sundaram.pdf}, author = {Karl J. Lieberherr and Jeffrey Palm and Ravi Sundaram } } @inproceedings{gulesir:aosd-late05, crossref = {:aosd-late05}, url = {http://homepages.cwi.nl/{\tilda}tourwe/late/submissions/gulesir-bergmans-durr-nagy.pdf}, title = {Separating and Managing Dependent Concerns}, author = {Gurcan Gulesir and Lodewijk Bergmans and Pascal Durr and Istvan Nagy} } @inproceedings{gybels:aosd-late05, crossref = {:aosd-late05}, url = {http://homepages.cwi.nl/{\tilda}tourwe/late/submissions/gybels-kellens.pdf}, title = {Experiences with Identifying Aspects in {Smalltalk} Using Unique Methods}, author = {Kris Gybels and Andy Kellens} } @inproceedings{shepherd:aosd-late05, crossref = {:aosd-late05}, url = {http://homepages.cwi.nl/{\tilda}tourwe/late/submissions/shepherd-pollock.pdf}, title = {Interfaces, Aspects, and Views}, author = {David Shepherd and Lori Pollock} } @inproceedings{legear:aosd-late05, crossref = {:aosd-late05}, url = {http://homepages.cwi.nl/{\tilda}tourwe/late/submissions/legear-cleary-buckley-collins-exton.pdf}, title = {Making a Reuse Aspectual View Explicit in Existing Software}, author = {Le Gear, Andrew and Brendan Cleary and Jim Buckley and J.J. Collins and Chris Exton.} } @inproceedings{mongo:aosd-late05, crossref = {:aosd-late05}, url = {http://homepages.cwi.nl/{\tilda}tourwe/late/submissions/monga.pdf}, title = {Aspect-Oriented Programming as Model Driven Evolution}, author = {Mattia Monga}, } @inproceedings{fuentes:aosd-late05, crossref = {:aosd-late05}, url = {http://homepages.cwi.nl/{\tilda}tourwe/late/submissions/fuentes-jimenez-pinto.pdf}, title = {Experiences Refactoring Ambient Intelligence Applications with Aspects}, author = {Lidia Fuentes and Daniel Jimenez and Monica Pinto} } @inproceedings{vonduersen:aosd-late05, crossref = {:aosd-late05}, url = {http://homepages.cwi.nl/{\tilda}tourwe/late/submissions/vandeursen-marin-moonen.pdf}, title = {{AJHotDraw}: {A} showcase for refactoring to aspects}, author = {van Deursen, Arie and Marius Marin and Leon Moonen.} } @inproceedings{gibbs:aosd-late05, crossref = {:aosd-late05}, url = {http://homepages.cwi.nl/{\tilda}tourwe/late/submissions/gibbs-liu-coady.pdf}, title = {And the Band Played On: {Are} Aspects Adrift in a Sea of Sinking Code?}, author = {Celina Gibbs and Chunjian Robin Liu and Yvonne Coady} } @inproceedings{wloka:aosd-late05, crossref = {:aosd-late05}, url = {http://homepages.cwi.nl/{\tilda}tourwe/late/submissions/wloka.pdf}, title = {Aspect-aware Refactoring tool support}, author = {Jan Wloka} } @inproceedings{binkley:aosd-late05, crossref = {:aosd-late05}, url = {http://homepages.cwi.nl/{\tilda}tourwe/late/submissions/binkley-ceccato-harman-tonella.pdf}, title = {Automated Pointcut Extraction}, author = {Dave Binkley and Mariano Ceccato and Mark Harman and Paolo Tonella} } @inproceedings{zhang:aosd-late05, crossref = {:aosd-late05}, url = {http://homepages.cwi.nl/{\tilda}tourwe/late/submissions/zhang-jacobsen-waterhouse-colyer.pdf}, title = {Aspect Refactoring Verifier}, author = {Charles Zhang and Hans-Arno Jacobsen and Julie Waterhouse and Adrian Colyer.} } @inproceedings{monteiro:aosd-late05, crossref = {:aosd-late05}, url = {http://homepages.cwi.nl/{\tilda}tourwe/late/submissions/monteiro-fernandes.pdf}, title = {The Search for Aspect-Oriented Refactorings Must Go On}, author = {Miguel P. Monteiro and Joao M. Fernandes} } @inproceedings{roychoudhury:aosd-late05, crossref = {:aosd-late05}, url = {http://homepages.cwi.nl/{\tilda}tourwe/late/submissions/roychoudhury-gray.pdf}, title = {Towards Language Independent Weaving Using Grammar Adapters}, author = {Suman Roychoudhury and Jeff Gray.} } @inproceedings{schafer:aosd-late05, crossref = {:aosd-late05}, url = {http://homepages.cwi.nl/{\tilda}tourwe/late/submissions/schafer-eichberg-mezini.pdf}, title = {Towards exploring crosscutting concerns}, author = {Thorsten Schafer and Michael Eichberg and Mira Mezini} } @inproceedings{chung:aosd-late05, crossref = {:aosd-late05}, url = {http://homepages.cwi.nl/{\tilda}tourwe/late/submissions/chung-harrison-kruskal-ossher-sutton-tarr.pdf}, title = {Working with Implicit Concerns in the Concern Manipulation Environment}, author = {William Chung and William Harrison and Vincent Kruskal and Harold Ossher and Sutton Jr., Stanley M. and Peri Tarr} } @inproceedings{boucke:aosd-daw05, crossref = {:aosd-daw05}, title = {State-Based Join-Points: {Motivation} and Requirements}, pages = {1--4}, author = {Nelis {Bouck\'e} and Tom Holvoet} } @inproceedings{fritz:aosd-daw05, crossref = {:aosd-daw05}, title = {An application of dynamic {AOP} to medical image generation}, pages = {5--12}, author = {Thomas Fritz and Marc {S\'egura} and Mario {S\"udholt} and Egon Wuchner and Jean-Marc Menaud} } @inproceedings{cibran:aosd-daw05, crossref = {:aosd-daw05}, title = {Dynamic Business Rules for Web Service Composition}, pages = {13--18}, author = {Maria Agustina Cibran and Bart Verheecke} } @inproceedings{hofmann:aosd-daw05, crossref = {:aosd-daw05}, title = {Flexible Call-by-call Settlement --- An Opportunity for Dynamic {AOP}}, pages = {19--25}, author = {Christian Hofmann and Robert Hirschfeld and Jeff Eastman} } @inproceedings{manson:aosd-daw05, crossref = {:aosd-daw05}, title = {Dynamic Aspects for Runtime Fault Determination and Recovery}, pages = {27--32}, author = {Jeremy Manson and Jan Vitek and Suresh Jagannathan} } @inproceedings{fuentes:aosd-daw05, crossref = {:aosd-daw05}, title = {Dynamic Weaving in {CAM/DAOP}: {An} Application Architecture Driven Approach}, pages = {33--39}, author = {Lidia Fuentes and M\'onica Pinto and Pablo {S\'anchez}} } @inproceedings{yanagisawa:aosd-daw05, crossref = {:aosd-daw05}, title = {A Source-level Kernel Profiler based on Dynamic Aspect Orientation}, pages = {41--45}, author = {Yoshisato Yanagisawa and Shigeru Chiba and Kenichi Kourai} } @inproceedings{almajali:aosd-daw05, crossref = {:aosd-daw05}, title = {Coupling Availability and Efficiency for Aspect Oriented Runtime Weaving Systems}, pages = {47--55}, author = {Sufyan Almajali and Tzilla Elrad} } @inproceedings{liu:aosd-daw05, crossref = {:aosd-daw05}, title = {{SONAR}: System Optimization and Navigation with Aspects at Runtime}, pages = {57--62}, author = {Chunjian Robin Liu and Celina Gibbs and Yvonne Coady} } @inproceedings{varma:aosd-daw05, crossref = {:aosd-daw05}, title = {Dependency Issues in Aspect Weaving}, pages = {63--69}, author = {Aditya Varma and T. V. Prabhakar} } @inproceedings{bockisch:aosd-daw05, crossref = {:aosd-daw05}, title = {Quantifying over Dynamic Properties of Program Execution}, pages = {71--75}, author = {Christoph Bockisch and Mira Mezini and Klaus Ostermann} } @inproceedings{defraine:aosd-daw05, crossref = {:aosd-daw05}, title = {Jumping Aspects Revisited}, pages = {77--86}, author = {De Fraine, Bruno and Wim Vanderperren and Davy {Suv\'ee} and Johan Brichau} } @inproceedings{cottenier:aosd-daw05, crossref = {:aosd-daw05}, title = {Contextual Pointcut Expressions for Dynamic Service Customization}, pages = {87--91}, author = {Thomas Cottenier and Tzilla Elrad} } @inproceedings{herrmann:aosd-daw05, crossref = {:aosd-daw05}, title = {Using Guard Predicates for Generalized Control of Aspect Instantiation and Activation}, pages = {93--101}, author = {Stephan Herrmann and Christine Hundt and Katharina Mehner and Jan Wloka} } @inproceedings{sampaio:aosd-ea05, crossref = {:aosd-ea05}, url = {http://trese.cs.utwente.nl/early-aspects-AOSD2005/Papers/01_SampaioLoughranRashidRayson_Lancaster.pdf}, title = {Mining Aspects in Requirements}, author = {A. Sampaio and N. Loughran and A. Rashid and P. Rayson} } @inproceedings{gonzalez:aosd-ea05, crossref = {:aosd-ea05}, url = {http://trese.cs.utwente.nl/early-aspects-AOSD2005/Papers/04_GonzalezAmayaMurillo_UExtremaduraSpain.pdf}, title = {Aspect-Oriented Analysis: {A} {MDA} Based Approach}, author = {C. Gonz\'alez and J.M Murillo and Pablo A. Amaya} } @inproceedings{zhang:aosd-ea05, crossref = {:aosd-ea05}, url = {http://trese.cs.utwente.nl/early-aspects-AOSD2005/Papers/07_ZhangJacobsenYu_UToronto.pdf}, title = {Linking Goals to Aspects}, author = {C. Zhang and H. A. Jacobsen and Y. Yu} } @inproceedings{mehner:aosd-ea05, crossref = {:aosd-ea05}, url = {http://trese.cs.utwente.nl/early-aspects-AOSD2005/Papers/08_MehnerTaentzer_TUBerlin.pdf}, title = {Supporting Aspect Oriented Modeling with Graph Transformations}, author = {K. Mehner and G. Taentzner} } @inproceedings{duan:aosd-ea05, crossref = {:aosd-ea05}, url = {http://trese.cs.utwente.nl/early-aspects-AOSD2005/Papers/09_DuanHuangSettimiZou_DepaulU.pdf}, title = {Decision Making Support for Early Aspects Identification Based on Probabilistic Trace Retrieval}, author = {C. Duan and J. Cleland-Huang and R. Settimi and X. Zou} } @inproceedings{bakker:aosd-ea05, crossref = {:aosd-ea05}, url = {http://trese.cs.utwente.nl/early-aspects-AOSD2005/Papers/11_BakkerBedirAksit_Twente.pdf}, title = {Characterization of Early Aspects Approaches}, author = {J. Bakker and B. {Tekinerdo{\u g}an} and M. {Ak{\c s}it}} } @inproceedings{xu:aosd-ea05, crossref = {:aosd-ea05}, url = {http://trese.cs.utwente.nl/early-aspects-AOSD2005/Papers/12_XuZivRichardsonLiu_UCIrvineCSFullerton.pdf}, title = {Towards Modeling Non-Functional Requirements in Software Architecture}, author = {L. Xu and H. Ziv and D. Richardson and Z. Liu} } @inproceedings{adams:aosd-splat05, crossref = {:aosd-splat05}, author = {Bram Adams and Tom {Tourw\'e}}, title = {Aspect Orientation for C: Express yourself}, url = {http://www.daimi.au.dk/~eernst/splat05/papers/Adams.pdf} } @inproceedings{aotani:aosd-splat05, crossref = {:aosd-splat05}, author = {Tomoyuki Aotani and Hidehiko Masuhara}, title = {Compiling Conditional Pointcuts for User-Level Semantic Pointcuts}, url = {http://www.daimi.au.dk/~eernst/splat05/papers/Aotani.pdf} } @inproceedings{bodden:aosd-splat05, crossref = {:aosd-splat05}, author = {Eric Bodden}, title = {Concern specific languages and their implementation with abc}, url = {http://www.daimi.au.dk/~eernst/splat05/papers/Bodden.pdf} } @inproceedings{bostrom:aosd-splat05, crossref = {:aosd-splat05}, author = {Gustav {Bostr\"om} and Martin Henkel and Jaana {W\"ayrynen}}, title = {Aspects in the Agile Toolbox}, url = {http://www.daimi.au.dk/~eernst/splat05/papers/Bostrom.pdf} } @inproceedings{chen:aosd-splat05, crossref = {:aosd-splat05}, author = {Kung Chen and Chih-Mao Huang}, title = {On Designing Access Control Aspects for Web Applications}, url = {http://www.daimi.au.dk/~eernst/splat05/papers/Kung.pdf} } @inproceedings{ernst:aosd-splat05, crossref = {:aosd-splat05}, author = {Erik Ernst}, title = {The Hardship of Software}, url = {http://www.daimi.au.dk/~eernst/splat05/papers/Ernst.pdf} } @inproceedings{hamel:aosd-splat05, crossref = {:aosd-splat05}, author = {Karl Matthias Hamel and Klaus Ostermann}, title = {Modularity and Reusability of Algorithms---A Case Study using {Caesar}}, url = {http://www.daimi.au.dk/~eernst/splat05/papers/Hamel.pdf} } @inproceedings{kellens:aosd-splat05, crossref = {:aosd-splat05}, author = {Andy Kellens and Kris Gybels}, title = {Issues in Performing and Automating the ``Extract Method Calls'' Refactoring<}, url = {http://www.daimi.au.dk/~eernst/splat05/papers/Kellens.pdf} } @inproceedings{leung:aosd-splat05, crossref = {:aosd-splat05}, author = {Wu-Hon F. Leung}, title = {Untangle with Nonprocedural Programming}, url = {http://www.daimi.au.dk/~eernst/splat05/papers/Leung.pdf} } @inproceedings{lopez-herrejon:aosd-splat05, crossref = {:aosd-splat05}, author = {Roberto E. Lopez-Herrejon and Don Batory}, title = {Improving Incremental Development in AspectJ by Bounding Quantification}, url = {http://www.daimi.au.dk/~eernst/splat05/papers/Lopez.pdf} } @inproceedings{kojarski:aosd-splat05, crossref = {:aosd-splat05}, author = {Sergei Kojarski and David H. Lorenz}, title = {A Top-Down Model of an AOP Weaving Process}, url = {http://www.daimi.au.dk/~eernst/splat05/papers/Lorenz.pdf} } @inproceedings{mehmood:aosd-splat05, crossref = {:aosd-splat05}, author = {Tariq Mehmood and Naveed Ashraf and S. {Tauseef-ur-Rehman}}, title = {Framework for Separating Performance Concerns and Improved Modularity in Multi agent systems (MAS) using Aspect Oriented Programming (AOP)}, url = {http://www.daimi.au.dk/~eernst/splat05/papers/Mehmood.pdf} } @inproceedings{nagy:aosd-splat05, crossref = {:aosd-splat05}, author = {Istvan Nagy and Lodewijk Bergmans and Gurcan Gulesir and Pascal Durr and Mehmet {Ak{\c s}it}}, title = {Generic, Property Based Queries for Evolvable Weaving Specifications}, url = {http://www.daimi.au.dk/~eernst/splat05/papers/Nagy.pdf} } @inproceedings{newman:aosd-splat05, crossref = {:aosd-splat05}, author = {Elissa Newman}, title = {Query-based Modeling and Fluid}, url = {http://www.daimi.au.dk/~eernst/splat05/papers/Newman.pdf} } @inproceedings{stoerzer:aosd-splat05, crossref = {:aosd-splat05}, author = {Maximilan Stoerzer and Stefan Hanenberg}, title = {A Classification of Pointcut Language Constructs}, url = {http://www.daimi.au.dk/~eernst/splat05/papers/Stoerzer.pdf} } @inproceedings{suvee:aosd-splat05, crossref = {:aosd-splat05}, author = {Davy Suv\'ee and Bruno De Fraine and Wim Vanderperren}, title = {{FuseJ}: An architectural description language for unifying aspects and components}, url = {http://www.daimi.au.dk/~eernst/splat05/papers/Suvee.pdf} } @inproceedings{verheecke:aosd-splat05, crossref = {:aosd-splat05}, author = {Bart Verheecke and Mar\'\i{}a Agustina Cibr\'an}, title = {Dynamic Aspects in Large Scale Distributed Applications---An Experience Report}, url = {http://www.daimi.au.dk/~eernst/splat05/papers/Verheecke.pdf} } @inproceedings{yamada:aosd-splat05, crossref = {:aosd-splat05}, author = {Kiyoshi Yamada and Takuo Watanabe}, title = {Moxa: {An} Aspect-Oriented Approach to Modular Behavioral Specifications}, url = {http://www.daimi.au.dk/~eernst/splat05/papers/Yamada.pdf} } @inproceedings{li:uml-aom04, author = {Jingyue Li and Siv Hilde Houmb and Axel Anders Kvale}, url = {http://www.cs.iit.edu/{\tilda}oaldawud/AOM/AcceptedPapers/jingyue.pdf}, crossref = {:uml-aom04}, title = {A Process to Combine {AOM} and {AOP}: {A} Proposal Based on a Case Study}, } @inproceedings{muller:uml-aom04, author = {Alexis Muller}, url = {http://www.cs.iit.edu/{\tilda}oaldawud/AOM/AcceptedPapers/muller.pdf}, crossref = {:uml-aom04}, title = {Reusing Functional Aspects: {From} Composition to Parameterization}, } @inproceedings{navarro:uml-aom04, author = {Elena Navarro and Patricio Letelier and Isidro Ramos}, url = {http://www.cs.iit.edu/{\tilda}oaldawud/AOM/AcceptedPapers/navarro.pdf}, crossref = {:uml-aom04}, title = {{UML} Visualization for an Aspect and Goal-Oriented Approach}, } @inproceedings{park:uml-aom04, author = {Daesung Park and Sungwon Kang}, url = {http://www.cs.iit.edu/{\tilda}oaldawud/AOM/Park_Kang.pdf}, crossref = {:uml-aom04}, title = {Design Phase Analysis of Software Performance Using Aspect-Oriented Programming}, } @inproceedings{spies:uml-aom04, author = {Eva Spies and Julia R\"uger and Ana Moreira}, url = {http://www.cs.iit.edu/{\tilda}oaldawud/AOM/iva.pdf}, crossref = {:uml-aom04}, title = {Using i* to identify candidate aspects}, } @inproceedings{steimann:uml-aom04, author = {Friedrich Steimann}, url = {http://www.cs.iit.edu/{\tilda}oaldawud/AOM/Steimann.pdf}, crossref = {:uml-aom04}, title = {Why Most Domain Models are Aspect Free}, } @inproceedings{tessier:uml-aom04, author = {Francis Tessier and Linda Badri and Mourad Badri}, url = {http://www.cs.iit.edu/{\tilda}oaldawud/AOM/tessier.pdf}, crossref = {:uml-aom04}, title = {Towards a Formal Detection of Semantic Conflicts Between Aspects: {A} Model-Based Approach}, } @inproceedings{barra:uml-aom04, author = {Eduardo Barra and Gonzalo {G\'enova} and Juan Llorens}, url = {http://www.cs.iit.edu/{\tilda}oaldawud/AOM/Zavaleta.pdf}, crossref = {:uml-aom04}, title = {An approach to Aspect Modeling with {UML} 2.0}, } @inproceedings{mahoney:uml-aom04, author = {Mark Mahoney and Atef Bader and Tzilla Elrad and Omar Aldawud}, url = {http://www.cs.iit.edu/{\tilda}oaldawud/AOM/mahoney.pdf}, crossref = {:uml-aom04}, title = {Using Aspects to Abstract and Modularize Statecharts}, } @inproceedings{degiorgis:uml-aom04, author = {{De Giorgis}, Ricardo Soto and Nibaldo {Rodr\'{\i}guez} Agurto}, url = {http://www.cs.iit.edu/{\tilda}oaldawud/AOM/soto.pdf}, crossref = {:uml-aom04}, title = {New {UML} 2.0 based models to design {WAP} applications}, } @inproceedings{brahmila:uml-aom04, author = {Brahmila Kamalakar and Sudipto Ghosh}, url = {http://www.cs.iit.edu/{\tilda}oaldawud/AOM/kamalakar.pdf}, crossref = {:uml-aom04}, title = {A Middleware Transparent Approach for Developing {CORBA}-based Distributed Applications}, } @inproceedings{reina:uml-aom04, author = {A. M. Reina and J. Torres and M. Toro}, url = {http://www.cs.iit.edu/{\tilda}oaldawud/AOM/2004-AOMWS-reinaqu.ps}, crossref = {:uml-aom04}, title = {Separating concerns by means of {UML}-profiles and metamodels in {PIM}s}, } @inproceedings{yan:uml-aom04, author = {Yan Han and G\"unter Kniesel and Armin B. Cremers}, url = {http://www.cs.iit.edu/{\tilda}oaldawud/AOM/yanHan.pdf}, crossref = {:uml-aom04}, title = {A Meta Model and Modeling Notation for {AspectJ}}, } @inproceedings{shin:uml-aom04, author = {Shin Nakajima and Tetsuo Tamai}, url = {http://www.cs.iit.edu/{\tilda}oaldawud/AOM/shin.pdf}, crossref = {:uml-aom04}, title = {Lightweight Formal Analysis of Aspect-Oriented Models}, } @techreport{lesiecki:utya05, title = {Unit test your aspects}, author = {Nicholas Lesiecki}, year = 2005, month = nov, institution = {IBM Developer Works}, abstract = {AOP makes it easier than it's ever been to write tests specific to your application's crosscutting concerns. Find out why and how to do it, as Nicholas Lesiecki introduces you to the benefits of testing aspect-oriented code and presents a catalog of patterns for testing crosscutting behavior in AspectJ.}, url = {http://www-128.ibm.com/developerworks/java/library/j-aopwork11/}, http = {http://www-128.ibm.com/developerworks/java/library/j-aopwork11/} } @techreport{bodkin:newajdt05, title = {AOP@Work: Performance monitoring with AspectJ, Part 1}, url = {http://www-128.ibm.com/developerworks/java/library/j-aopwork10/}, url = {http://www-128.ibm.com/developerworks/java/library/j-aopwork10/}, author = {Ron Bodkin}, year = 2005, month = sep, abstract = {Say goodbye to scattered and tangled monitoring code, as Ron Bodkin shows you how to combine AspectJ and JMX for a flexible, modular approach to performance monitoring. In this first of two parts, Ron uses source code and ideas from the Glassbox Inspector open source project to help you build a monitoring system that provides correlated information to identify specific problems, but with low enough overhead to be used in production environments.}, institution = {IBM Developer Works} } @techreport{chapman:newajdt05, title = {AOP@Work: New AJDT releases ease AOP development}, url = {http://www-128.ibm.com/developerworks/java/library/j-aopwork9/}, http = {http://www-128.ibm.com/developerworks/java/library/j-aopwork9/}, author = {Matt Chapman}, year = 2005, month = aug, abstract = {AJDT Eclipse technology project leader Matt Chapman walks you through AJDT 1.2 and 1.3, the latest releases of the AspectJ development tools for Eclipse 3.0 and 3.1, respectively. The major focus of these releases is to more closely integrate AspectJ with the Eclipse platform and to offer AspectJ developers more of the advanced tooling support available to Javaª developers using Eclipse.}, institution = {IBM Developer Works} } @techreport{isberg:dwp05, title = {AOP@Work: Design with pointcuts to avoid pattern density}, url = {http://www-128.ibm.com/developerworks/java/library/j-aopwork7/}, http = {http://www-128.ibm.com/developerworks/java/library/j-aopwork7/}, author = {Wes Isberg}, year = 2005, month = jun, abstract = {In ``JUnit: A Cook's Tour,'' authors Erich Gamma and Kent Beck discuss the design of JUnit. They point out that TestCase, like key abstractions in many mature frameworks, has a high pattern density, making it easy to use but hard to change. In this installment of the AOP@Work series, Wes Isberg revisits the Cook's Tour and shows you how using AOP pointcuts rather than object-oriented designs can help you avoid some of the pattern density that makes mature designs hard to change.}, institution = {IBM Developer Works} } @techreport{lesiecki:patj05, url = {http://www-128.ibm.com/developerworks/java/library/j-aopwork5/}, http = {http://www-128.ibm.com/developerworks/java/library/j-aopwork5/}, title = {AOP@Work: Enhance design patterns with AspectJ, Part 1. AOP makes patterns lighter, more flexible, and easier to (re)use}, author = {Nicholas Lesiecki}, year = 2005, month = may, institution = {IBM Developer Works} } @techreport{sosnoski:atw05, http = {http://www-128.ibm.com/developerworks/java/library/j-cwt03085/}, url = {http://www-128.ibm.com/developerworks/java/library/j-cwt03085/}, title = {Classworking toolkit: Putting aspects to werk}, institution = {IBM Developer Works}, month = mar, year = 2005, author = {Dennis Sosnoski}, abstract = {Aspect-oriented programming (AOP) promises to keep code clean by separating out functionality that applies across the application, rather than to a particular class or package. Logging is one of the commonly used examples of this type of function. Can AOP help with logging? In this article, developer and AOP enthusiast Dennis Sosnoski looks at using the AspectWerkz framework to find out.} } @techreport{sosnoski:ptwa05, month = apr, institution = {IBM Developer Works}, year = 2005, author = {Dennis Sosnoski}, abstract = {In this edition of Classworking toolkit, consultant Dennis Sosnoski takes up where he left off last month by applying an aspect-oriented approach to performance analysis. He investigates a client application using the Apache Axis Web services framework to find where the execution time is being spent. Along the way, Dennis looks into the issue of measuring time intervals in Java ª code and shows how you can find the granularity and overhead of the timer implementation on your system.}, url = {http://www-128.ibm.com/developerworks/java/library/j-cwt04055.html}, http = {http://www-128.ibm.com/developerworks/java/library/j-cwt04055.html}, title = {Classworking toolkit: Performance tracing with aspects} } @techreport{lesiecki:modaop02, url = {http://www-106.ibm.com/developerworks/library/j-aspectj/index.html}, http = {http://www-106.ibm.com/developerworks/library/j-aspectj/index.html}, title = {Improve modularity with aspect-oriented programming: AspectJ brings AOP to the Java language}, author = {Nicholas Lesiecki}, year = 2002, institution = {IBM Developer Works} } @techreport{lesiecki:testflex02, title = {Test flexibly with AspectJ and mock objects: Enhance unit testing with test-only behavior}, http = {http://www-128.ibm.com/developerworks/java/library/j-aspectj2/}, url = {http://www-128.ibm.com/developerworks/java/library/j-aspectj2/}, author = {Nicholas Lesiecki}, year = 2002, month = may, institution = {IBM Developer Works} } @techreport{pollice:lookaop04, title = {A look at aspect-oriented programming}, url = {http://www-128.ibm.com/developerworks/rational/library/2782.html}, http = {http://www-128.ibm.com/developerworks/rational/library/2782.html}, institution = {IBM Developer Works}, author = {Gary Pollice}, year =2004, } @techreport{laddad:aopwork05, url = {http://www-106.ibm.com/developerworks/java/library/j-aopwork3/}, title = {AOP@Work: AOP and metadata: A perfect match, Part 1---Concepts and constructs of metadata-fortified AOP}, author = {Ramnivas Laddad}, month = mar, year = 2005, abstract = {In this first half of a two-part article, author Ramnivas Laddad provides a conceptual overview of the new Javaª metadata facility and shows where AOP could most benefit from the addition of metadata annotations. He then walks you through a five-part design refactoring, starting with a metadata-free AOP implementation and concluding with one that combines the Participant design pattern with annotator-supplier aspects.}, institution = {IBM Developer Works} } @techreport{laddad:aopwork05a, url = {http://www-106.ibm.com/developerworks/java/library/j-aopwork4/}, title = {AOP@Work: AOP and metadata: A perfect match, Part 2---Multidimensional interfaces with metadata}, author = {Ramnivas Laddad}, month = apr, year = 2005, abstract = {In this second half of his two-part article on combining metadata and AOP, author and AOP practitioner Ramnivas Laddad suggests a novel way to conceptualize metadata as a signature in a multidimensional concern space. He also introduces a series of guidelines for effectively combining metadata and AOP and discusses the impact of metadata annotations on the adoption of aspect-oriented programming.}, institution = {IBM Developer Works} } @techreport{kirsten:toolscomp1-05, title = {AOP@Work: AOP tools comparison, Part 1: Language mechanisms}, url = {http://www-128.ibm.com/developerworks/java/library/j-aopwork1/}, http = {http://www-128.ibm.com/developerworks/java/library/j-aopwork1/}, author = {Mik Kirsten}, month = feb, year = 2005, institution = {IBM Developer Works} } @techreport{kirsten:toolscomp2-05, title = {AOP@Work: AOP tools comparison, Part 2: Development Environments}, http = {http://www-128.ibm.com/developerworks/java/library/j-aopwork2/}, url = {http://www-128.ibm.com/developerworks/java/library/j-aopwork2/}, author = {Mik Kirsten}, month = feb, year = 2005, institution = {IBM Developer Works} } @inproceedings{jacobson:oopsla86, author = {Ivar Jacobson}, title = {Language Support for Changeable Large Real Time Systems.}, booktitle = {Proceedings of the 1st ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications}, location = {Portland, Oregon}, month = sep, year = {1986}, pages = {377-384}, } @book{jacobson:aosduse05, title = {Aspect-Oriented Software Development with Use Cases}, author = {Ivar Jacobson and Pan-Wei Ng}, publisher = {Addison-Wesley}, year = 2005, isbn = {0321268881} } @article{jacobson:sd03a, url = {http://www.jaczone.com/papers/10sd.Jacobson32-37.pdf}, author = {Ivar Jacobson}, pages = {32--37}, journal = {Software Development}, month = oct, year = 2003, title = {The Case for Aspects, Part 1} } @article{jacobson:sd03b, url = {http://www.jaczone.com/papers/11sd.Jacobson44-48.pdf}, author = {Ivar Jacobson}, pages = {44--48}, journal = {Software Development}, month = nov, year = 2003, title = {The Case for Aspects, Part 2} } @inproceedings{vinuesa:iwaosd04, author = {Luis Vinuesa and Francisco {Ort\'\i{}n}}, url = {http://quercusseg.unex.es/juanmamu/DSOA04/papers/vinuesa-ortin.pdf}, title = {Tejedor {din\'amico} de aspectos sobre la plataforma {.NET}}, crossref = {:iwaosd04} } @inproceedings{gutierrez:iwaosd04, author = {{Guti\'errez}, Javier J. and Dar\i{}o Villadiego and Mar\i{}a J. Escalona and Manuel {Mej\i{}as}}, url = {http://quercusseg.unex.es/juanmamu/DSOA04/papers/gutierrez-lladiego-escalona-mejias.doc}, title = {Aplicaci\'on de la Programaci\'on Orientada a Aspectos en el Dise\tildacc{n}o e Implementaci\'on de Pruebas Funcionales}, crossref = {:iwaosd04} } @inproceedings{navas:iwaosd04, author = {A. Navasa and K. Palma and J. M. Murillo and Y. Eterovic}, url = {http://quercusseg.unex.es/juanmamu/DSOA04/papers/navasa-palma-murillo-eterovic.pdf}, title = {Dos modelos arquitect\'onicos para el {DSOA}}, crossref = {:iwaosd04} } @inproceedings{ortiz:iwaosd04, author = {Guadalupe Ortiz and Juan Herna\'andez and Pedro J. Clemente}, url = {http://quercusseg.unex.es/juanmamu/DSOA04/papers/ortiz-hernandez-clemente.pdf}, title = {Configuraci\'on de propieddes no funcionales en los servicios Web usando T\'ecnicas Orientadas a Aspecto}, crossref = {:iwaosd04} } @inproceedings{navarro:iwaosd04, author = {Elena Navarro and Patricio Letelier and Isidro Ramos and B\'arbara \'Alvarez}, url = {http://quercusseg.unex.es/juanmamu/DSOA04/papers/navarro-letelier-ramos-alvarez.pdf}, title = {Orientaci\'on a Aspectos y Orientaci\'on a Objetivos: Una propuesta para su integraci\'on}, crossref = {:iwaosd04} } @inproceedings{monteiro:iwaosd04, author = {Miguel Pessoa Monteiro and Jo\tildacc{a}o Miguel Fernandes}, url = {http://quercusseg.unex.es/juanmamu/DSOA04/papers/pessoa-fernandes.pdf}, title = {Pitfalls of {AspectJ} Implementations of Some of the Gang-of-Four Design Patterns}, crossref = {:iwaosd04} } @inproceedings{gonzalez:iwaosd04, author = {Carlos Gonza\'alez and Juan Manuel Murillo and Pablo Amaya}, url = {http://quercusseg.unex.es/juanmamu/DSOA04/papers/gonzalez-amaya-murillo.pdf}, title = {Un modelo de propiedades y dependencias para el an\'alisis orientado a aspectos en {MDA}}, crossref = {:iwaosd04} } @inproceedings{rodriguez:iwaosd04, author = {{Rodr\i{}guez}, Mar\i{}a del Pilar Romay and Carlos E. Cuesta and Pablo de la Fuente and Manuel Barrio {Solo\'orzano}}, url = {http://quercusseg.unex.es/juanmamu/DSOA04/papers/romay-cuesta-delafuente-barrio.pdf}, title = {Descripci\'on de Aspectos Mediante Conectores {UML 2.0}}, crossref = {:iwaosd04} } @inproceedings{campos:iwaosd04, author = {Juan Antonio Campos and M\'onica Pinto}, url = {http://quercusseg.unex.es/juanmamu/DSOA04/papers/campos-pinto.pdf}, title = {Desarrollo de Aplicaciones Colaborativas con {CoopTEL}: {El} Juego del {Pictionary}}, crossref = {:iwaosd04} } @inproceedings{pantoquilho:iwaosd04, author = {Marta Pantoquilho and Ana Moreira}, url = {http://quercusseg.unex.es/juanmamu/DSOA04/papers/pantoquilho-moreira.pdf}, title = {Aspect-Oriented Logical Architecture Design A Layered Perspective Applied to Data Warehousing}, crossref = {:iwaosd04} } @inproceedings{conejero:iwaosd04, author = {J. Conejero and J. Hern\'andez and J. Pedrero}, url = {http://quercusseg.unex.es/juanmamu/DSOA04/papers/conejero-hernandez-pedrero.pdf}, title = {Definici\'on de un Perfil {UML} para el Aspecto de Notificaci\'on en Entornos Distribuidos {CORBA}}, crossref = {:iwaosd04} } @inproceedings{reina:iwaosd04, author = {A. M. Reina and J. Torres and M. Toro and M. J. Escalona}, url = {http://quercusseg.unex.es/juanmamu/DSOA04/papers/reina-torres-toro-escalona.pdf}, title = {Modelando Aspectos con Lenguajes Espec\i{}ficos de Dominio}, crossref = {:iwaosd04} } @inproceedings{breu:wcre-ware04, crossref = {:wcre-ware04}, url = {http://homepages.cwi.nl/{\tilda}tourwe/ware/breu.pdf}, title = {Towards Hybrid Aspect Mining: Static Extensions to Dynamic Aspect Mining}, author = {Silvia Breu} } @inproceedings{krinke:wcre-ware04, crossref = {:wcre-ware04}, url = {http://homepages.cwi.nl/{\tilda}tourwe/ware/krinke.pdf}, title = {Control-Flow-Graph-Based Aspect Mining}, author = {Jens Krinke and Silvia Breu} } @inproceedings{shepherd:wcre-ware04, crossref = {:wcre-ware04}, url = {http://www.cis.udel.edu/~shepherd/research/ware/ware2005.ps}, title = {The Fast Prototyping and Evaluation of Aspect Mining Analyses via Timna}, author = {David Shepherd} } @inproceedings{bruntink:wcre-ware04, crossref = {:wcre-ware04}, url = {http://homepages.cwi.nl/{\tilda}tourwe/ware/bruntink.pdf}, title = {Aspect Mining using Clone Class Metrics}, author = {Magiel Bruntink} } @inproceedings{marin:wcre-ware04, crossref = {:wcre-ware04}, url = {http://homepages.cwi.nl/{\tilda}tourwe/ware/marin.pdf}, title = {Language support for refactoring to aspects}, author = {Marius Marin} } @inproceedings{bruntink:wcre-ware04a, crossref = {:wcre-ware04}, url = {http://homepages.cwi.nl/{\tilda}tourwe/ware/tourwe.pdf}, title = {Isolating Crosscutting Concerns in System Software}, author = {Magiel Bruntink and Arie van Deursen and Tom {Tourw\'e}} } @inproceedings{zaidman:wcre-ware04, crossref = {:wcre-ware04}, url = {http://homepages.cwi.nl/{\tilda}tourwe/ware/zaidman.pdf}, title = {Selective Introduction of Aspects for Program Comprehension}, author = {Andy Zaidman and Toon Calders and Serge Demeyer and Jan Paredaens} } @inproceedings{ceccato:wcre-ware04, crossref = {:wcre-ware04}, url = {http://homepages.cwi.nl/{\tilda}tourwe/ware/ceccato.pdf}, title = {Measuring the Effects of Software Aspectization}, author = {Mariano Ceccato and Paolo Tonella} } @article{diggens:ddj04, title = {Aspect-Oriented Programming \& {C++}}, author = {Christopher Diggens}, journal = {Dr. Dobbs Journal}, month = aug, year = 2004, url = {https://www.sdmediagroup.com/secure/?sid=9220} } @article{gray:scp04, year = 2004, title = {A {Java}-based approach for teaching principles of adaptive and evolvable software}, pages = {51-69}, author = {Jeff Gray}, journal = {Science of Computer Programming}, volume = 53, number = 1, abstract = {The ability to adapt a software artifact is essential toward handling evolving stakeholder requirements. Adaptation is also vital in many areas where software is required to adjust to changing environment conditions (e.g., the growing presence of embedded systems). Current techniques for supporting adaptability and evolvability can be categorized as static (happening at compile-time or design-time), or dynamic (adaptation during the actual execution of the system). This paper describes a special-topics software engineering course that uses Java as a foundation for teaching concepts of static and dynamic adaptation. The course surveys Java-related research in the areas of meta-programming and reflection, aspect-oriented software development, model-driven computing, and adaptive middleware.}, keywords = {Java education; Evolvable software; Aspect-oriented software development; Model-integrated computing; Adaptive middleware} } @article{boner:tss04, title = {{AspectWerkz 2: An} Extensible Aspect Container}, author = {{Bon\'er}, Jonas}, journal = {TheServerSide.COM}, month = nov, year = 2004, url = {http://www.theserverside.com/articles/article.tss?l=AspectWerkzP1}, abstract = {In this article, Jonas Bon\'er introduces the new AspectWerkz 2.x architecture. AspectWerkz 2.x has been designed to be an extensible AOP container where any kind of aspects can coexist ranging from Spring aspects to AspectJ aspects. The article explains why this architecture is beneficial to the Java AOP communtity and explains the benefits and drawbacks of running AOP Alliance, Spring and AspectJ aspects within the AspectWerkz Extensible Aspect Container. It concludes with performance figures.} } @article{rashid:iees04, title = {Editorial - Early aspects: aspect-oriented requirements engineering and architecture design}, author = {Rashid, A. and Moreira, A. and Tekinerdogan, B.}, pages = {153- 155}, journal = {IEE Proceedings Software}, publisher = {IEE}, volume = 151, number = 4, month = aug, year = 2004 } @article{whittle:iees04, title = {Scenario modelling with aspects}, author = {Whittle, J. and Araujo, J.}, pages = {157- 171}, journal = {IEE Proceedings Software}, publisher = {IEE}, volume = 151, number = 4, month = aug, year = 2004 } @article{france:iees04, title = {Aspect-oriented approach to early design modelling}, author = {France, R. and Ray, I. and Georg, G. and Ghosh, S.}, pages = {173- 185}, journal = {IEE Proceedings Software}, publisher = {IEE}, volume = 151, number = 4, month = aug, year = 2004 } @article{jansen:iees04, title = {First class feature abstractions for product derivation}, author = {Jansen, A. G. J. and Smedinga, R. and van Gurp, J. and Bosch, J.}, pages = {187- 197}, journal = {IEE Proceedings Software}, publisher = {IEE}, volume = 151, number = 4, month = aug, year = 2004 } @article{pratap:iees04, title = {Building fully customisable middleware using an aspect-oriented approach}, author = {Pratap, R. M. and Hunleth, F. and Cytron, R. K.}, pages = {199- 216}, journal = {IEE Proceedings Software}, publisher = {IEE}, volume = 151, number = 4, month = aug, year = 2004 } @article{zdun:iees04, title = {Pattern language for the design of aspect languages and aspect composition frameworks}, author = {Zdun, U.}, Pages = {67- 83}, journal = {IEE Proceedings Software}, publisher = {IEE}, volume = 151, number = 2, month = apr, year = 2004 } @inproceedings{yu:rec04, title = {From Goals to Aspects: {Discovering} Aspects from Requirements Goal Models}, author = {Yijun Yu and {Sampai do Prado Leite}, J. C. and Mylopoulos, J}, pages = {33--42}, booktitle = {Proc. 12th Int'l Requirements Engineering Conference}, year = 2004, month = sep, publisher = {IEEE}, location = {Kyoto}, abstract = {Aspect-oriented programming (AOP) has been attracting much attention in the Software Engineering community by advocating that programs should be structured according to programmer concerns, such as `efficient use of memory''. However, like other programming paradigms in their early days, AOP has not addressed yet earlier phases of software development. In particular, it is still an open question how one identifies aspects early on in the software development process. This paper proposes an answer to this question. Specifically, we show that aspects can be discovered during goal-oriented requirements analysis. Our proposal includes a systematic process for discovering aspects from relationships between functional and non-functional goals. We illustrate the proposed process with a case study adapted from the literature.} } @inproceedings{katz:rec04, title = {From Aspectual Requirements to Proof Obligations for Aspect-Oriented Systems}, author = {Katz, Shmuel and Rashid, Awais}, pages = {43--52}, booktitle = {Proc. 12th Int'l Requirements Engineering Conference}, year = 2004, month = sep, publisher = {IEEE}, location = {Kyoto}, abstract = {Aspect-oriented software development (AOSD) techniques support systematic modularization and composition of crosscutting concerns, the so-called ``aspects.'' Though AOSD techniques have been proposed to handle crosscutting concerns at various stages during the software life cycle, there is a gap between the aspects at the requirements level and those at later development stages. It is not clear what proof obligations about an aspect-oriented implementation follow from the initial aspectual requirements. This validation problem is further compounded by the lack of traceability of aspectual requirements and their associated trade-offs through to subsequent design and implementation-level refinements. This paper presents PROBE, a framework for generation of proof obligations for aspect-oriented systems from the initial aspectual requirements and associated trade-offs. The abstract proof obligations are expressed in standard linear temporal logic. Key components of the framework include an extended Ontology with parametric temporal formulas and functions, and extensive treatment of conflicts among requirements. The resultant temporal logic assertions, grouped into specifications of aspect implementations, can then be used as input to formal methods tools such as model-checkers, or in the specification and generation of test cases.} } @inproceedings{araujo:rec04, title = {Modeling and composing scenario-based requirements with aspects}, author = {{Ara\'ujo}, Jo\tildacc{a}o and Whittle, Jon and Kim, Dae-Kyoo}, booktitle = {Proc. 12th Int'l Requirements Engineering Conference}, year = 2004, month = sep, publisher = {IEEE}, location = {Kyoto}, pages = {53--62}, abstract = {There has been significant recent interest, within the Aspect-Oriented Software Development (AOSD) community, in representing crosscutting concerns at various stages of the software lifecycle. However, most of these efforts have concentrated on the design and implementation phases. We focus in this paper on representing aspects during use case modeling. In particular, we focus on scenario-based requirements (both aspectual and non-aspectual) and show how to validate such requirements as part of an iterative validation process. Non-aspectual interactions (scenarios) are modeled as UML sequence diagrams. Aspectual interactions are modeled as Interaction Pattern Specifications (IPSs). In order to validate them, the interactions are transformed into a set of executable state machines using an existing state machine synthesis algorithm. Previous work composed the aspectual and non-aspectual interactions at the sequence diagram level. In this paper, the composition is done at the state machine level. The trade-offs of both approaches are discussed.}, } @inproceedings{tesanovic:ideas04, author = {A. {Te\u{s}anovic} and K. Sheng and J. Hansson}, title = {Application-Tailored Database Systems: {A} Case of Aspects in an Embedded Database}, booktitle = {Proceedings of the 8th International Database Engineering and Applications Symposium (IDEAS'04)}, publisher = {IEEE Computer Society}, month = jul, year = 2004, url = {/~rtslab/publications/2004/tesanovicIDEAS04.pdf}, } @inproceedings{tesanovic:rtcsa03, author = {Aleksandra {Te\u{s}anovic} and Dag {Nystr\"om} and J\"orgen Hansson and Christer {Norstr\"om}}, title = {Towards Aspectual Component-Based Development of Real-Time Systems}, booktitle = {Proceeding of the 9th International Conference on Real-Time and Embedded Computing Systems and Applications (RTCSA 2003)}, publisher = {Springer-Verlag}, month = feb, year = 2003, url = {/~rtslab/publications/2003/tesanovic03accord.pdf}, } @inproceedings{tesanovic:wcet03, author = {A. {Te\u{s}anovic} and D. {Nystr\"om} and J. Hansson and C. {Norstr\"om} and P. Uhlin}, title = {Aspect-Level {WCET} Analyzer: {A} Tool for Automated {WCET} Analysis of a Real-Time Software Composed Using Aspects and Components}, booktitle = {3rd International Workshop on Worst-Case Execution Time Analysis (WCET 2003)}, city = {Porto, Portugal}, month = jul, year = 2003, url = {/~rtslab/publications/2003/AspectWCETanalyzer.pdf}, } @inproceedings{tesanovic:, author = {Aleksandra {Te\u{s}anovic} and Dag {Nystr\"om} and J\"orgen Hansson and Christer {Norstr\"om}}, title = {Aspect-Level Worst-Case Execution Time Analysis of Real-Time Systems Compositioned Using Aspects and Components}, booktitle = {Proceedings of the 27th IFAC/IFIP/IEEE Workshop on Real-Time Programming (WRTP'03)}, city = {Lagow, Poland}, publisher = {Elsevier}, month = may, year = 2003, url = {http://www.ida.liu.se/labs/rtslab/projects/ARTES_EmbeddedDatabases/Archive/{Te\u{s}anovic}-CRC.pdf}, } @mastersthesis{tesanovic:tacb03, author = {A. {Te\u{s}anovic}}, title = {Towards Aspectual Component-Based Real-Time System Development}, degree = {Licentiate}, department = {Department of Computer Science}, school = {Link\"oping University}, month = jun, year = 2003, isbn = {91-7373-681-3}, url = {http://www.ep.liu.se/lic/science_technology/10/24/index.html}, } @article{tesanovic:jec04, author = {Aleksandra {Te\u{s}anovic} and Dag {Nystr\"om} and J\"orgen Hansson and Christer {Norstr\"om}}, title = {Aspects and Components in Real-Time System Development: {Towards} Reconfigurable and Reusable Software}, journal = {Journal of Embedded Computing}, publisher = {Cambridge International Science Publishing}, month = feb, year = 2004, url = {http://www.ida.liu.se/~rtslab/publications/2004/ACCORD(jec).pdf}, abstract = {Increasing complexity of real-time systems, and demands for enabling their configurability and reusability are strong motivations for applying new software engineering principles, such as aspect-oriented and component-based development. In this paper we introduce a novel concept of aspectual component-based real-time system development. The concept is based on a design method that assumes decomposition of real-time systems into components and aspects, and provides a real-time component model that supports the notion of time and temporal constraints, space and resource management constraints, and composability. Initial results show that the successful application of the proposed concept has a positive impact on realtime system development in enabling efficient configuration of real-time systems, improved reusability and flexibility of realtime software, and modularization of crosscutting concerns. We provide arguments for this by presenting an application of the proposed concept on the design and development of a configurable embedded real-time database, called COMET. Furthermore, using the COMET system as an example, we introduce a novel way of handling concurrency in a real-time database system, where concurrency is modeled as an aspect crosscutting the system.}, keywords = {Embedded systems, real-time systems, software components, aspects, database systems, temporal analysis} } @inproceedings{baniassad:oopsla-ea04, title = {Investigating the Use of Clues for Scaling Document-Level Concern Graphs}, author = {E. Baniassad and S. Clarke}, url = {http://trese.cs.utwente.nl/workshops/oopsla-early-aspects-2004/Papers/Baniassad-Clarke.pdf}, crossref = {:oopsla-ea04} } @inproceedings{bencomo:oopsla-ea04, title = {Tracing the Distribution Concern: Bridging the Gap}, author = {N. Bencomo and G. Blair and P. Sawyer}, url = {http://trese.cs.utwente.nl/workshops/oopsla-early-aspects-2004/Papers/BencomoEtAl.pdf}, crossref = {:oopsla-ea04} } @inproceedings{escalona:oopsla-ea04, title = {{NDT}: a methodology to deal with the navigation aspect at the requirements phase}, author = {M. J. Escalona and A. M. Reina and J. Torres and M. {Mej\'\i{}as}}, url = {http://trese.cs.utwente.nl/workshops/oopsla-early-aspects-2004/Papers/EscalonaEtAl.pdf}, crossref = {:oopsla-ea04} } @inproceedings{gao:oopsla-ea04, title = {Improving Scenario-Driven Role Engineering Process with Aspects}, author = {S. Gao and Z. Dai and H. Yu}, url = {http://trese.cs.utwente.nl/workshops/oopsla-early-aspects-2004/Papers/GaoEtAl.pdf}, crossref = {:oopsla-ea04} } @inproceedings{herrmann:oopsla-ea04, title = {Mapping Use Case Level Aspects to {ObjectTeams/Java}}, author = {S. Herrmann and C. Hundt and K. Mehner}, url = {http://trese.cs.utwente.nl/workshops/oopsla-early-aspects-2004/Papers/HerrmannEtAl.pdf}, crossref = {:oopsla-ea04} } @inproceedings{kulesza:oopsla-ea04, title = {Towards a Method for the Development of Aspect-Oriented Generative Approaches}, author = {U. Kulesza and A. Garcia C. Lucena}, url = {http://trese.cs.utwente.nl/workshops/oopsla-early-aspects-2004/Papers/KuleszaEtAl.pdf}, crossref = {:oopsla-ea04} } @inproceedings{nakajima:oopsla-ea04, title = {Weaving in Role-Based Aspect-Oriented Design Models}, author = {S. Nakajima and T. Tamai}, url = {http://trese.cs.utwente.nl/workshops/oopsla-early-aspects-2004/Papers/NakajimaEtAl.pdf}, crossref = {:oopsla-ea04} } @inproceedings{navarro:oopsla-ea04, title = {Goals and Quality Characteristics: Separating Concerns}, author = {E. Navarro and P. Letelier and I. Ramos}, url = {http://trese.cs.utwente.nl/workshops/oopsla-early-aspects-2004/Papers/NavarroEtAl.pdf}, crossref = {:oopsla-ea04} } @inproceedings{rosenhainer:oopsla-ea04, title = {Identifying Crosscutting Concerns in Requirements Specifications}, author = {L. Rosenhainer}, url = {http://trese.cs.utwente.nl/workshops/oopsla-early-aspects-2004/Papers/Rosenhainer.pdf}, crossref = {:oopsla-ea04} } @inproceedings{andrade:wasp04, crossref = {:wasp04}, url = {http://twiki.im.ufba.br/pub/WAsp/AcceptedPapers/AOPHaskell_camera_ready.pdf}, title = {{AspectH}: Uma Extens\tildacc{a}o Orientada a Aspectos de {Haskell}}, author = {Carlos Andrade and Andre L. M. Santos and Paulo H. M. Borba} } @inproceedings{alvaro:wasp04, crossref = {:wasp04}, url = {http://twiki.im.ufba.br/pub/WAsp/AcceptedPapers/AspectIPM.pdf}, title = {Aspect {IPM}: Towards an Incremental Process Model based on {AOP} for Component-Based Development}, author = {Alexandre Alvaro and Daniel {Lucr\'edio} and Vinicius Cardoso Garcia and Eduardo Santana {de Almeida}} } @inproceedings{fernandes:wasp04, crossref = {:wasp04}, url = {http://twiki.im.ufba.br/pub/WAsp/AcceptedPapers/Paper33-LuaMOP-WASP2004-Proceedings.pdf}, title = {{LuaMOP} --- {A} Meta-Object Protocol for Dynamic Weaving}, author = {Fabricio Fernandes and Nelio Cacho and Thais Batista} } @inproceedings{lemos:wasp04, crossref = {:wasp04}, url = {http://twiki.im.ufba.br/pub/WAsp/AcceptedPapers/WASP-Lemos.pdf}, title = {Data Flow Integration Testing Criteria for Aspect-Oriented Programs}, author = {Ot\'avio Lemos and Jos\'e Carlos Maldonado and Paulo Cesar Masiero} } @inproceedings{rocha:wasp04, crossref = {:wasp04}, url = {http://twiki.im.ufba.br/pub/WAsp/AcceptedPapers/WASP04-rocha-camargo.pdf}, title = {Uso de Aspectos para Verificar Regras de Instancia\c{c}\tildacc{a}o de Frameworks}, author = {Andr\'e Rocha and Valter Vieira Camargo and Paulo Cesar Masiero} } @inproceedings{rocha:wasp04b, crossref = {:wasp04}, url = {http://twiki.im.ufba.br/pub/WAsp/AcceptedPapers/WASP04-rocha-final.pdf}, title = {Teste Funcional: Uma abordagem Auxiliada por Aspectos}, author = {Andr\'e Rocha and Adenilso da Silva {Sim\tildacc{a}o} and Jos\'e Carlos Maldonado and Paulo Cesar Masiero} } @inproceedings{filho:wasp04, crossref = {:wasp04}, title = {{AJEFW}: {Framework} orientado a aspectos para tratamento de exce\c{c}\'oes}, author = {Guilherme Filho and Geovani Santangelo and Jo\tildacc{a}o Gualberto Rizzo and Edeyson Gomes} } @inproceedings{bertagnolli:wasp04, crossref = {:wasp04}, title = {Checklists e L\'exico Como Artefatos para Identifica\c{c}\tildacc{a}o de Aspectos}, author = {Silvia Bertagnolli and Maria L\'ucia Blanck {Lisb\^{o}a}} } @inproceedings{valente:wasp04, crossref = {:wasp04}, title = {Especifica\c{c}\tildacc{a}o de T\'aticas para Invoca\c{c}\tildacc{a}o Remota de M\'etodos Usando Orienta\c{c}\tildacc{a}o por Aspectos}, author = {Marco Tulio Valente and Rodrigo Palhares and Fabio Tirelo} } @inproceedings{chavez:wasp04, crossref = {:wasp04}, title = {Guidelines for Aspect-Oriented Design}, author = {Christina Chavez and Carlos Lucena} } @inproceedings{camargo:wasp04, crossref = {:wasp04}, title = {Implementa\c{c}\tildacc{a}o de Variabilidades em Frameworks Orientados a Aspecto}, author = {Valter Camargo and Paulo Cesar Masiero} } @inproceedings{lobato:wasp04, crossref = {:wasp04}, title = {Mobility as an Aspect: The {AspectM} Framework}, author = {Cidiane Lobato and Alessandro Garcia and Alexander Romanovsky and Cl\'audio {Sant'Anna} and Uir\'a Kulesza} } @inproceedings{chaves:wasp04, crossref = {:wasp04}, title = {Modelos Execut\'aveis Baseados em Aspectos}, author = {Rafael Chaves and Luiz Carlos Zancanella} } @inproceedings{castro:wasp04, crossref = {:wasp04}, title = {Supporting separation of concerns in requirements artifacts}, author = {Jaelson Castro and Georgia Sousa} } @inproceedings{silva:wasp04, crossref = {:wasp04}, title = {Uma Abordagem para Integrar Aspectos e Servi\c{c}os Web}, author = {Clayton Silva and {Mendon\c{c}a}, Nabor das Chagas } } @inproceedings{cole:wasp04, crossref = {:wasp04}, title = {Using Programming Laws to Modularize Concurrency in a Replicated Database Application}, author = {Leonardo Cole and Paulo Borba} } @inproceedings{costa:wasp04, crossref = {:wasp04}, title = {Utiliza\c{c}\tildacc{a}o de Aspectos no Desenvolvimento de Aplica\c{c}\'oes baseadas em Servi\c{c}os Web}, author = {Mateus Costa and Rodolfo Ferreira Resende and Pedro Santos Neto and M\'\i{}rian Halfeld Ferrari} } @inproceedings{cottenier:oopsla-bspc04, crossref = {:oopsla-bspc04}, author = {T. Cottenier and T. Elrad}, url = {http://www.ics.uci.edu/{\tilde}lopes/bspc04-documents/Cottenier.pdf}, http = {http://www.ics.uci.edu/~lopes/bspc04-documents/Cottenier.pdf}, title = {Layer of Collaboration Aspects for Pervasive Computing} } @inproceedings{hirschfeld:oopsla-bspc04, crossref = {:oopsla-bspc04}, author = {R. Hirschfeld and K. Kawamura and J. Eastman}, url = {http://www.ics.uci.edu/{\tilde}lopes/bspc04-documents/HirschfeldKawamuraEastman.pdf}, http = {http://www.ics.uci.edu/~lopes/bspc04-documents/HirschfeldKawamuraEastman.pdf}, title = {Small, Rich and Adaptable} } @inproceedings{liu:oopsla-bspc04, crossref = {:oopsla-bspc04}, author = {R. Liu and Y. Coady}, url = {http://www.ics.uci.edu/{\tilde}lopes/bspc04-documents/LiuCoady.pdf}, http = {http://www.ics.uci.edu/~lopes/bspc04-documents/LiuCoady.pdf}, title = {Modularization of {Jini} Services in Pervasive Systems: Conventional Bottle versus Contemporary Aspect} } @inproceedings{rashid:oopsla-bspc04, crossref = {:oopsla-bspc04}, author = {A. Rashid and G. Kortuem}, url = {http://www.ics.uci.edu/{\tilde}lopes/bspc04-documents/RashidKorteum.pdf}, http = {http://www.ics.uci.edu/~lopes/bspc04-documents/RashidKorteum.pdf}, title = {Adaptation as an Aspect in Pervasive Computing} } @techreport{diotalevi:adcj04, title = {Contract enforcement with {AOP}: {Apply} Design by Contract to {Java} software development with {AspectJ}}, month = jul, year = 2004, author = {Filippo Diotalevi}, institution = {IBM}, url = {http://www-106.ibm.com/developerworks/library/j-ceaop/}, abstract = {Your Java code often needs to interact with external components when you develop enterprise software. Whether your application must communicate with a legacy application, an external business system, or a third-party library, using components you don't control introduces the risk of unexpected results. IBM IT Specialist Filippo Diotalevi shows how aspect-oriented programming (AOP) can mitigate this risk by helping you design and define clear contracts between components while keeping your code clean and flexible.}, } @book{kisely:aopaj02, title = {Aspect-Oriented Programming with {AspectJ}}, author = {Ivan Kisely}, publisher = {Sams}, year = 2002, isbn = {0672324105}, } @book{colyer:eaj05, title = {Eclipse {AspectJ}: {Aspect}-Oriented Programming with {AspectJ} and the {Eclipse} {AspectJ} Development Tools}, author = {Adrian Colyer and Andy Clement and George Harley and Matthew Webster}, publisher = {Pearson Education}, year = 2005, isbn = {0321245873}, } @incollection{filman:aosdbook05, title = {Aspect-Oriented Programming Is Quantification and Obliviousness}, pages = {21-35}, author = {Robert E. Filman and Daniel P. Friedman}, crossref = {:aosdbook05}, } @incollection{tarr:aosdbook05, title = {N Degrees of Separation: {Multi}-Dimensional Separation of Concerns}, pages = {37-61}, author = {Peri Tarr and Harold Ossher and Sutton, Jr., Stanley M. and William Harrison}, crossref = {:aosdbook05}, } @incollection{bergmans:aosdbook05, title = {Principles and Design Rationale of Composition Filters}, pages = {63-95}, author = {Lodewijk Bergmans and Mehmet {Ak{\c s}it}}, crossref = {:aosdbook05}, } @incollection{lopes:aosdbook05, title = {{AOP}: {A} Historical Perspective ({W}hat's in a Name?)}, pages = {97-122}, author = {Cristina Videira Lopes}, crossref = {:aosdbook05}, } @incollection{colyer:aosdbook05, title = {{AspectJ}}, pages = {123-143}, author = {Adrian Colyer}, crossref = {:aosdbook05}, } @incollection{lieberherr:aosdbook05, title = {Coupling Aspect-Oriented and Adaptive Programming}, pages = {145-164}, author = {Karl Lieberherr and David H. Lorenz}, crossref = {:aosdbook05}, } @incollection{mezini:aosdbook05, title = {Untangling Crosscutting Models with {CAESAR}}, pages = {165-199}, author = {Mira Mezini and Klaus Ostermann}, crossref = {:aosdbook05}, } @incollection{douence:aosdbook05, title = {Trace-Based Aspects}, pages = {201-217}, author = {Remi Douence and Pascal Fradet and Mario {S\"udholt}}, crossref = {:aosdbook05}, } @incollection{cardone:aosdbook05, title = {Using Mixin Technology to Improve Modularity}, pages = {219-241}, author = {Richard Cardone and Calvin Lin}, crossref = {:aosdbook05}, } @incollection{nierstrasz:aosdbook05, title = {Separating Concerns with First-Class Namespaces}, pages = {243-259}, author = {Oscar Nierstrasz and Franz Achermann}, crossref = {:aosdbook05}, } @incollection{bouraqadi:aosdbook05, title = {Supporting {AOP} Using Reflection}, pages = {261-282}, author = {Noury Bouraqadi and Thomas Ledoux}, crossref = {:aosdbook05}, } @incollection{filman:aosdbook05a, title = {Inserting Ilities by Controlling Communications}, pages = {283-295}, author = {Robert E. Filman and Stuart Barrett and Diana D. Lee and Ted Linden}, crossref = {:aosdbook05}, } @incollection{cohen:aosdbook05, title = {Using Bytecode Transformation to Integrate New Features}, pages = {297-310}, author = {Geoff Cohen}, crossref = {:aosdbook05}, } @incollection{kniesel:aosdbook05, title = {{JMangler}---{A} Powerful Back-End for Aspect-Oriented Programming}, pages = {311-342}, author = {G\"unter Kniesel and Pascal Costanza and Michael Austermann}, crossref = {:aosdbook05}, } @incollection{pawlak:aosdbook05, title = {Aspect-Oriented Software Development with {Java Aspect Components}}, pages = {343-369}, author = {Renaud Pawlak and Lionel Seinturier and Laurence Duchien and Laurent Martelli and Fabrice Legond-Aubry and G\'erard Florin}, crossref = {:aosdbook05}, } @incollection{blair:aosdbook05, title = {Engineering Aspect-Oriented Systems}, pages = {379-406}, author = {Gordon S. Blair and Lynne Blair and Awais Rashid and Ana Moreira and Jo\tildacc{a}o {Ara\'ujo} and Ruzanna Chitchyan}, crossref = {:aosdbook05}, } @incollection{clemente:aosdbook05, title = {Aspect-Orientation in the Software Lifecycle: Fact and Fiction}, pages = {407-423}, author = {Pedro J. Clemente and Juan {Hern\'andez} and Jos\'e Luis Herrero and Juan Manuel Murillo and Fernando {S\'anchez}}, crossref = {:aosdbook05}, } @incollection{clarke:aosdbook05, title = {Generic Aspect-Oriented Design with {Theme/UML}}, pages = {425-458}, author = {Siobh\'an Clarke and Robert J. Walker}, crossref = {:aosdbook05}, } @incollection{elrad:aosdbook05, title = {Expressing Aspects Using {UML} Behavioral and Structural Diagrams}, pages = {459-478}, author = {Tzilla Elrad and Omar Aldawud and Atef Bader}, crossref = {:aosdbook05}, } @incollection{sutton:aosdbook05, title = {Concern Modeling for Aspect-Oriented Software Development}, pages = {479-505}, author = {Sutton, Jr., Stanley M. and Isabelle Rouvellou}, crossref = {:aosdbook05}, } @incollection{murphy:aosdbook05, title = {Design Recommendations for Concern Elaboration Tools}, pages = {507-530}, author = {Gail C. Murphy and William G. Griswold and Martin P. Robillard and Jan Hannemann and Wesley Leong}, crossref = {:aosdbook05}, } @incollection{walker:aosdbook05, title = {An Initial Assessment of Aspect-Oriented Programming}, pages = {531-556}, author = {Robert J. Walker and Elisa L. A. Baniassad and Gail C. Murphy}, crossref = {:aosdbook05}, } @incollection{nordberg:aosdbook05, title = {Aspect-Oriented Dependency Management}, pages = {557-584}, author = {Nordberg III, Martin E. }, crossref = {:aosdbook05}, } @incollection{grundy:aosdbook05, title = {Developing Software Components with Aspects: Some Issues and Experiences}, pages = {585-604}, author = {John Grundy and John Hosking}, crossref = {:aosdbook05}, } @incollection{diazpace:aosdbook05, title = {Smartweaver: {A} Knowledge-Driven Approach for Aspect Composition}, pages = {605-626}, author = {{D\'\i{}az Pace}, J. Andr\'es and Marcelo R. Campo and Federico U. Trilnik}, crossref = {:aosdbook05}, } @incollection{dewin:aosdbook05, title = {Developing Secure Applications Through Aspect-Oriented Programming}, pages = {633-650}, author = {{De Win}, Bart and Wouter Joosen and Frank Piessens}, crossref = {:aosdbook05}, } @incollection{coady:aosdbook05, title = {Structuring Operating System Aspects}, pages = {651-656}, author = {Yvonne Coady and Gregor Kiczales and Mike Feeley and Norm Hutchinson and Joon Suan Ong}, crossref = {:aosdbook05}, } @incollection{rashid:aosdbook05, title = {Aspect-Oriented Programming for Database Systems}, pages = {657-680}, author = {Awais Rashid}, crossref = {:aosdbook05}, } @incollection{gray:aosdbook05, title = {Two-Level Aspect Weaving to Support Evolution in Model-Driven Synthesis}, pages = {681-709}, author = {Jeff Gray and Janos Sztipanovits and Douglas C. Schmidt and Ted Bapty and Sandeep Neema and Aniruddha Gokhale}, crossref = {:aosdbook05}, } @incollection{popovici:aosdbook05, title = {Dynamic Aspect-Oriented Infrastructure}, pages = {711-730}, author = {Andrei Popovici and Gustavo Alonso and Thomas Gross}, crossref = {:aosdbook05}, } @inproceedings{koppen:eiwas04, crossref = {:eiwas04}, title = {{PCDiff}: {A}ttacking the Fragile Pointcut Problem}, author = {Christian Koppen and Maximilian St\"orzer}, } @inproceedings{monga:eiwas04, crossref = {:eiwas04}, title = {On Aspect-Oriented Approaches}, author = {Mattia Monga}, } @inproceedings{douence:eiwas04, crossref = {:eiwas04}, title = {A Restricted Definition of {AOP}}, author = {R\'emi Douence}, } @inproceedings{graversen:eiwas04, crossref = {:eiwas04}, title = {Aspects of Aspects---{A} Framework for Discussion}, author = {Kasper Graversen and Kasper {{\O}sterbye}}, } @inproceedings{gybels:eiwas04, crossref = {:eiwas04}, title = {An Experiment in Using Inductive Logic Programming to Uncover Pointcuts}, author = {Kris Gybels and Andy Kellens}, } @inproceedings{tanter:eiwas04, crossref = {:eiwas04}, title = {Motivation and Requirements for a Versatile {AOP} Kernel}, author = {\'Eric Tanter and Jacques {Noy\'e}}, } @inproceedings{nagy:eiwas04, crossref = {:eiwas04}, title = {Towards Semantic Composition in Aspect-Oriented Programming}, author = {Istv\'an Nagy and Lodewijk Bergmans}, } @inproceedings{costanza:eiwas04, crossref = {:eiwas04}, title = {A Short Overview of {AspectL}}, author = {Pascal Costanza}, } @inproceedings{lohmann:eiwas04, crossref = {:eiwas04}, title = {On Typesafe Aspect Implementations in {C++}}, author = {Daniel Lohmann and Olaf Spinczyk}, } @inproceedings{zook:gpce04, crossref = {:gpce04}, title = {Generating {AspectJ} programs with {Meta-AspectJ}}, author = {David Zook and Shan Shan Huang and Yannis Smaragdakis}, pages = {1-18}, url = {http://springerlink.metapress.com/openurl.asp?genre=article{\&}issn=0302-9743{\&}volume=3286{\&}spage=1}, } @inproceedings{mcdirmid:gpce04, crossref = {:gpce04}, title = {{Splice}: {Aspects} that analyze programs}, author = {Sean McDirmid and Wilson C. Hsieh}, pages = {19-38}, url = {http://springerlink.metapress.com/openurl.asp?genre=article{\&}issn=0302-9743{\&}volume=3286{\&}spage=19}, } @inproceedings{smith:gpce04, crossref = {:gpce04}, title = {A generative approach to aspect-oriented programming}, author = {Douglas R. Smith}, pages = {39-54}, url = {http://springerlink.metapress.com/openurl.asp?genre=article{\&}issn=0302-9743{\&}volume=3286{\&}spage=39}, } @inproceedings{lohmann:gpce04, crossref = {:gpce04}, title = {Generic Advice: {On} the combination of {AOP} with generative programming in {AspectC++}}, author = {Daniel Lohmann and Georg Blaschke and Olaf Spinczyk}, pages = {55-74}, url = {http://springerlink.metapress.com/openurl.asp?genre=article{\&}issn=0302-9743{\&}volume=3286{\&}spage=55}, } @inproceedings{rashid:gpce04, crossref = {:gpce04}, title = {Supporting flexible object database evolution with aspects}, author = {Awais Rashid and Nicholas Leidenfrost}, pages = {75-94}, url = {http://springerlink.metapress.com/openurl.asp?genre=article{\&}issn=0302-9743{\&}volume=3286{\&}spage=75}, } @inproceedings{douence:gpce04, crossref = {:gpce04}, title = {A crosscut language for control-flow}, author = {R\'emi Douence and Luc Teboul}, pages = {95-114}, url = {http://springerlink.metapress.com/openurl.asp?genre=article{\&}issn=0302-9743{\&}volume=3286{\&}spage=95}, } @inproceedings{jackson:gpce04, crossref = {:gpce04}, title = {Source-level cross-language aspect-oriented programming}, author = {Andrew Jackson and Siobhan Clarke}, pages = {115-135}, url = {http://springerlink.metapress.com/openurl.asp?genre=article{\&}issn=0302-9743{\&}volume=3286{\&}spage=115}, } @inproceedings{dantas:ecoop-ramse04, crossref = {:ecoop-ramse04}, title = {Using Aspects to Make Adaptive Object-Models Adaptable}, pages = {9-20}, author = {Ayla Dantas and Paulo Borba and Joseph Yoder and Ralph Johnson}, } @inproceedings{chitchyan:ecoop-ramse04, crossref = {:ecoop-ramse04}, title = {{AOP} and Reflection for Dynamic Hyperslices}, pages = {29-36}, author = {Ruzanna Chitchyan and Ian Sommerville}, } @inproceedings{ebraert:ecoop-ramse04, crossref = {:ecoop-ramse04}, title = {A Reflective Approach to Dynamic Software Evolution}, pages = {37-44}, author = {Peter Ebraert and Tom {Tourw\'e}}, } @inproceedings{gibbs:ecoop-ramse04, crossref = {:ecoop-ramse04}, title = {{OASIS}: {Organic} Aspects for System Infrastructure Software Easing Evolution and Adaptation through Natural Decomposition}, pages = {45-52}, author = {Celina Gibbs and Yvonne Coady}, } @inproceedings{sato:ecoop-ramse04, crossref = {:ecoop-ramse04}, title = {Negligent Class Loaders for Software Evolution}, pages = {53-60}, author = {Yoshiki Sato and Shigeru Chiba}, } @inproceedings{pessemier:ecoop-ramse04, crossref = {:ecoop-ramse04}, title = {Components, {ADL} and {AOP}: Towards a Common Approach}, pages = {61-70}, author = {Nicolas Pessemier and Lionel Seinturier and Laurence Duchien}, } @inproceedings{ubayashi:ecoop-ramse04, crossref = {:ecoop-ramse04}, title = {An {AOP} Implementation Framework for Extending Join Point Models}, pages = {71-82}, author = {Naoyasu Ubayashi and Hidehiko Masuhara and Tetsuo Tamai}, } @inproceedings{cazzola:ecoop-ramse04, crossref = {:ecoop-ramse04}, title = {Evolving Pointcut Definition to get Software Evolution}, pages = {83-90}, author = {Walter Cazzola and Sonia Pini and Massimo Ancona}, } @inproceedings{alvarez:ecoop-ramse04, crossref = {:ecoop-ramse04}, title = {Parametric Aspects: {A} Proposal}, pages = {91-100}, author = {Jordi Alvarez Canal}, } @inproceedings{greenwood:ecoop-ramse04, crossref = {:ecoop-ramse04}, title = {Dynamic Framed Aspects for Dynamic Software Evolution}, pages = {101-110}, author = {Philip Greenwood and Neil Loughran and Lynne Blair and Awais Rashid}, } @inproceedings{kniesel:ecoop-ramse04, crossref = {:ecoop-ramse04}, title = {Evolvable Pattern Implementations Need Generic Aspects}, pages = {111-126}, author = {G\"unter Kniesel and Tobias Rho and Stefan Hanenberg}, } @inproceedings{tornqvist:ecoop-wcat04, title = {On Adaptive Aspect-Oriented Coordination for Critical Infrastructures}, url = {http://wcat04.unex.es/wcat04/papers/08_tornqvist_gustavsson.pdf}, author = {Bj\"orn {T\"ornqvist} and Rune Gustavsson}, crossref = {:ecoop-wcat04}, } @inproceedings{eterovich:ecoop-wcat04, title = {Managing Components Adaptation Using Aspect Oriented Techniques}, url = {http://wcat04.unex.es/wcat04/papers/12_eterovich_murillo_palma.pdf}, author = {Y. Eterovich and J. M. Murillo and K. Palma}, crossref = {:ecoop-wcat04}, } @inproceedings{alves:oopsla-mvcdc04, author = {Vander Alves and Matos, Jr., Pedro and Paulo Borba}, crossref = {:oopsla-mvcdc04}, url = {http://www.kircher-schwanninger.de/workshops/MVCDC/Submissions/Alves_Matos_Borba.zip}, title = {An Incremental Aspect-Oriented Product Line Method for {J2ME} Game Development} } @inproceedings{bader:oopsla-mvcdc04, author = {Atef Bader and Husein Armouti and Shangping Ren and Tzilla Elrad}, crossref = {:oopsla-mvcdc04}, url = {http://www.kircher-schwanninger.de/workshops/MVCDC/Submissions/Bader_Armouti_Ren_Elrad.zip}, title = {Components Weaving for Software Product Features} } @inproceedings{bray:oopsla-mvcdc04, author = {Stuart Bray and Marco Yuen and Yvonne Coady and Marc E. Fiuczynski}, crossref = {:oopsla-mvcdc04}, url = {http://www.kircher-schwanninger.de/workshops/MVCDC/Submissions/Bray_Yuen_Coady_Fiuczynski.zip}, title = {Managing Variability in Systems: {Oh} What a Tangled {OS} We Weave} } @inproceedings{groher:oopsla-mvcdc04, author = {Iris Groher}, crossref = {:oopsla-mvcdc04}, url = {http://www.kircher-schwanninger.de/workshops/MVCDC/Submissions/Groher.zip}, title = {Managing Variabilities with Generative Approaches} } @inproceedings{klint:oopsla-mvcdc04, author = {Paul Klint and van der Storm, Tijs}, crossref = {:oopsla-mvcdc04}, url = {http://www.kircher-schwanninger.de/workshops/MVCDC/Submissions/Klint_Storm.zip}, title = {Reflections on Feature Oriented Software Engineering} } @inproceedings{krishna:oopsla-mvcdc04, author = {Arvind S. Krishna and Emre Turkaye and Cemal Yilmaz and Douglas C. Schmidt and Aniruddha Gokhale and Atif Memon and Adam Porter}, crossref = {:oopsla-mvcdc04}, url = {http://www.kircher-schwanninger.de/workshops/MVCDC/Submissions/Arvind_Turkaye_Yilmaz_Schmidt_Gokhale_Memon_Porter.zip}, title = {Model-driven Software Tools for Configuring and Customizing Middleware for Distributed Real-time and Embedded Systems} } @inproceedings{loughran:oopsla-mvcdc04, author = {Neil Loughran and Awais Rashid}, crossref = {:oopsla-mvcdc04}, url = {http://www.kircher-schwanninger.de/workshops/MVCDC/Submissions/Loughran_Rashid.zip}, title = {Managing Variability throughout the Software Development Lifecycle} } @inproceedings{wuchner:oopsla-mvcdc04, author = {Egon Wuchner}, crossref = {:oopsla-mvcdc04}, url = {http://www.kircher-schwanninger.de/workshops/MVCDC/Submissions/Wuchner.zip}, title = {Reflections on Feature Oriented Software Engineering} } @inproceedings{polan:waosd04, title = {A Behavioural Model of Cross-Cutting Concerns in Domain Specific Frameworks}, crossref = {:waosd04}, url = {http://www.fit.ac.jp/~zhao/waosd2004/pdf/Polan.pdf}, author = {Robyn Polan and Elizabeth Kendall}, } @inproceedings{legondaubry:waosd04, title = {An {AOP} Layer to Abstract Programming with Distributed Components}, crossref = {:waosd04}, url = {http://www.fit.ac.jp/~zhao/waosd2004/pdf/Legond-Aubry.pdf}, author = {Fabrice Legond-Aubry and Gerard Florin and Lionel Seinturier}, } @inproceedings{fakih:waosd04, title = {Aspects and Software Components: {A} case study of the {FRACTAL} Component Model}, crossref = {:waosd04}, url = {http://www.fit.ac.jp/~zhao/waosd2004/pdf/Fakih.pdf}, author = {Houssam Fakih and Noury Bouraqadi and Laurence Duchien}, } @inproceedings{xiong:waosd04, title = {{CCC}: {An} Aspect-Oriented Intermediate Language on {.Ne}t Platform}, crossref = {:waosd04}, url = {http://www.fit.ac.jp/~zhao/waosd2004/pdf/Xiong.pdf}, author = {Yingfei Xiong and Feng Wan}, } @inproceedings{tessier:waosd04, title = {A Model-Based Detection of Conflicts Between Crosscutting Concerns: Towards a Formal Approach}, crossref = {:waosd04}, url = {http://www.fit.ac.jp/~zhao/waosd2004/pdf/Tessier.pdf}, author = {Francis Tessier and Mourad Badri and Linda Badri}, } @inproceedings{helin:waosd04, title = {Concern-Based Specification of Distributed Systems Using Behaviourally Complete Views}, crossref = {:waosd04}, url = {http://www.fit.ac.jp/~zhao/waosd2004/pdf/Helin.pdf}, author = {Joni Helin and Pertti {Kellom\"aki}}, } @inproceedings{wang:waosd04, title = {Aspect-Oriented: a Candidate for the Biologically-Inspired Programming Paradigm for Neural Networks and Evolvable Software}, crossref = {:waosd04}, url = {http://www.fit.ac.jp/~zhao/waosd2004/pdf/Wang.pdf}, author = {Lin-Chuan Wang and Xue-Fei Tang and Li-Jia Zhang}, } @inproceedings{vaidya:waosd04, title = {Implementation of Filter Configurations using Method Call Pointcuts in {AspectJ}}, crossref = {:waosd04}, url = {http://www.fit.ac.jp/~zhao/waosd2004/pdf/Vaidya.pdf}, author = {Naval Vaidya and R. K. Joshi}, } @inproceedings{zhang:waosd04, title = {Implementing Performance ``tactics'' using Aspect-Oriented Programming}, crossref = {:waosd04}, url = {http://www.fit.ac.jp/~zhao/waosd2004/pdf/Zhang.pdf}, author = {Yan Zhang and Anna Liu and Wei Qu}, } @inproceedings{mao:waosd04, title = {A Framework of Integration Testing Using {AspectJ}}, crossref = {:waosd04}, url = {http://www.fit.ac.jp/~zhao/waosd2004/pdf/Mao.pdf}, author = {Xiaoguang Mao and John May}, } @inproceedings{mezini:fse04, title = {Variability Management with Aspects}, author = {Mira Mezini and Klaus Ostermann}, crossref = {:fse04}, pages = {127--136}, } @inproceedings{krishnamurthi:fse04, title = {Verifying Aspect Advice Modularly}, author = {Shriram Krishnamurthi and Kathi Fisler and Michael Greenberg}, crossref = {:fse04}, pages = {137--146}, } @inproceedings{rinard:fse04, title = {A Classification System and Analysis for Interactions in Aspect-Oriented Programs}, author = {Martin Rinard and Alexandru Salcianu and Suhabe Bugrara}, crossref = {:fse04}, pages = {147--158}, } @inproceedings{walker:fse04, title = {Implementing Protocols via Declarative Event Patterns}, pages = {159--169}, author = {Robert Walker and Kevin Viggers}, crossref = {:fse04}, } @misc{xerox:aspectjpgxx, author = {{Xerox Corporation}}, title = {The {AspectJ} Programming Guide}, note = {http://dev.eclipse.org/\hfill\break viewcvs/indextech.cgi/{\tilde}checkout{\tilde}/aspectj-home/doc/progguide/index.html}, http = {http://dev.eclipse.org/viewcvs/indextech.cgi/~checkout~/aspectj-home/doc/progguide/index.html}, } @misc{xerox:aspectjpxx, author = {{Xerox Corporation}}, title = {The {AspectJ} Primer}, note = {http://dev.eclipse.org/viewcvs/\hfill\break indextech.cgi/{\tilde}checkout{\tilde}/aspectj-home/\hfill\break doc/progguide/ch01.html}, http = {http://dev.eclipse.org/viewcvs/indextech.cgi/~checkout~/aspectj-home/doc/progguide/ch01.html}, } @misc{xerox:aspectjxx, author = {{Xerox PARC}}, title = {{AspectJ} Home Page}, note = {\hfill\break http://eclipse.org/aspectj/}, http = {http://eclipse.org/aspectj/}, } @misc{hannemann:amtxx, author = {Hannemann, J.}, title = {The {Aspect Mining Tool} web site}, note = {http://www.cs.ubc.ca/labs/spl/ projects/amt.html}, http = {http://www.cs.ubc.ca/labs/spl/projects/amt.html}, } @misc{leong:abxx, author = {Leong, W.}, title = {The {Aspect Browser} web site}, note = {\hfill\break http://www.cs.ucsd.edu/users/wgg/Soft\hfill\break ware/AB}, http = {http://www.cs.ucsd.edu/users/wgg/Software/AB}, } @misc{aosd:tlxx, author = {{Aspect-Oriented Software Association}}, title = {Aspect-Oriented Software Development-Tools and Languages}, note = {http://aosd.net/tools.htm}, http = {http://aosd.net/tools.htm}, } @misc{aspectc:xx, key = {AspectC}, title = {{AspectC} web page}, note = {http://www.cs.ubc.ca/ labs/spl/projects/aspectc.html}, http = {http://www.cs.ubc.ca/labs/spl/projects/aspectc.html}, } @misc{aspectj:xx, key = {{AspectJ}}, title = {{AspectJ} Project}, note = {\hfill\break http://www.eclipse.org/aspectj/}, http = {http://www.eclipse.org/aspectj/}, } @misc{hirschfeld:ashpxx, author = {Hirschfeld, R.}, title = {{AspectS} Home Page}, note = {http://\hfill\break www.prakinf.tu-ilmenau.de/{\tilde}hirsch/ Projects/Squeak/AspectS/}, http = {http://www.prakinf.tu-ilmenau.de/~hirsch/Projects/Squeak/AspectS/}, } @misc{aspectwerkz:xx, title = {{AspectWerkz} homepage}, key = {AspectWerkz}, note = {\hfill\break http:aspectwerkz.codehaus.org/}, http = {http:aspectwerkz.codehaus.org/}, } @misc{bcel:webxx, title = {{BCEL} homepage}, key = {{BCEL}}, note = {\hfill\break http://jakarta.apache.org/bcel/}, http = {http://jakarta.apache.org/bcel/}, } @misc{caesarj:webxx, title = {{CAESARJ} homepage}, key = {CAESARJ}, note = {http://caesarj.org}, http = {http://caesarj.org}, } @misc{demeter:webxx, author = {{Demeter Research Group}}, title = {Online material on adaptive programming {Demeter/Java}, and {APPC}s}, note = {\hfill\break http://www.ccs.neu.edu/research/demeter/}, http = {http://www.ccs.neu.edu/research/demeter/}, } @misc{eclipse:webxx, title = {Eclipse homepage}, key = {Eclipse}, note = {\hfill http://www.eclipse.org}, http = {http: //www.eclipse.org}, } @misc{ibm:hyperxx, author = {{IBM Research}}, title = {Hyperspaces}, note = {\hfill\break http://www.research.ibm.com/hyperspace/}, http = {http://www.research.ibm.com/hyperspace/}, } @misc{jac:webxx, title = {{JAC} project home page}, key = {JAC}, note = {\hfill\break http://jac.aopsys.com}, http = {http://jac.aopsys.com}, } @techreport{pawlak:jm03, author = {R. Pawlak and L. Seinturier and L. Duchien}, title = {{JAC} Milestone 2003}, number = {2003-04}, year = 2003, institution = {Computer Science Laboratory of Lille}, note = {\hfill\break http://www.lifl.fr/{\tilde}duchien/duchien.ps}, http = {http://www.lifl.fr/~duchien/duchien.ps} } @misc{robillard:jexxx, author = {Robillard, M. P.}, title = {The {Jex} home page}, note = {\hfill\break http://www.cs.ubc.ca/{\tilde}mrobilla/jex/}, http = {http://www.cs.ubc.ca/~mrobilla/jex/}, } @misc{jmangler:webxx, title = {{JMangler} homepage}, key = {JMangler}, note = {\hfill http://javalab.cs.uni-bonn.de/research/jmangler/}, http = {http://javalab.cs.uni-bonn.de/research/jmangler/}, } @misc{soul:webxx, title = {{SOUL} homepage}, key = {SOUL}, note = {\hfill\break http://prog.vub.ac.be/research/DMP/soul/}, http = {http://prog.vub.ac.be/research/DMP/soul/}, } @article{wand:toplas04, author = {Wand, M. and Kiczales, G. and Dutchyn, C.}, title = {A semantics for advice and dynamic join points in aspect-oriented programming}, journal = toplas, volume = 26, number = 5, pages = {890--910}, month = sep, year = 2004 } @inproceedings{sutton:oopsla-ecoose01, author = {Sutton, Jr., S. M. and I. Rouvellou}, title = {Advanced Separation of Concerns for Component Evolution}, booktitle = {Workshop on Engineering Complex Object-Oriented Systems for Evolution (ECOOSE) (OOPSLA)}, year = {2001}, city = {Tampa, Florida}, month = oct } @incollection{achermann:fmdp01, author = {Franz Achermann and Markus Lumpe and Jean-Guy Schneider and Oscar Nierstrasz}, title = {{PICCOLA}---{A} small composition language}, booktitle = {Formal methods for distributed processing: a survey of object-oriented approaches}, year = {2001}, editor = {H. Bowman and J. Derrick}, isbn = {0-521-77184-6}, pages = {403--426}, publisher = {Cambridge University Press}, address = {Cambridge, UK}, } @incollection{lumpe:fcbs00, author = {Markus Lumpe and Franz Achermann and Oscar Nierstrasz}, title = {A formal language for composition}, booktitle = {Foundations of component-based systems}, editor = {Gary T. Leavens and Murali Sitaraman}, year = {2000}, isbn = {0-521-77164-1}, pages = {69--90}, publisher = {Cambridge University Press}, address = {Cambridge, UK}, } @inproceedings{suvee:scw-etaps04, title = {There are no Aspects}, author = {Davy {Suv\'ee} and Wim Vanderperren and Dennis Wagelaar and Viviane Jonckers}, url = {http://www.ida.liu.se/~uweas/sc2004/sc2004-proceedings.pdf}, booktitle = {Software Composition Workshop (ETAPS)}, pages = {142--162}, month = mar, year = 2004, location = {Barcelona}, editor = {Uwe {A{\ss}mann} and Adrian Pop} } @inproceedings{pop:scw-etaps04, title = {Composition of {XML} dialects: {A} {ModelicaXML} case study}, author = {Adrian Pop and Ilie Savga and Uwe {A{\ss}mann} and Peter Fritzson}, pages = {126--141}, url = {http://www.ida.liu.se/~uweas/sc2004/sc2004-proceedings.pdf}, booktitle = {Software Composition Workshop (ETAPS)}, month = mar, year = 2004, location = {Barcelona}, editor = {Uwe {A{\ss}mann} and Adrian Pop} } @inproceedings{cao:scw-etaps04, title = {A Component Assembly Approach Based On Aspect-Oriented Generative Domain Modeling}, author = {Fei Cao and Barrett R. Bryant and Carol C. Burt and Rajeev R. Raje and Andrew M. Olson and Mikhail Auguston}, pages = {91-125}, url = {http://www.ida.liu.se/~uweas/sc2004/sc2004-proceedings.pdf}, booktitle = {Software Composition Workshop (ETAPS)}, month = mar, year = 2004, location = {Barcelona}, editor = {Uwe {A{\ss}mann} and Adrian Pop} } @book{rashid:aods04, author = {Awais Rashid}, title = {Aspect-Oriented Database Systems}, publisher = {Springer-Verlag}, location = {Heidelberg, Germany}, year = 2004, isbn = {3-540-00948-5} } @inproceedings{lohmann:plos-ecoop04, title = {On Adaptable Aspect-Oriented Operating Systems}, author = {Daniel Lohmann and Wasif Gilani and Olaf Spinczyk}, url = {http://www.betriebssysteme.org/plos/papers/lohmann.pdf}, booktitle = {ECOOP Workshop on Programming Languages and Operating Systems}, editor = {Olaf Spinczyk and Andreas Gal and Michael Schoettner}, location = {Oslo, Norway}, month = jun, year = 2004 } @inproceedings{stampflee:plos-ecoop04, title = {{RADAR}: {Really} low level Aspects for Dynamic Analysis and Reasoning}, author = {Owen Stampflee and Celina Gibbs and Yvonne Coady}, url = {http://www.betriebssysteme.org/plos/papers/coady.pdf}, booktitle = {ECOOP Workshop on Programming Languages and Operating Systems}, editor = {Olaf Spinczyk and Andreas Gal and Michael Schoettner}, location = {Oslo, Norway}, month = jun, year = 2004 } @inproceedings{mekerke:nfacbs-uml04, booktitle = {{$<<$UML$>>$} 2004 Workshop on Models for Non-functional Aspects of Component-Based Software}, author = {Francois Mekerke and Wolfgang Theurer and Joel Champeau}, title = {Non-functional aspects management for craft-oriented design}, url = {http://comquad.inf.tu-dresden.de/nfc04/papers/nfc04_2.pdf}, location = {Lisbon}, month = oct, year = 2004 } @inproceedings{katz:aosd-foal04, title = {Diagnosis of Harmful Aspects Using Regression Verification}, pages = {1-6}, author = {Shmuel Katz}, crossref = {:aosd-foal04}, } @inproceedings{aldrich:aosd-foal04, title = {Open Modules: {A} Proposal for Modular Reasoning in Aspect-Oriented Programming}, pages = {7-18}, author = {Jonathan Aldrich}, crossref = {:aosd-foal04}, } @inproceedings{barzilay:aosd-foal04, title = {Call and Execution Semantics in {AspectJ}}, pages = {19-24}, author = {Ohad Barzilay and Yishai A. Feldman and Shmuel Tyszberowicz and Amiram Yehudai}, crossref = {:aosd-foal04}, } @inproceedings{balzarotti:aosd-foal04, title = {Using Program Slicing to Analyze Aspect Oriented Composition}, pages = {25-30}, author = {David Balzarotti and Mattia Monga}, crossref = {:aosd-foal04}, } @inproceedings{xu:aosd-foal04, title = {Aspect Reasoning by Reduction to Implicit Invocation}, pages = {31-36}, author = {Jia Xu and Hridesh Rajan and Kevin Sullivan}, crossref = {:aosd-foal04}, } @inproceedings{katara:aosd-foal04, title = {On the Horizontal Dimension of Software Architecture in Formal Specifications of Reactive Systems}, pages = {37-44}, author = {Mika Katara and Reino Kurki-Suonio and Tommi Mikkonen}, crossref = {:aosd-foal04}, } @inproceedings{altisen:aosd-foal04, title = {Exploring Aspects in the Context of Reactive Systems}, pages = {45-51}, author = {Karine Altisen and Florence Maraninchi and David Stauch}, crossref = {:aosd-foal04}, } @inproceedings{almajali:aosd-daw04, title = {A Dynamic Aspect Oriented {C++} using {MOP} with Minimal Hook Weaving Approach}, pages = {1-8}, author = {Sufyan Almajali and Tzilla Elrad}, crossref = {:aosd-daw04}, } @inproceedings{burgstaller:aosd-daw04, title = {Hot-Deployment of Aspects}, pages = {9-22}, author = {Rainer Burgstaller and Thomas Fritz and Egon Wuchner}, crossref = {:aosd-daw04}, } @inproceedings{chitchyan:aosd-daw04, title = {Comparing Dynamic {AO} Systems}, pages = {23-36}, author = {Ruzanna Chitchyan and Ian Sommerville}, crossref = {:aosd-daw04}, } @inproceedings{cleenewerck:aosd-daw04, title = {Aspects in a Prototype-Based Environment}, pages = {37-43}, author = {Thomas Cleenewerck and Kris Gybels and Adriaan Peeters}, crossref = {:aosd-daw04}, } @inproceedings{fernandes:aosd-daw04, title = {Dynamic Aspect-Oriented Programming: {An} Interpreted Approach}, pages = {44-50}, author = {de Alexandria Fernandes, Fabr\'\i{}cio and Thais Batista}, crossref = {:aosd-daw04}, } @inproceedings{ebraert:aosd-daw04, title = {A Concern-based Approach to Dynamic Software Evolution}, pages = {51-55}, author = {Peter Ebraert and \'Eric Tanter}, crossref = {:aosd-daw04}, } @inproceedings{gibbs:aosd-daw04, title = {Garbage Collection in {Jikes}: Could Dynamic Aspects add Value?}, pages = {56-63}, author = {Celina Gibbs and Yvonne Coady}, crossref = {:aosd-daw04}, } @inproceedings{gilani:aosd-daw04, title = {A Family of Aspect Dynamic Weavers}, pages = {64-75}, author = {Wasif Gilani and Olaf Spinczyk}, crossref = {:aosd-daw04}, } @inproceedings{greenwood:aosd-daw04, title = {Using Dynamic Aspect-Oriented Programming to Implement an Autonomic System}, pages = {76-88}, author = {Philip Greenwood and Lynne Blair}, crossref = {:aosd-daw04}, } @inproceedings{hill:aosd-daw04, title = {Using Dynamic Aspects in Music Composition Systems}, pages = {89-97}, author = {Patrick Hill and Simon Holland and Robin C. Laney}, crossref = {:aosd-daw04}, } @inproceedings{michiels:aosd-daw04, title = {Using Dynamic Aspects to Distill Business Rules from Legacy Code}, pages = {98-102}, author = {Isabel Michiels and Theo D'Hondt and {De Schutter}, Kris and Ghislain Hoffman}, crossref = {:aosd-daw04}, } @inproceedings{truyen:aosd-daw04, title = {A Generalization and Solution to the Common Ancestor Dilemma Problem in Delegation-Based Object Systems}, pages = {103-119}, author = {Eddy Truyen and Wouter Joosen and Bo N\o{}rregaard {J\o{}rgensen} and Pierre Verbaeten}, crossref = {:aosd-daw04}, } @inproceedings{vanderperren:aosd-daw04, title = {Optimizing {JAsCo} dynamic {AOP} through {HotSwap} and {Jutta}}, pages = {120-134}, author = {Wim Vanderperren and Davy {Suv\'ee}}, crossref = {:aosd-daw04}, } @inproceedings{vasseur:aosd-daw04, title = {Dynamic {AOP} and Runtime Weaving for {Java}---{How} does {AspectWerkz} Address It?}, pages = {135-145}, author = {Alexandre Vasseur}, crossref = {:aosd-daw04}, } @inproceedings{verheecke:aosd-daw04, title = {Dynamic Aspects for Web Service Management}, pages = {146-152}, author = {Bart Verheecke and {Cibr\'an}, Mar\'\i{}a Agustina}, crossref = {:aosd-daw04}, } @inproceedings{webster:aosd-daw04, title = {A Dynamic Join Point Model for {Java} Object Lifecycle}, pages = {153-155}, author = {Matthew Webster}, crossref = {:aosd-daw04}, } @inproceedings{yu:aosd-daw04, title = {Towards an Efficient Aspect Precedence Model}, pages = {156-167}, author = {Yang Yu and J\"org Kienzle}, crossref = {:aosd-daw04}, } @inproceedings{huang:aosd-aosdsec04, title = {Toward a Reusable and Generic Security Aspect Library}, author = {Minhuan Huang and Chunlei Wang and Lufeng Zhang}, url = {http://www.cs.kuleuven.ac.be/~distrinet/events/aosdsec/AOSDSEC04_Minwell_Huang.pdf}, crossref = {:aosd-aosdsec04}, } @inproceedings{franz:aosd-aosdsec04, title = {Towards Unified Treatment of Security and Other Non-Functional Properties}, author = {Elke Franz and Christoph Pohl}, url = {http://www.cs.kuleuven.ac.be/~distrinet/events/aosdsec/AOSDSEC04_Christoph_Pohl.pdf}, crossref = {:aosd-aosdsec04}, } @inproceedings{kawauchi:aosd-aosdsec04, title = {Dataflow Pointcut for Integrity Concerns}, author = {Kazunori Kawauchi and Hidehiko Masuhara}, url = {http://www.cs.kuleuven.ac.be/~distrinet/events/aosdsec/AOSDSEC04_Kazunori_Kawauchi.pdf}, crossref = {:aosd-aosdsec04}, } @inproceedings{falcarin:aosd-aosdsec04, title = {Software Tampering Detection using {AOP} and mobile code}, author = {Paolo Falcarin and Mario Baldi and Daniele Mazzocchi}, url = {http://www.cs.kuleuven.ac.be/~distrinet/events/aosdsec/AOSDSEC04_Paolo_Falcarin.pdf}, crossref = {:aosd-aosdsec04}, } @inproceedings{bostrom:aosd-aosdsec04, title = {Database encryption as an Aspect}, author = {Gustav Bostrom}, url = {http://www.cs.kuleuven.ac.be/~distrinet/events/aosdsec/AOSDSEC04_Gustav_Bostrom.pdf}, crossref = {:aosd-aosdsec04}, } @inproceedings{laney:aosd-aosdsec04, title = {Evolution of Aspects for Legacy System Security Concerns}, author = {Robin Laney and Van {der} Linden, Janet and Pete Thomas}, url = {http://www.cs.kuleuven.ac.be/~distrinet/events/aosdsec/AOSDSEC04_Janet_VanderLinden.pdf}, crossref = {:aosd-aosdsec04}, } @inproceedings{verhanneman:aosd-aosdsec04, title = {View Connectors for the integration of Domain Specific Access Control}, author = {Tine Verhanneman and Frank Piessens and {De Win}, Bart and Wouter Joosen}, url = {http://www.cs.kuleuven.ac.be/~distrinet/events/aosdsec/AOSDSEC04_Tine_Verhanneman.pdf}, crossref = {:aosd-aosdsec04}, } @inproceedings{robinson:aosd-aosdsec04, title = {An Aspect of Application Security Management}, author = {Philip Robinson and Maarten Rits and Roger Kilian-Kehr}, url = {http://www.cs.kuleuven.ac.be/~distrinet/events/aosdsec/AOSDSEC04_Philip_Robinson.pdf}, crossref = {:aosd-aosdsec04}, } @inproceedings{shah:aosd-aosdsec04, title = {An Aspect-Oriented Security Framework: {Lessons} Learned}, author = {Viren Shah and Frank Hill}, url = {http://www.cs.kuleuven.ac.be/~distrinet/events/aosdsec/AOSDSEC04_Viren_Shah.pdf}, crossref = {:aosd-aosdsec04}, } @inproceedings{bodkin:aosd-aosdsec04, title = {Enterprise Security Aspects}, author = {Ron Bodkin}, url = {http://www.cs.kuleuven.ac.be/~distrinet/events/aosdsec/AOSDSEC04_Ron_Bodkin.pdf}, crossref = {:aosd-aosdsec04}, } @inproceedings{aldrich::aosd-splat04, author = {Jonathan Aldrich}, title = {Open Modules: Reconciling Extensibility and Information Hiding}, url = {papers/Aldrich.pdf}, crossref = {:aosd-splat04}, } @inproceedings{cottenier:aosd-splat04, author = {Thomas Cottenier and Tzilla Elrad}, title = {Linguistic provisions for Aspect/Core semantic interactions}, url = {papers/Elrad.doc}, crossref = {:aosd-splat04}, } @inproceedings{ernst:aosd-splat04, author = {Erik Ernst}, title = {Simple, eh?}, url = {http://www.daimi.au.dk/~eernst/splat04/papers/Ernst.pdf}, crossref = {:aosd-splat04}, } @inproceedings{bostrom:aosd-splat04, author = {Gustav {Bostr\"om}}, title = {A Case Study on Estimating the Software Engineering Properties of Implementing Database Encryption as an Aspect}, url = {http://www.daimi.au.dk/~eernst/splat04/papers/Bostrom.doc}, crossref = {:aosd-splat04}, } @inproceedings{b:aosd-splat04, author = {Kasper B. Graversen}, title = {Role Collaborations}, url = {http://www.daimi.au.dk/~eernst/splat04/papers/Graversen.pdf}, crossref = {:aosd-splat04}, } @inproceedings{ishio:aosd-splat04, author = {Takashi Ishio and Toshihiro Kamiya and Shinji Kusumoto and Katsuro Inoue}, title = {Assertion with Aspect}, url = {http://www.daimi.au.dk/~eernst/splat04/papers/Ishio.pdf}, crossref = {:aosd-splat04}, } @inproceedings{lagaisse:aosd-splat04, author = {Bert Lagaisse and Wouter Joosen and Bart {De Win}}, title = {Managing Semantic Interference with Aspect Integration Contracts}, url = {http://www.daimi.au.dk/~eernst/splat04/papers/Lagaisse.pdf}, crossref = {:aosd-splat04}, } @inproceedings{nagy:aosd-splat04, author = {Istv\'an Nagy and Lodewijk Bergmans and Mehmet {Ak{\c s}it}}, title = {Declarative Aspect Composition}, url = {http://www.daimi.au.dk/~eernst/splat04/papers/Nagy.pdf}, crossref = {:aosd-splat04}, } @inproceedings{tourwe:aosd-splat04, author = {Tom {Tourw\'e} and Andy Kellens and Wim Vanderperren and Frederik Vannieuwenhuyse}, title = {Inductively Generated Pointcuts to Support Refactoring to Aspects}, url = {http://www.daimi.au.dk/~eernst/splat04/papers/Tourwe.pdf}, crossref = {:aosd-splat04}, } @inproceedings{wu:aosd-splat04, author = {Pengcheng Wu and Mitchell Wand}, title = {An Empirical Study of the {Demeter} System}, url = {http://www.daimi.au.dk/~eernst/splat04/papers/Wu.pdf}, crossref = {:aosd-splat04}, } @inproceedings{tekinerdogan:aosd-ea04, title = {Early Aspects: {Aspect}-Oriented Requirements Engineering and Architecture Design---{Workshop} Report}, pages = {3--14}, crossref = {:aosd-ea04}, author = {B. {Tekinerdo{\u g}an} and Ana Moreira and J. {Ara\'ujo} and P. Clements} } @inproceedings{baniassad:aosd-ea04, title = {Finding Aspects in Requirements with {Theme/Doc}}, pages = {15-22}, crossref = {:aosd-ea04}, author = {E. Baniassad and S. Clarke} } @inproceedings{jackson:aosd-ea04, title = {Problems, subproblems and concerns}, pages = {23-26}, crossref = {:aosd-ea04}, author = {M. Jackson} } @inproceedings{brito:aosd-ea04, title = {Integrating the {NFR} framework in a {RE} model}, pages = {27-32}, crossref = {:aosd-ea04}, author = {I. Brito and A. Moreira} } @inproceedings{elmaddah:aosd-ea04, title = {Tracing aspects in goal driven requirements of process control systems}, pages = {33-41}, crossref = {:aosd-ea04}, author = {I. El-Maddah and T. Maibaum} } @inproceedings{kulesza:aosd-ea04, title = {Generating Aspect-Oriented Agent Architectures}, pages = {42-49}, crossref = {:aosd-ea04}, author = {U. Kulesza and A. Garcia and C. Lucena} } @inproceedings{bass:aosd-ea04, title = {Identifying Aspects Using Architectural Reasoning}, pages = {50-56}, crossref = {:aosd-ea04}, author = {L. Bass and M. Klein and L. Northrop} } @inproceedings{bogdan:aosd-ea04, title = {Facets of Concerns}, pages = {57-61}, crossref = {:aosd-ea04}, author = {C. Bogdan} } @inproceedings{groher:aosd-ea04, title = {Aspect-Orientation from Design to Code}, pages = {62-68}, crossref = {:aosd-ea04}, author = {I. Groher and T. Baumgarth} } @inproceedings{kishi:aosd-ea04, title = {Aspect-Oriented Context Modeling for Embedded Systems}, pages = {68-74}, crossref = {:aosd-ea04}, author = {T. Kishi and N. Noda} } @inproceedings{mili:aosd-ea04, title = {Understanding Separation of Concerns}, pages = {75-84}, crossref = {:aosd-ea04}, author = {H. Mili and A. Elkharraz and H. Mcheick} } @inproceedings{pang:aosd-ea04, title = {Refining Feature Driven Development---{A} Methodology for Early Aspects}, pages = {85-90}, crossref = {:aosd-ea04}, author = {J. Pang and L. Blair} } @inproceedings{sicilia:aosd-ea04, title = {On imperfection in information as an ``early'' crosscutting concern and its mapping to aspect-oriented design}, pages = {91-96}, crossref = {:aosd-ea04}, author = {M. Sicilia and E. Garcia} } @inproceedings{sousa:aosd-ea04, title = {Separation of Crosscutting Concerns from Requirements to Design: {Adapting} the Use Case Driven Approach}, pages = {97-106}, crossref = {:aosd-ea04}, author = {G. Sousa and S. Soares and P. Borba and J. Castro} } @inproceedings{stein:aosd-ea04, title = {Modeling Pointcuts}, pages = {107-110}, crossref = {:aosd-ea04}, author = {D. Stein and S. Hanenberg and R. Unland} } @inproceedings{fabry:aosd-acp4is04, title = {Transaction Management in {EJB}s: {Better} Separation of Concerns With {AOP}}, url = {http://www.cs.uvic.ca/~ycoady/acp4is04/papers/E00-390907325.pdf}, author = {Johan Fabry}, crossref = {:aosd-acp4is04}, } @inproceedings{murali:aosd-acp4is04, title = {Applying Aspect Orientation to {J2EE} Business Tier Patterns}, url = {http://www.cs.uvic.ca/~ycoady/acp4is04/papers/E00-1654252602.pdf}, author = {Therthala Murali and Renaud Pawlak and Houman Younessi}, crossref = {:aosd-acp4is04}, } @inproceedings{alvarez:aosd-acp4is04, title = {Personalization as a Cross-cutting Concern in Web Servers: {A} Case Study on {Java} Servlet Technology}, url = {http://www.cs.uvic.ca/~ycoady/acp4is04/papers\Alvarez_ACP4IS04.pdf}, author = {Jordi Alvarez and Ignacio Gutierrez and Miguel-Angel Sicilia}, crossref = {:aosd-acp4is04}, } @inproceedings{courbis:aosd-acp4is04, title = {Towards an Aspect Weaving {BPEL} engine}, url = {http://www.cs.uvic.ca/~ycoady/acp4is04/papers\E00-1036597838.pdf}, author = {Carine Courbis and Anthony Finkelstein}, crossref = {:aosd-acp4is04}, } @inproceedings{eichberg:aosd-acp4is04, title = {The Proxy Inter-Type Declaration}, url = {http://www.cs.uvic.ca/~ycoady/acp4is04/papers/E00-1302474815.pdf}, author = {Michael Eichberg}, crossref = {:aosd-acp4is04}, } @inproceedings{yamazaki:aosd-acp4is04, title = {Aspect-Oriented Design and Implementation in {Java} Bytecode Analyzer Framework}, url = {http://www.cs.uvic.ca/~ycoady/acp4is04/papers/E00-2136467388.pdf}, author = {Susumu Yamazaki and Michihiro Matsumoto and Tsuneo Nakanishi and Teruaki Kitasuka and Akira Fukuda}, crossref = {:aosd-acp4is04}, } @inproceedings{ekman:aosd-acp4is04, title = {Separation of Concerns in Compiler Construction using {JastAdd II}}, url = {http://www.cs.uvic.ca/~ycoady/acp4is04/papers/E00-1250747293.pdf}, author = {Torbjorn Ekman}, crossref = {:aosd-acp4is04}, } @inproceedings{loughran:aosd-acp4is04, title = {Supporting Product Line Evolution with Framed Aspects}, url = {http://www.cs.uvic.ca/~ycoady/acp4is04/papers/E00-208225551.pdf}, author = {Neil Loughran and Awais Rashid and Weishan Zhang and Stan Jarzabek}, crossref = {:aosd-acp4is04}, } @inproceedings{fuentes:aosd-acp4is04, title = {Towards the development of Ambient Intelligence Environments using Aspect-Oriented Techniques}, url = {http://www.cs.uvic.ca/~ycoady/acp4is04/papers/E00-497968781.pdf}, author = {Lidia Fuentes and Daniel Jimenez and Monica Pinto}, crossref = {:aosd-acp4is04}, } @inproceedings{schwanninger:aosd-acp4is04, title = {Encapsulating Crosscutting Concerns in System Software}, url = {http://www.cs.uvic.ca/~ycoady/acp4is04/papers/E00-1917723609.pdf}, author = {Christa Schwanninger and Michael Kircher and Egon Wuchner}, crossref = {:aosd-acp4is04}, } @inproceedings{coppit:aosd-acp4is04, title = {Software Plans for Separation of Concerns}, url = {http://www.cs.uvic.ca/~ycoady/acp4is04/papers/E00-411416779.pdf}, author = {David Coppit and Benjamin Cox}, crossref = {:aosd-acp4is04}, } @inproceedings{smeda:aosd-acp4is04, title = {Software Connectors in {COSA} Approach}, url = {http://www.cs.uvic.ca/~ycoady/acp4is04/papers\Adel_poster.pdf}, author = {Adel Smeda and Tahar Khammaci and Mourad Oussalah}, crossref = {:aosd-acp4is04}, } @inproceedings{cepa:aosd-acp4is04, title = {Addressing Ubiquitous Software Complexity with Mobile Containers}, url = {http://www.cs.uvic.ca/~ycoady/acp4is04/papers/E00-1957403910.pdf}, author = {Vasian Cepa}, crossref = {:aosd-acp4is04}, } @inproceedings{fakith:aosd-acp4is04, title = {Towards unifying aspects and components}, url = {http://www.cs.uvic.ca/~ycoady/acp4is04/papers/E00-1540153444.pdf}, author = {Houssam Fakith and Noury Bouraqadi and Laurence Duchien}, crossref = {:aosd-acp4is04}, } @inproceedings{bouge:popl88, author = {L. {Boug\'e} and N. Francez}, title = {A compositional approach to superimposition}, booktitle = {15th Symp. Principles of Programming Languages (POPL)}, year = {1988}, isbn = {0-89791-252-7}, pages = {240--249}, city = {San Diego}, doi = {http://doi.acm.org/10.1145/73560.73581}, publisher = acm, } @inproceedings{bracha:ecoop90, author = {Gilad Bracha and William Cook}, title = {Mixin-based inheritance}, booktitle = {Conf. Object-Oriented Programming: Systems, Languages, and Applications; European Conf. Object-Oriented Programming}, year = {1990}, isbn = {0-201-52430-X}, pages = {303--311}, city = {Ottawa}, doi = {http://doi.acm.org/10.1145/97945.97982}, publisher = acm, } @inproceedings{vanderperren:aosd-acp4is04, title = {{JAsCoAP}: {Adaptive} Programming for Component-Based Software Engineering}, url = {http://www.cs.uvic.ca/~ycoady/acp4is04/papers/E00-1970737090.pdf}, author = {Wim Vanderperren and Davy Suvee}, crossref = {:aosd-acp4is04}, } @inproceedings{desmet:aosd-acp4is04, title = {Infrastructural support for data dependencies in data-centered software systems}, url = {http://www.cs.uvic.ca/~ycoady/acp4is04/papers/E00-390055476.pdf}, author = {Lieven Desmet and Frank Piessens and Wouter Joosen}, crossref = {:aosd-acp4is04}, } @inproceedings{shonle:companion-oopsla03, author = {Macneil Shonle and Karl Lieberherr and Ankit Shah}, title = {{XAspects}: {An} extensible system for domain-specific aspect languages}, booktitle = {Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications}, year = {2003}, isbn = {1-58113-751-6}, pages = {28--37}, location = {Anaheim, CA, USA}, doi = {http://doi.acm.org/10.1145/949344.949349}, publisher = {ACM Press}, } @inproceedings{papapetrou:sac04, author = {Odysseas Papapetrou and George A. Papadopoulos}, title = {Aspect Oriented Programming for a component-based real life application: a case study}, booktitle = {Proceedings of the 2004 ACM symposium on Applied computing}, year = {2004}, isbn = {1-58113-812-1}, pages = {1554--1558}, location = {Nicosia, Cyprus}, doi = {http://doi.acm.org/10.1145/967900.968210}, publisher = {ACM Press}, } @inproceedings{lafferty:oopsla03, author = {Donal Lafferty and Vinny Cahill}, title = {Language-independent aspect-oriented programming}, booktitle = {Proceedings of the 18th ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications}, year = {2003}, isbn = {1-58113-712-5}, pages = {1--12}, location = {Anaheim, California, USA}, doi = {http://doi.acm.org/10.1145/949305.949307}, publisher = {ACM Press}, } @inproceedings{zhao:compsac03, title = {Data-flow-based unit testing of aspect-oriented programs}, author = {Jianjun Zhao}, booktitle = {27th Annual International Computer Software and Applications Conference (COMPSAC)}, year = 2003, month = nov, pages = {188--197}, ISSN = {0730-3157}, publisher = {IEEE Computer Society}, abstract = {The current research so far in aspect-oriented software development is focused on problem analysis, software design, and implementation techniques. Even though the importance of software testing is known, it has received little attention in the aspect-oriented paradigm. In this paper, we propose a data-flow-based unit testing approach for aspect oriented programs. Our approach tests two types of units for an aspect-oriented program, i.e., aspects that are modular units of crosscutting implementation of the program, and those classes whose behavior may be affected by one or more aspects. For each aspect or class, our approach performs three levels of testing, i.e., intra-module, inter-module, and intra-aspect or intra-class testing. For an individual module such as apiece of advice, a piece of introduction, and a method, we perform intra-module testing. For a public module along with other modules it calls in an aspect or class, we perform inter-module testing. For modules that can be accessed outside the aspect or class and can be invoked in any order by users of the aspect or class, we perform intra-aspect or intra-class testing. Our approach can handle unit testing problems that are unique to aspect-oriented programs. We use control flow graphs to compute def-use pairs of an aspect or class being tested and use such information to guide the selection of test for the aspect or class.} } @inproceedings{sabbah:aosd04, title = {Aspects: from promise to reality}, author = {Daniel Sabbah}, pages = {1-2}, doi = {http://doi.acm.org/10.1145/976270.976271}, abstract = {The concepts underpinning Aspect Oriented Software Development (AOSD) have been with us for many years. The last couple of years have been particularly exciting, with much of the promise brought into sharp reality. The timing for our industry couldn't be more critical; urgent help is needed to address the growing software complexity crisis. Deployment of uniform implementations of cross-cutting concerns into a range of software products is now feasible, and large and complex software can be factored and recomposed into simpler, better targeted, higher quality offerings. In this talk we describe how IBM plans to put this technology into production to simplify the delivery and service of high quality software, to deliver new solutions for our customers' development requirements, to create opportunities for customers to add value to their software, and to accelerate new initiatives at the heart of IBM's software strategy.}, crossref = {:aosd04} } @inproceedings{nuseibeh:aosd04, title = {Crosscutting requirements}, author = {Bashar Nuseibeh}, pages = {3-4}, crossref = {:aosd04}, doi = {http://doi.acm.org/10.1145/976270.976272}, abstract = {Evidence is mounting that aspect-oriented programming is useful for (re-)structuring the many concerns that software is designed to address. Many of these concerns often arise in the problem domain, and, therefore, there is a growing effort to examine 'early aspects' - to identify and represent concerns that arise during software requirements engineering and design, and to determine how these concerns interact. But can one seek to identify aspects too early? While identifying concerns during requirements elicitation may indeed be profitable, the notion of crosscutting concerns, indeed of crosscutting requirements, may only make sense when elements of a solution also begin to be explored. There are two consequences of this: a case for more interleaving of the processes of requirements engineering and design, and a case for the explicit development of specifications that map the problem and solution structures. We elaborate and discuss this thesis, and offer an alternative research agenda for aspect-oriented requirements engineering.}, } @inproceedings{boner:aosd04, title = {What are the key issues for commercial {AOP} use: how does {AspectWerkz} address them?}, author = {Jonas {Bon\'er}}, pages = {5-6}, crossref = {:aosd04}, doi = {http://doi.acm.org/10.1145/976270.976273}, abstract = {AspectWerkz is a framework targeted towards dynamic aspect-oriented programming (AOP) in commercial applications. Based on our experience designing and supporting AspectWerkz, we have identified what we believe are key issues for the commercial adoption of AOP. These are usability, agility, integration, expressiveness, performance, tool support and the concept of an aspect container that manages issues like security, isolation, visibility, deployment and manageability for the aspects. This invited talk will discuss these issues and how AspectWerkz tries to address them.}, } @inproceedings{nishizawa:aosd04, title = {Remote pointcut: a language construct for distributed {AOP}}, author = {Muga Nishizawa and Shigeru Chiba and Michiaki Tatsubori}, pages = {7-15}, crossref = {:aosd04}, doi = {http://doi.acm.org/10.1145/976270.976274}, abstract = {This paper presents our extension to AspectJ for distributed computing. Although AspectJ allows Java developers to modularize a crosscutting concern as an aspect, this paper shows that some crosscutting concerns in distributed computing are not modularized in AspectJ as simple aspects. Rather, aspects modularizing such a concern tend to be in code spread over multiple hosts and explicitly communicated across the network. This paper illustrates this fact with an example of testing a distributed program written in AspectJ with Java RMI. To address this complexity caused by network communication, this paper proposes an extension to AspectJ for distributed computing. The language construct that we call remote pointcut enables developers to write a simple aspect to modularize crosscutting concerns distributed on multiple hosts. This paper presents DJcutter, which is our AspectJ-like language supporting remote pointcuts.}, } @inproceedings{sakurai:aosd04, title = {Association aspects}, author = {Kouhei Sakurai and Hidehiko Masuhara and Naoyasu Ubayashi and Saeko Matsuura and Seiichi Komiya}, pages = {16-25}, crossref = {:aosd04}, doi = {http://doi.acm.org/10.1145/976270.976275}, abstract = {We propose a linguistic mechanism for AspectJ-like languages that concisely associates aspect instances to object groups. The mechanism, which supports association aspects, extends the per-object aspects in AspectJ by allowing an aspect instance to be associated to a group of objects, and by providing a new pointcut primitive to specify aspect instances as execution contexts of advice. With association aspects, we can straightforwardly implement crosscutting concerns that have stateful behavior related to a particular group of objects. The new pointcut primitive can more flexibly specify aspect instances when compared against previous implicit mechanisms. The comparison of execution times between the programs with association aspects and the ones with regular AspectJ aspects revealed that the association aspects exhibited almost equivalent for the medium-sized configurations.}, } @inproceedings{hilsdale:aosd04, title = {Advice weaving in {AspectJ}}, author = {Erik Hilsdale and Jim Hugunin}, pages = {26-35}, crossref = {:aosd04}, doi = {http://doi.acm.org/10.1145/976270.976276}, abstract = {This paper describes the implementation of advice weaving in AspectJ. The AspectJ language picks out dynamic join points in a program's execution with pointcuts and uses advice to change the behavior at those join points. The core task of AspectJ's advice weaver is to statically transform a program so that at runtime it will behave according to the AspeetJ language semantics. This paper describes the 1.1 implementation which is based on transforming bytecode. We describe how AspectJ's join points are mapped to regions of bytecode, how these regions are efficiently matched by AspectJ's pointcuts, and how pieces of advice are efficiently implemented at these regions. We also discuss both run-time and compile-time performance of this implementation.}, } @inproceedings{gray:aosd04, title = {A technique for constructing aspect weavers using a program transformation engine}, author = {Jeff Gray and Suman Roychoudhury}, pages = {36-45}, crossref = {:aosd04}, doi = {http://doi.acm.org/10.1145/976270.976277}, abstract = {As aspect-orientation grows in influence, the scope of applicability also will need to expand. The new approaches for improved modularization offered by aspect-orientation can provide benefits not only to new development efforts, but to legacy systems as well. A difficulty with legacy system adoption of aspect-orientation, however, is in the construction of new weavers for the disparate programming languages in which the legacy software is coded. In this paper, we describe our experience with using a program transformation system as the underlying engine for weaver construction. In particular, the capability for weaving aspects into Object Pascal (Delphi) is demonstrated using the Design Maintenance System (DMS). From this Object Pascal weaving environment, the improved modularization of several crosscutting concerns in a commercial software application is shown. The paper also describes an initial approach for construction of language-independent aspect weavers.}, } @inproceedings{hanenberg:aosd04, title = {Morphing aspects: incompletely woven aspects and continuous weaving}, author = {Stefan Hanenberg and Robert Hirschfeld and Rainer Unland}, pages = {46-55}, crossref = {:aosd04}, doi = {http://doi.acm.org/10.1145/976270.976278}, abstract = {Weaving is one of the fundamental mechanisms of aspect-oriented systems. A weaver composes different aspects with the base system by determining and adapting all parts where aspect specific elements are needed eventually. At runtime, timeconsuming join point checks are necessary to determine if at a certain join point aspect-specific code needs to be executed. Current technologies enforce such checks even in locations that only temporarily or under restrictive conditions (or even never) execute aspect-specific code. In more complex applications, a large number of these checks fail and just cause a substantial runtime overhead without contributing to the system's overall behavior. The main reason for this flaw is complete weaving, the way how aspects are woven to an application using current technologies. In this paper we discuss the problem of unnecessary join point checks caused by complete weaving. We introduce morphing aspects - incompletely woven aspects in combination with continuous weaving - to overcome the problem of futile join point checks.}, } @inproceedings{colyer:aosd04, title = {Large-scale {AOSD} for middleware}, author = {Adrian Colyer and Andrew Clement}, pages = {56-65}, crossref = {:aosd04}, doi = {http://doi.acm.org/10.1145/976270.976279}, abstract = {For a variety of reasons, today's middleware systems are highly complex. This complexity surfaces internally in the middleware construction, and externally in the programming models supported and features offered. We believed that aspect-orientation could help with these problems, and undertook a case study based on members of an IBM middleware product-line. We also wanted to know whether aspect-oriented techniques could scale to commercial project sizes with tens of thousands of classes, many millions of lines of code, hundreds of developers, and sophisticated build systems. This paper describes the motivation for our research, the challenges involved, and key lessons that we learnt in refactoring both homogeneous and heterogeneous crosscutting concerns in the middleware.}, } @inproceedings{duzan:aosd04, title = {Building adaptive distributed applications with middleware and aspects}, author = {Gary Duzan and Joseph Loyall and Richard Schantz and Richard Shapiro and John Zinky}, pages = {66-73}, crossref = {:aosd04}, doi = {http://doi.acm.org/10.1145/976270.976280}, abstract = {Middleware technologies allow the development of distributed applications without explicit knowledge of the networking involved. However, in the face of changing network and CPU conditions across the distributed system, these applications often will need to adapt their behavior to maintain an acceptable quality of service (QoS), which implies a knowledge of these conditions. This adaptation is neither part of the application logic nor part of the distribution middleware, and so represents a separate concern which needs to be addressed.This paper describes an aspect-based approach to programming QoS adaptive applications that separates the QoS and adaptation concerns from the functional and distribution concerns. To simplify aspect development for these applications, our approach integrates a domain-specific adaptation specification with a novel aspect language which includes distribution and adaptation-specific join points in its join point model. We compare and contrast this with existing aspect-oriented language approaches and illustrate our approach with an example distributed system application.}, } @inproceedings{gobel:aosd04, title = {The {COMQUAD} component model: enabling dynamic selection of implementations by weaving non-functional aspects}, author = {Steffen {G\"obel} and Christoph Pohl and Simone {R\"ottger} and Steffen Zschaler}, pages = {74-82}, crossref = {:aosd04}, doi = {http://doi.acm.org/10.1145/976270.976281}, abstract = {The reliability of non-functional contracts is crucial for many software applications. This added to the increasing attention this issue lately received in software engineering. Another development in software engineering is toward component-based systems. The interaction of both, non-functional aspects and components, is a relatively new research area, which the COMQUAD project is focusing on.Our component model, presented in this paper, enables the specification and runtime support of non-functional aspects in component-based systems. At the same time, a clear separation of non-functional properties and functionally motivated issues is provided. We achieve this by extending the concepts of the existing component-based systems Enterprise JavaBeans (EJB) and CORBA Components (CCM). Non-functional aspects are described orthogonally to the application structure using descriptors, and are woven into the running application by the component container acting as a contract manager. The container implicitly instantiates component specifications and connects them according to the current requests. The selection of actual implementations depends on the particular client's non-functional requirements. This technique also enables adaptation based on the specific quantitative capabilities of the running system.In this paper we give a detailed description of the COMQUAD component model and the appropriate container support. We also provide a simple case study of a multimedia application for better understanding.}, } @inproceedings{bockisch:aosd04, title = {Virtual machine support for dynamic join points}, author = {Christoph Bockisch and Michael Haupt and Mira Mezini and Klaus Ostermann}, pages = {83-92}, crossref = {:aosd04}, doi = {http://doi.acm.org/10.1145/976270.976282}, abstract = {A widespread implementation approach for the join point mechanism of aspect-oriented languages is to instrument areas in code that match the static part of pointcut designators, inserting dynamic checks for that part of matching that depends on run-time conditions, if needed. For performance reasons, such dynamic checks should be avoided whenever possible. One way to do so is to postpone weaving of advice calls until run-time, when conditions determining the emergence of join points hold. This calls for fluid code---code that adapts itself to the join point emergence at run-time, and suggests that AOP concepts should be integrated into the execution model underlying a VM. In this paper, we present first steps toward such an integration in Steamloom, an extension of IBM's Jikes Research Virtual Machine. Steamloom is fairly restricted, but our initial experimental results indicate that aspect-aware VMs and fluid code are promising w.r.t performance. While the focus in this paper is on performance, there are other advantages of aspect-aware VMs to be investigated in the future.}, } @inproceedings{ettinger:aosd04, title = {Untangling: a slice extraction refactoring}, author = {Ran Ettinger and Mathieu Verbaere}, pages = {93-101}, crossref = {:aosd04}, doi = {http://doi.acm.org/10.1145/976270.976283}, abstract = {Separation of concerns in existing code can be achieved by specific refactoring techniques. Modern refactoring tools support a number of well-known refactoring transformations, including method extraction. In this paper, we examine how method extraction can be improved through program slicing. Furthermore, we show how a generalization of such slice extraction can be applied to untangle existing code by extracting aspects.}, } @inproceedings{chiba:aosd04, title = {Josh: an open {AspectJ}-like language}, author = {Shigeru Chiba and Kiyoshi Nakagawa}, pages = {102-111}, crossref = {:aosd04}, doi = {http://doi.acm.org/10.1145/976270.976284}, abstract = {Although aspect-oriented programming (AOP) is becoming widely used, the design of the pointcut language and the generic and reusable description of advice are still research topics. To address these topics, this paper presents Josh, which is our new AspectJ-like language with an extensible pointcut language and a few mechanisms for generic description. The extensible pointcut language is based on the idea of open compiler. Since Josh allows defining a new pointcut designator in Java, the users can define a pointcut designator useful in a particular application domain. Also, Josh allows any Java expression to be included in the body of advice. This mechanism enables the generic and reusable description of advice.}, } @inproceedings{haley:aosd04, title = {Deriving security requirements from crosscutting threat descriptions}, author = {Charles B. Haley and Robin C. Laney and Bashar Nuseibeh}, pages = {112-121}, crossref = {:aosd04}, doi = {http://doi.acm.org/10.1145/976270.976285}, abstract = {It is generally accepted that early determination of the stakeholder requirements assists in the development of systems that better meet the needs of those stakeholders. General security requirements frustrate this goal because it is difficult to determine how they affect the functional requirements of the system.This paper illustrates how representing threats as crosscutting concerns aids in determining the effect of security requirements on the functional requirements. Assets (objects that have value in a system) are first enumerated, and then threats on these assets are listed. The points where assets and functional requirements join are examined to expose vulnerabilities to the threats. Security requirements, represented as constraints, are added to the functional requirements to reduce the scope of the vulnerabilities. These requirements are used during the analysis and specification process, thereby incorporating security concerns into the functional requirements of the system.}, } @inproceedings{harbulot:aosd04, title = {Using {AspectJ} to separate concerns in parallel scientific {Java} code}, author = {Bruno Harbulot and John R. Gurd}, pages = {122-131}, crossref = {:aosd04}, doi = {http://doi.acm.org/10.1145/976270.976286}, abstract = {Scientific software frequently demands high performance in order to execute complex models in acceptable time. A major means of obtaining high performance is via parallel execution on multi-processor systems. However, traditional methods of programming for parallel execution can lead to substantial code-tangling where the needs of the mathematical model crosscut with the concern of parallel execution.Aspect-Oriented Programming is an attractive technology for solving the problem of code-tangling in high performance parallel scientific software. The underlying mathematical model and the parallelism can be treated as separate concerns and programmed accordingly. Their elements of code can then be woven together to produce the final application. This paper investigates the extent to which AspectJ technology can be used to achieve the desired separation of concerns in programs from the Java Grande Forum benchmark suite, a set of test applications for evaluation of the performance of Java in the context of numerical computation. The paper analyses three different benchmark programs and classifies the degrees of difficulty in separating concerns within them in a form suitable for AspectJ. This leads to an assessment of the influence of the design of a numerical application on the ability of AspectJ to solve this kind of code-tangling problem. It is concluded that: (1) scientific software is rarely produced in true object-oriented style; and (2) the inherent loop structure of many scientific algorithms is incompatible with the join point philosophy of AspectJ.Since AspectJ cannot intercept the iterations of for-loops (which are at the heart of high-performance computing), various object-oriented models are proposed for describing (embarrassingly parallel) rectangular double-nested forloops that make it possible to use AspectJ for encapsulating parallelisation in an aspect. Finally, a test-case using these models is presented, together with performance results obtained on various Java Virtual Machines.}, } @inproceedings{dhondt:aosd04, title = {Hybrid aspects for weaving object-oriented functionality and rule-based knowledge}, author = {Maja D'Hondt and Viviane Jonckers}, pages = {132-140}, crossref = {:aosd04}, doi = {http://doi.acm.org/10.1145/976270.976287}, abstract = {Software applications often consist of implicit knowledge for making decisions or giving advice in addition to object-oriented functionality. A rule-based system can be employed for representing and reasoning with this knowledge. Although several hybrid systems exist that combine object-oriented programming and rule-based reasoning, a survey we conducted reveals that both paradigms are not well integrated and programs are tightly coupled.We propose hybrid aspects for integrating object-oriented programming and rule-based reasoning. As expected, hybrid aspects specify join points where normal execution is interrupted and advice is executed. However, since two different languages are involved, we need join point models for both and advice that activates both. As such, we complement a simple join point model for object-oriented programming with a join point model for rule-based reasoning. Hybrid advice is independent of the interrupted language and supports sending messages as well as activating rules. It uses values of either language transparently.We present OReA, an implementation of hybrid aspects for weaving Smalltalk and a rule-based system. We discuss and illustrate two applications of hybrid aspects.}, } @inproceedings{douence:aosd04, title = {Composition, reuse and interaction analysis of stateful aspects}, author = {R\'emi Douence and Pascal Fradet and Mario {S\"udholt}}, pages = {141-150}, crossref = {:aosd04}, doi = {http://doi.acm.org/10.1145/976270.976288}, abstract = {Aspect-Oriented Programming promises separation of concerns at the implementation level. However, aspects are not always orrthogonal and aspect interaction is a fundamental problem. In this paper, we extend previous work on a generic framework for the formal definition and interaction analysis of stateful aspects. We propose three important extensions which enhance expressivity while preserving static analyzability of interactions. First, we provide support for variables in aspects in order to share information between different execution points. This allows the definition of more precise aspects and to avoid detection of spurious conflicts. Second, we introduce generic composition operators for aspects. This enables us to provide expressive support for the resolution of conflicts among interacting aspects. Finally, we offer a means to define applicability conditions for aspects. This makes interaction analysis more precise and paves the way for reuse of aspects by making explicit requirements on contexts in which aspects must be used.}, } @inproceedings{denaro:pse02, author = {Giovanni Denaro and Mattia Monga}, title = {An experience on verification of aspect properties}, booktitle = {Proceedings of the 4th international workshop on Principles of software evolution}, year = {2002}, isbn = {1-58113-508-4}, pages = {186--189}, location = {Vienna, Austria}, doi = {http://doi.acm.org/10.1145/602461.602506}, publisher = {ACM Press}, } @article{martin:queue03, author = {Ali Arsanjani and Brent Hailpern and Joanne Martin and Peri Tarr}, title = {Web Services: Promises and Compromises}, journal = {Queue}, volume = {1}, number = {1}, year = {2003}, issn = {1542-7730}, pages = {48--58}, doi = {http://doi.acm.org/10.1145/637958.639315}, publisher = {ACM Press}, } @mastersthesis{dalager:ms04, title = {Aspect Oriented Programming in {JBoss} 4}, author = {Christian Dalager and Simon Jorsal and Eske Sort}, abstract = {This report aims at providing software developers with an understanding of the aspect oriented praradigm as used in the JBoss 4 application server.\par The aspect oriented framework in JBoss is presented in two stages: The first is how to use the framework, the second how to design applications and aspect oriented services. A thorough presentation of the implementation details of the framework is given, and reflections on the design choices are made. \par We conclude that the complexity and flexibility is the strength and the weakness of the framework. The cost of the flexibility is a major cognitive burden on the developer. We further reflect on the communication of our findings.}, school = {IT University of Copenhagen}, month = feb, year = 2004 } @inproceedings{cilia:gpce03, author = {M. Cilia and M. Haupt and M. Mezini and A. P. Buchmann}, title = {The Convergence of {AOP} and Active Databases: {Towards} Reactive Middleware}, booktitle = {Proceedings of 2nd International Conference on Generative Programming and Component Engineering (GPCE)}, year = 2003, pages = {169--188}, publisher = {Springer-Verlag}, series = {LNCS}, volume = 2830, editor = {F. Pfenning and Y. Smaragdakis}, abstract = {Reactive behavior is rapidly becoming a key feature of modern software systems in such diverse areas as ubiquitous computing, autonomic systems, and event-based supply chain management. In this paper we analyze the convergence of techniques from aspect oriented programming, active databases and asynchronous notification systems to form reactive middleware. We identify the common core of abstractions and explain both commonalities and differences to start a dialogue across community boundaries. We present existing options for implementation of reactive software and analyze their run-time semantics. We do not advocate a particular approach but concentrate on identifying how the various disciplines can benefit from each other. We believe that AOP can solve the impedance mismatch found in reactive systems that are implemented through inherently static languages, while AOP can benefit from the active database community's experience with event detection/composition and fault tolerance in large scale systems. The result could be a solid foundation for the realization of reactive middleware services.} } @inproceedings{douence:gpce02, author = {R\'emi Douence and Pascal Fradet and Mario {S\"udholt}}, title = {A Framework for the Detection and Resolution of Aspect Interactions}, booktitle = {1st Conf. Generative Programming and Component Engineering}, series = lncs, volume = {2487}, city = {Pittsburgh}, year = {2002}, isbn = {3-540-44284-7}, pages = {173--188}, publisher = sv, address = {Berlin}, } @article{finkelstein:tose94, author = {A. C. W. Finkelstein and D. Gabbay and A. Hunter and J. Kramer and B. Nuseibeh}, title = {Inconsistency Handling in Multiperspective Specifications}, journal = tose, volume = {20}, number = {8}, year = {1994}, issn = {0098-5589}, pages = {569--578}, doi = {http://dx.doi.org/10.1109/32.310667}, publisher = {IEEE}, } @inproceedings{garlan:vdm91, author = {David Garlan and David Notkin}, title = {Formalizing Design Spaces: Implicit Invocation Mechanisms}, booktitle = {4th Int'l Symp. of VDM Europe on Formal Software Development-Volume I}, series = lncs, volume = {552}, year = {1991}, isbn = {3-540-54834-3}, pages = {31--44}, publisher = sv, address = {Berlin}, } @article{oregan:onjava04, title = {Introduction to Aspect-Oriented Programming}, author = {Graham O'Regan}, month = jan, year = 2004, journal = {O'Reilly OnJava.com}, url = {http://www.onjava.com/pub/a/onjava/2004/01/14/aop.html} } @inproceedings{dantas:oopsla-rice03, author = {Ayla Dantas and Paulo Borba and Vander Alves}, title = {Using Aspects to Structure Small Devices Applications}, booktitle = {First Workshop on Reuse in Constrained Environments (RICE'03), OOPSLA2003}, month = oct, year = 2003, location = {Anaheim, California}, } @inproceedings{dantes:slplop03, author = {Ayla Dantas and Paulo Borba}, title = {Adaptability Aspects: {An} Architectural Pattern for Structuring Adaptive Applications with Aspects}, booktitle = {Third Latin American Conference on Pattern Languages of Programming, SugarLoafPLoP'2003}, month = aug, year = 2003, location = {Porto de Galinhas, Brazil}, } @inproceedings{dantas:sblp03, author = {Ayla Dantas and Paulo Borba}, title = {Developing Adaptive {J2ME} Applications Using {AspectJ}}, booktitle = {Proceedins of VII Brazilian Symposium on Programming Languages, SBLP 2003}, pages = {226--242}, month = may, year = 2003, location = {Ouro Preto - MG, Brazil}, } @inproceedings{soares:oopsla-sdpp02, author = {S\'ergio Soares and Paulo Borba}, title = {{PIP}: {P}rogressive implementation pattern}, booktitle = {1st Workshop on Software Development Process Patterns (OOPSLA02)}, month = nov, year = 2002, location = {Seattle, Washington}, } @inproceedings{soares:compsac02, author = {S\'ergio Soares and Paulo Borba}, title = {Concurrency control with {Java} and relational databases}, booktitle = {Proceeding of 26th Annual IEEE Computer Software and Applications Conference, COMPSAC 2002}, pages = {843--849}, month = aug, year = 2002, location = {Oxford, England}, } @inproceedings{griss:spl00, author = {Martin L. Griss}, title = {Implementing product-line features by composing aspects}, booktitle = {1st Conf. Software Product Lines: {Experience} and Research Directions}, year = 2000, isbn = {0-79237-940-3}, pages = {271--288}, city = {Denver}, publisher = {Kluwer Academic Publishers}, address = {Boston}, } @inproceedings{dias:slpolp02, author = {Klissiomara Dias and Paulo Borba}, title = {Padr\tildacc{o}es de projeto para estrutura\c{c}\tildacc{a}o de aplica\c{c}\tildacc{o}es distribu\'\i{}das {Enterprise JavaBeans}}, booktitle = {Second Latin American Conference on Pattern Languages of Programming, SugarLoafPLoP'2002}, month = aug, year = 2002, location = {Itaipava, Brazil}, note = {Published in ICMC - University of S\tildacc{a}o Paulo Magazine, December, 2002, pages 55-86}, } @inproceedings{soares:sblp02, author = {S\'ergio Soares and Paulo Borba}, title = {{AspectJ}---{Aspect}-oriented programming in {Java}}, booktitle = {Tutorial in Proceedins of VI Brazilian Symposium on Programming Languages, SBLP 2002}, note = {(in portuguese)}, pages = {39--55}, month = jun, year = 2002, location = {PUC-Rio, Rio de Janeiro}, } @inproceedings{alves:sbes01, author = {Vander Alves and Paulo Borba}, title = {An Implementation Method for Distributed Object-Oriented Applications}, booktitle = {Proceedings of XV Brazilian Symposium on Software Engineering, SBES 2001}, pages = {161--176}, month = oct, year = 2001, location = {Rio de Janeiro, Brazil}, } @inproceedings{soares:slplop01, author = {S\'ergio Soares and Paulo Borba}, title = {Concurrency Manager}, booktitle = {First Latin American Conference on Pattern Languages Programming, SugarLoafPLoP 2001}, month = oct, year = 2001, location = {Rio de Janeiro}, note = {Published in UERJ Magazine: Special Issue on Software Patterns, June 2002, pages 221-231.}, } @inproceedings{alves:slplop01, author = {Vander Alves and Paulo Borba}, title = {Distributed Adapters Pattern: {A} Design Pattern for Object-Oriented Distributed Applications}, booktitle = {First Latin American Conference on Pattern Languages Programming, SugarLoafPLoP 2001}, month = oct, year = 2001, location = {Rio de Janeiro}, note = {Published in UERJ Magazine: Special Issue on Software Patterns, June 2002, pages 132-142.}, } @inproceedings{soares:sblp01, author = {S\'ergio Soares and Paulo Borba}, title = {Concurrency Control with {Java} and Relational Databases}, booktitle = {Proceedins of V Brazilian Symposium on Programming Languages, SBLP 2001}, note = {(in Portuguese)}, pages = {252--267}, month = may, year = 2001, location = {Curitiba, Paran\'a, Brazil}, } @inproceedings{alves:bsse00, author = {Vander Alves and Paulo Borba}, title = {A design pattern for distributed applications}, booktitle = {XIV Brazilian Symposium on Software Engineering-Minicourses and Tutorials}, editor = {Adriano Souza and others}, pages = {191--219}, month = oct, year = 2000, location = {Jo\tildacc{a}o Pessoa, Brazil}, } @book{kiczales:amp91, author = {Kiczales, G. and des Rivieres, J. and Bobrow, D. G.}, title = {The Art of the Metaobject Protocol}, publisher = {MIT Press}, address = {Cambridge, Massachusetts}, year = 1991, isbn = {0-262-11158-6}, } @techreport{kiczales:ecoop-aoptut98, author = {Kiczales, G. and C. V. Lopes}, title = {{ECOOP} '98 Aspect-oriented programming tutorial notes}, institution = {AITO}, month = jul, year = 1998, } @inproceedings{kiczales:nv01, author = {Kiczales, G.}, title = {Aspect-oriented programming - the fun has just begun}, booktitle = {Workshop on New Visions for Software Design and Productivity: Research and Applications}, city = {Nashville, Tennessee}, url = {http://www.hpcc.gov/iwg/sdp/vanderbilt/position_papers/gregor_kiczales_aspect_oriented_programming.pdf}, month = dec, year = 2001, } @article{kiczales:ieees96, author = {Kiczales, G.}, title = {Beyond the black box: {Open} implementation}, journal = software, volume = 13, number = 1, pages = {8--11}, month = jan, year = 1996, } @inproceedings{kiczales:sarma92, author = {Kiczales, G.}, title = {Towards a New Model of Abstraction in Software Engineering}, booktitle = {Int'l Workshop on New Models in Software Architecture, Reflection and Meta-Level Architecture}, year = 1992, } @techreport{kiczales:aop97, author = {Kiczales, G. and Lamping, J. and Mendhekar, A. and Maeda, C. and Lopes, C. and Loingtier, J.-M. and Irwin, J.}, title = {Aspect-Oriented Programming}, number = {SPL97-008 P9710042}, institution = {Xerox PARC}, month = feb, year = 1997, url = {http://www.parc.xerox.com/spl/projects/aop/tr-aop.htm}, } @inproceedings{klaeren:gcse00, author = {H. Klaeren and E. Pulvermueller and A. Rashid and A. Speck}, title = {Aspect Composition Applying the Design by Contract Principle}, booktitle = {2nd Int'l Symp. Generative and Component-based Software Engineering (GCSE)}, series = lncs, volume = {2177}, year = 2000, publisher = sv, address = {Berlin}, pages = {57--69}, } @inproceedings{kniesel:cd02, author = {G\"unter Kniesel and Michael Austermann}, title = {{CC4J} - Code Coverage for {Java} - a load-time adaptation success story}, booktitle = {Component Deployment - IFIP/Working Conference (CD2002)}, series = lncs, volume = {2370}, month = jun, pages = {155--169}, publisher = sv, address = {Berlin}, year = 2002, } @techreport{kniesel:sda03, author = {G\"unter Kniesel and Uwe Bardey}, title = {Static Dependency Analysis for Conditional Program Transformations}, issn = {0944-8535}, institution = {CS Dept. III, University of Bonn}, month = jul, year = 2003, } @article{laddad:jw02, author = {Laddad, Ramnivas}, title = {I want my {AOP}!}, journal = {JavaWorld magazine}, month = jan, year = 2002, url = {http://www.javaworld.com/javaworld/jw-01-2002/jw-0118-aspect.html} } @mastersthesis{leong:ms02, author = {Leong, W.-Y.}, title = {Using the atlas metaphor to assist cross-cutting software changes}, school = {University of California, San Diego}, year = 2002, } @techreport{lesiecki:tf02, author = {Lesiecki, N.}, title = {Test flexibility with {AspectJ} and mock objects}, institution = {Java Technology Zone for IBM's Developer Works}, month = may, year = 2002, url = {http://www-106.ibm.com/developerworks/java/library/j-aspectj2/?open&l = 007,t = gr}, } @techreport{lieberherr:aopam01, author = {Lieberherr, Karl J. and Doug Orleans and Johan Ovlinger}, title = {Aspect-Oriented Programming with Adaptive Methods}, number = {NU-CCS-2001-01}, institution = {College of Computer Science, Northeastern University}, address = {Boston}, month = feb, year = 2001, } @inproceedings{mahrenholz:oortdc02, author = {Daniel Mahrenholz and Olaf Spinczyk and Wolfgang {Schr\"oder-Preikschat}}, title = {Program Instrumentation for Debugging and Monitoring with {AspectC++}}, booktitle = {5th Int'l Symp. Object-oriented Real-time Distributed Computing}, publisher = ieee, city = {Washington, D. C.}, month = apr, year = 2002, pages = {249--256}, } @techreport{marshall:dj99, author = {Joshua Marshall and Doug Orleans and Karl J. Lieberherr}, title = {{DJ}: {Dynamic} Structure-Shy Traversal in Pure {Java}}, institution = {Northeastern University}, month = may, year = 1999, url = {http://www.ccs.neu.edu/research/demeter/DJ/}, } @article{kiczales:sd04h, journal = {Software Development}, author = {Gregor Kiczales}, year = 2004, url = {http://www.sdmagazine.com/documents/s=8993/sdm0410g/}, title = {The More the Merrier}, abstract = {When Bill Gates recently declared his designs on aspect-oriented programming, the response was mixed--while some feared a deadly embrace, others saw it as a good sign.}, month = oct } @article{kiczales:sd04g, journal = {Software Development}, author = {Gregor Kiczales}, year = 2004, url = {http://www.sdmagazine.com/documents/s=8993/sdm0409j/}, title = {The New Modularity}, abstract = {Aspects open up new possibilities for previously locked-down parts of platforms.}, month = sep } @article{kiczales:sd04f, journal = {Software Development}, author = {Gregor Kiczales}, year = 2004, url = {http://www.sdmagazine.com/documents/s=8993/sdm0408h/}, title = {Thinking Aspects}, abstract = {The biggest impact has already begun—like object-oriented programming before it, AOP is changing the way we think about the elements of software systems.}, month = aug } @article{kiczales:sd04e, journal = {Software Development}, author = {Gregor Kiczales}, year = 2004, url = {http://www.sdmagazine.com/documents/s=8993/sdm0406d/}, title = {Palpable Progess}, abstract = {From the podium to the hallways, the third annual Aspect-Oriented Software Development Conference in Lancaster, England, was suffused with the energy of commercial adopters.}, month = jun } @article{kiczales:sd04d, journal = {Software Development}, author = {Gregor Kiczales}, year = 2004, url = {http://www.sdmagazine.com/documents/s=8993/sdm0405h/}, title = {A Little Goes a Long Way}, abstract = {Attributes in C\# and annotations in Java provide a hook for principled macros and metaprogramming in the C family. Lisp has had this technology for years, offering many lessons.}, month = may } @article{kiczales:sd04c, journal = {Software Development}, author = {Gregor Kiczales}, year = 2004, url = {http://www.sdmagazine.com/documents/s=8993/sdm0404i/}, title = {Show Me the Structure}, abstract = {Aspect-oriented programming is all about crosscutting structure. Understand that, and it's clear what direction AOP tools need to follow.}, month = apr } @article{kiczales:sd04b, journal = {Software Development}, author = {Gregor Kiczales}, year = 2004, url = {http://www.sdmagazine.com/documents/s=8993/sdm0403k/}, title = {Common Misconceptions}, abstract = {Whether you focus on the generality, the utility or the functionality of aspect-oriented programming, you may encounter some false concepts that get in your way.}, month = mar } @article{kiczales:sd04a, journal = {Software Development}, author = {Gregor Kiczales}, year = 2004, url = {http://www.sdmagazine.com/documents/s=8993/sdm0402h/}, title = {It's the Crosscutting}, abstract = {Understanding how to separate concerns and avoid scattering will help you develop better software—whether you use aspect-oriented programming tools or not.}, month = feb } @article{kiczales:sd04, journal = {Software Development}, author = {Gregor Kiczales}, year = 2004, url = {http://www.sdmagazine.com/documents/s=8993/sdm0401j/}, title = {The {AOP} Report Card}, abstract = {AOP training and tool support are key issues for future growth.}, month = jan } @article{kiczales:sd03, journal = {Software Development}, month = nov, year = 2003, title = {Testing the Waters}, abstract = {With new tools emerging and the buzz increasing, it's time to start working with aspect-oriented programming. Here's a plan for doing so, in four simple steps.}, author = {Gregor Kiczales}, url = {http://www.sdmagazine.com/documents/s=8993/sdm0311e/} } @article{kiczales:sd03a, journal = {Software Development}, month = dec, year = 2003, title = {The Key to {AOP}}, abstract = {History shows that to be widely adopted, new programming paradigms must be expressive, efficient, intuitive, compatible and have good tool support.}, author = {Gregor Kiczales}, url = {http://www.sdmagazine.com/documents/s=8958/sdm0312g/sdm0312g.html} } @book{laddad:ajia03, author = {Ramnivas Laddad}, title = {{AspectJ} in Action: {Practical} Aspect-Oriented Programming}, publisher = {Manning}, isbn = {193011}, year = 2003, } @techreport{laddad:tss03, title = {Aspect-Oriented Refactoring Part 1: {Overview} and Process}, author = {Ramnivas Laddad}, institution = {TheServerSide.com}, year = 2003, url = {http://www.theserverside.com/resources/article.jsp?l=AspectOrientedRefactoringPart1} } @book{gradecki:maj03, title = {Mastering {AspectJ}: {Aspect}-Oriented Programming in {Java}}, author = {Joseph D. Gradecki and Nicholas Lesiecki}, publisher = {John Wiley and Sons}, year = 2003, isbn = {0471431044} } @techreport{manola:sp99, author = {Frank Manola}, title = {Providing Systemic Properties (Ilities) and Quality of Service in Component-Based Systems}, institution = {OBJS}, year = 1999, url = {http://. www objs.com/aits/9901-iquos.html} } @inproceedings{santanna:bsse03, author = {Cl\'audio Sant'Anna and Alessandro Garcia and Christina Chavez and Carlos Lucena and von Staa, Arndt}, title = {On the Reuse and Maintenance of Aspect-Oriented Software: {An} Assessment Framework}, booktitle = {XVII Brazilian Symposium on Software Engineering}, city = {Manaus, Brazil}, month = oct, year = 2003, url = {http://www.teccomm.les.inf.puc-rio.br/SoCAgents/publica.htm} } @inproceedings{rausch:aosd-uml03, author = {Andreas Rausch and Bernhard Rumpe and Lucien Hoogendoorn}, url = {Andreas-AOFWM.pdf}, title = {Aspect-Oriented Framework Modeling}, crossref = {:aosd-uml03}, } @inproceedings{groher:aosd-uml03, author = {Iris Groher and Stefan Schulze}, url = {Groher-AspectCodeFromUML.pdf}, title = {Generating Aspect Code from {UML} Models}, crossref = {:aosd-uml03}, } @inproceedings{philippow:aosd-uml03, author = {Ilka Philippow and Matthias Riebisch and Kai {B\"ollert}}, url = {Mathias-PhilRieBoel.pdf}, title = {The {Hyper/UML} Approach for Feature Based Software Design}, crossref = {:aosd-uml03}, } @inproceedings{georg:aosd-uml03, author = {Geri Georg and Robert France and Indrakshi Ray}, url = {Geri-AOM-GeoFrRay.pdf}, title = {Composing Aspect Models}, crossref = {:aosd-uml03}, } @inproceedings{kande:aosd-uml03, author = {Mohamed Kande and Valentin Crettaz}, url = {kande-odr-paper.pdf}, title = {Towards Patterns for Concern-Oriented Software Architecture}, crossref = {:aosd-uml03}, } @inproceedings{whittle:aosd-uml03, author = {Jon Whittle and Jo\tildacc{a}o {Ara\'ujo} and Dae-Kyoo Kim}, url = {Jon-aspectUML03.pdf}, title = {Modeling and Validating Interaction Aspects in {UML}}, crossref = {:aosd-uml03}, } @inproceedings{saeki:aosd-uml03, author = {Motoshi Saeki and Haruhiko Kaiya}, url = {Motoshi-saeki.pdf}, title = {Transformation Based Approach for Weaving Use Case Models in Aspect-Oriented Requirements Analysis}, crossref = {:aosd-uml03}, } @inproceedings{mellor:aosd-uml03, author = {Stephen J. Mellor}, url = {Stephen-AOSD.pdf}, title = {A Framework for Aspect-Oriented Modeling}, crossref = {:aosd-uml03}, } @inproceedings{fayad:aosd-uml03, author = {M. E. Fayad and Anita Ranganath}, url = {Anita-aspects-paper.PDF}, title = {Modeling Aspects using Software Stability and {UML}}, crossref = {:aosd-uml03}, } @inproceedings{barros:aosd-uml03, author = {Jo\tildacc{a}o Paulo Barros and Lu\'\i{}s Gomes}, url = {Gomes-BarrosGomesAOM_UML2003.pdf}, title = {Towards the Support for Crosscutting Concerns in Activity Diagrams: {A} Graphical Approach}, crossref = {:aosd-uml03}, } @inproceedings{cooper:aosd-uml03, author = {Kendra Cooper and Lirong Dai and Yi Deng}, url = {Lirong-UML_Aspect_Workshop.pdf}, title = {Modeling Performance as an Aspect: {A} {UML} Based Approach}, crossref = {:aosd-uml03}, } @inproceedings{richters:aosd-uml03, author = {Mark Richters and Martin Gogolla}, url = {Mark-richters.pdf}, title = {Aspect-Oriented Monitoring of {UML} and {OCL} Constraints}, crossref = {:aosd-uml03}, } @inproceedings{bruel:aosd-uml03, author = {Jean-Michel Bruel and Jo\tildacc{a}o {Ara\'ujo} and Ana Moreira and Albert Royer}, url = {Jean-final.pdf}, title = {Using Aspects to Develop Built-In Tests for Components}, crossref = {:aosd-uml03}, } @inproceedings{hammouda:aosd-uml03, author = {Imed Hammouda and Mika Pussinen and Mika Katara and Tommi Mikkonen}, url = {Mika-ao-framework.pdf}, title = {{UML-based} Approach for Documenting and Specializing Frameworks Using Patterns and Concern Architectures}, crossref = {:aosd-uml03}, } @inproceedings{fayad:aosd-uml03a, author = {M. E. Fayad and R. S. Pradeep and F. Seddiqui}, url = {Rohini-w4-position-paper-performance.pdf}, title = {Aspects in Communications: {Performance}}, crossref = {:aosd-uml03}, } @inproceedings{iwamoto:aosd-uml03, author = {Masanori Iwamoto and Jianjun Zhao}, url = {Zhao-refactoring-acm.pdf}, title = {Refactoring Aspect-Oriented Programs}, crossref = {:aosd-uml03}, } @inproceedings{wand:fp03, author = {Mitchell Wand}, title = {Understanding aspects: {Extended} abstract}, booktitle = {Proceedings of the Eighth ACM SIGPLAN International Conference on Functional Programming}, year = 2003, isbn = {1-58113-756-7}, pages = {299--300}, location = {Uppsala, Sweden}, doi = {http://doi.acm.org/10.1145/944705.944732}, publisher = {ACM Press}, } @inproceedings{pawlak:tools01, author = {Renaud Pawlak and Laurence Duchien and Gerard Florin and Lionel Seinturier}, title = {Dynamic Wrappers: {Handling} the Composition Issue with {JAC}}, booktitle = {39th Int'l Conf. and Exhibition on Technology of Object-Oriented Languages and Systems (TOOLS39)}, year = 2001, pages = {56--65}, publisher = ieee, } @inproceedings{pawlak:mlar99, author = {Renaud Pawlak and Laurence Duchien and Gerard Florin}, title = {An Automatic Aspect Weaver with a Reflective Programming Language}, booktitle = {2nd Int'l Conf. Meta-Level Architectures and Reflection}, series = lncs, volume = {1616}, year = 1999, isbn = {3-540-66280-4}, pages = {147--149}, publisher = sv, address = {Berlin}, } @article{pawlak:jot04, url = {http://www.jot.fm/issues/issue_2004_01/column2.pdf}, journal = {Journal of Object Technology}, volume = 3, number = 1, month = jan, year = 2004, title = {On Getting Use Cases and Aspects to Work Together}, author = {Renaud Pawlak and Houman Younessi}, abstract = {Aspect orientation (AO) as an underlying logical model deduced from Aspect Oriented Programming (AOP) is attracting attention and gaining in popularity. A number of authors have recently written about how ideas of aspect orientation might be used in connection or in conjunction with existing modeling techniques or technologies in order to enhance the capabilities of the latter. For example, in a recent JOT article Ivar Jacobson writes about the relationship between use cases and AOP claiming essentially that the two can be viewed as equivalent. It is however critical for those of us proposing these ideas and connections to ensure that such claims are based on a foundation of adequate comparison and analysis. As investigators who have been working on similar ideas for some time, we would like to take the opportunity of this short paper to provide a constructive critique of what such comparisons need to entail and where the critical issues lie. The Jacobson paper would be used as an exemplar to raise and discuss some common issues and shortcomings. We will explain that although we agree with the essence of Jacobson's overall statement, we also believe that such assertion is---as it stands---neither new in its essence, nor is it complete and needs to be complemented by crucial improvements if we really want to bring new answers to software engineering.} } @article{jacobson:jot03, journal = {Journal of Object Technology}, month = jul, year = 2003, volume = 2, number = 4, url = {http://www.jot.fm/issues/issue_2003_07/column1}, title = {Use Cases and Aspects---{Working} Seamlessly Together}, author = {Ivar Jacobson}, abstract = {Aspect oriented programming (AOP) is ``the missing link'' to allow you slice a system, use case by use case, over ``all'' lifecycle models. This will dramatically change the way complex systems are understood, how new features are added to systems, and how systems are implemented and tested. AOP will also add a new dimension of reuse to software development. And it is here to be harvested---now.} } @article{rashid:cj03, title = {Aspect-oriented Programming and Separation of Crosscutting Concerns}, author = {Awais Rashid and Lynne Blair}, pages = {527--528}, journal = {The Computer Journal}, volume = 46, number = 5, month = sep, year = 2003, } @article{sihman:cj03, title = {Superimpositions and Aspect-oriented Programming}, author = {Marcelo Sihman and Shmuel Katz}, pages = {529--541}, journal = {The Computer Journal}, volume = 46, number = 5, month = sep, year = 2003, Abstract = {The ideas of a classic distributed superimposition are used to design a new object-oriented version incorporating aspects. A superimposition is a collection of generic parameterized aspects and new classes (often singleton concrete classes). Superimpositions can be combined, either sequentially or in a merge, to create new ones. Superimpositions also include specifications about assumed properties of basic programs to which the superimposition can be applied and desired properties added by the superimposition. These specifications are used to define proof obligations for the correctness of superimpositions and to check feasibility of combining superimpositions. SuperJ, a notation and an implemented preprocessor over AspectJ, is described. SuperJ can be used to apply a superimposition to a basic system, generating concrete aspects from generic aspects and then weaving them to basic classes. Superimpositions are separately declared, specified and verified. Among the examples used to demonstrate the approach are a termination detection algorithm, a version of the Dining Philosophers Problem and a monitoring superimposition that gathers statistics on basic objects.}, } @article{lieberherr:cj03, title = {Aspectual Collaborations: {Combining} Modules and Aspects}, author = {Karl Lieberherr and David H. Lorenz and Johan Ovlinger}, pages = {542--565}, journal = {The Computer Journal}, volume = 46, number = 5, month = sep, year = 2003, Abstract = {Complex behavior often resists clean modularization in object-oriented languages. Aspect-oriented programming tackles this problem by providing flexible module boundaries that can span and partition classes. However, in order to achieve this flexibility, valuable modularity mechanisms, such as encapsulation and external composition, are lost. The ability to separately compile or reason about a modular unit is also compromised. We propose that this tradeoff is not necessary and that by expressing aspects as part of our modules, we can restore the lost modular properties while maintaining aspectual features. As a concrete demonstration, we present the main features of Aspectual Collaborations and show how these interact to combine modularity with aspectual behavior. The expressiveness of Aspectual Collaborations, AspectJ and Hyper/J are compared using a challenge problem, allowing us to estimate the effectiveness of the approach.} } @article{clark:cj03, title = {Aspect-oriented Metamodelling}, author = {Tony Clark and Andy Evans and Stuart Kent}, pages = {566--577}, journal = {The Computer Journal}, volume = 46, number = 5, month = sep, year = 2003, Abstract = {This paper shows how techniques devised for aspect-oriented modelling (AOM) can be used for aspect-oriented metamodelling. Metamodelling is an approach to language definition, which has been adopted by industry for defining modelling languages, in particular the Unified Modelling Language (UML), and involves the construction of an object-oriented model of the abstract syntax and, optionally, the concrete notation and semantics of the target language. As the importance of models in software development grows, so does the importance of metamodels, not least to provide the basis of implementations of modelling tools. Specifically, there is a need for complete and accurate metamodels, which have a uniform architecture and which can be organized appropriately to support the definition of families of languages. The approach described in this paper uses AOM techniques to address this need. It is illustrated by extracts from the 2U submission to the UML 2.0 RFPs issued by the Object Management Group in 2001. The paper concludes with a discussion on the customization and generation of tools from such definitions.} } @article{welch:cj03, title = {Re-engineering Security as a Crosscutting Concern}, author = {Ian S. Welch and Robert J. Stroud}, pages = {578--589}, journal = {The Computer Journal}, volume = 46, number = 5, month = sep, year = 2003, abstract = {We have re-engineered a third-party application using a reflective security architecture that allows security to be treated as a crosscutting concern. This has resulted in a considerable reduction in tangling between application code and security code. Prior to the re-engineering, the application was secured using a conventional approach based upon the application of inheritance and the proxy pattern, and we are thus able to compare both approaches. Our experience highlights some general points that are applicable to any attempt to engineer security using advanced separation of concerns technology and some possible improvements to Kava, used to implement the crosscutting concerns.} } @article{pichler:spe03, author = {Roman Pichler and Klaus Ostermann and Mira Mezini}, title = {On Aspectualizing Component Models}, journal = spe, volume = 33, number = 10, pages = {957--974}, year = 2003, abstract = {Server-side component models such as Enterprise JavaBeans (EJB) add powerful abstractions to the bare business objects layer in order to support a clean separation of server-side application logic from other concerns such as distribution, security, transaction management and persistence. An improved separation of concerns is also the main goal of aspect-oriented programming (AOP). This paper compares the two approaches and reasons about the possibility of substituting (parts of) component models using AOP mechanisms. We conclude that AOP is a promising approach to eliminate important shortcomings of the container-based component approach. However, our analysis of concrete aspect-oriented languages shows that current AOP technology is not yet mature enough to supersede component models.} } @inproceedings{lopes:oopsla03, author = {Cristina Lopes and Paul Dourish and David Lorenz and Karl Lieberherr}, title = {Beyond {AOP}: {Toward} Naturalistic Programming}, booktitle = {Onward! in the 18th ACM conference on Object-oriented programming, systems, languages, and applications}, year = 2003, location = {Anaheim}, } @inproceedings{aussmann:ecoop-asarti03, crossref = {:ecoop-asarti03}, author = {S. Aussmann and M. Haupt}, title = {Axon---{Dynamic} {AOP} through Runtime Inspection and Monitoring}, url = {http://www.st.informatik.tu-darmstadt.de/pages/workshops/ASARTI03/HauptASARTI03.pdf} } @inproceedings{cain:ecoop-asarti03, crossref = {:ecoop-asarti03}, author = {A. Cain and J. Schneider and D. Grant and T. Chen}, title = {Runtime Data Analysis for {Java} Programs}, url = {http://www.st.informatik.tu-darmstadt.de/pages/workshops/ASARTI03/CainASARTI03.pdf} } @inproceedings{chiba:ecoop-asarti03, crossref = {:ecoop-asarti03}, author = {S. Chiba and Y. Sato and M. Tatsubori}, title = {Using {HotSwap} for Implementing Dynamic {AOP} Systems}, url = {http://www.st.informatik.tu-darmstadt.de/pages/workshops/ASARTI03/ChibaASARTI03.pdf} } @inproceedings{costanza:ecoop-asarti03, crossref = {:ecoop-asarti03}, author = {P. Costanza}, title = {Dynamically Scoped Functions for Runtime Modification}, url = {http://www.st.informatik.tu-darmstadt.de/pages/workshops/ASARTI03/CostanzaASARTI03.pdf} } @inproceedings{hanenberg:ecoop-asarti03, crossref = {:ecoop-asarti03}, author = {S. Hanenberg and R. Hirschfeld and R. Unland and K. Kawamura}, title = {Aspect Weaving: {Using} the Base Language's Introspective Facilities to Determine Join Points}, url = {http://www.st.informatik.tu-darmstadt.de/pages/workshops/ASARTI03/HanenbergASARTI03.pdf} } @inproceedings{leroux:ecoop-asarti03, crossref = {:ecoop-asarti03}, author = {H. Leroux and C. Mingins and A. Requile-Romanczuk}, title = {{JACOT}: {A} {UML}-Based Tool for the Runtime-Inspection of Concurrent {Java} Programs}, url = {http://www.st.informatik.tu-darmstadt.de/pages/workshops/ASARTI03/LerouxASARTI03.pdf} } @inproceedings{lewis:ecoop-asarti03, crossref = {:ecoop-asarti03}, author = {B. Lewis}, title = {Recording Events to Analyze Programs}, url = {http://www.st.informatik.tu-darmstadt.de/pages/workshops/ASARTI03/LewisASARTI03.pdf} } @inproceedings{tanter:ecoop-asarti03, crossref = {:ecoop-asarti03}, author = {\'E. Tanter and P. Ebraert}, title = {A Flexible Approach to Interactive Runtime Inspection}, url = {http://www.st.informatik.tu-darmstadt.de/pages/workshops/ASARTI03/TanterASARTI03.pdf} } @inproceedings{zaidman:ecoop-asarti03, crossref = {:ecoop-asarti03}, author = {A. Zaidman and S. Demeyer}, title = {Using a Variant of Sliding Window to Reduce Event Trace Data}, url = {http://www.st.informatik.tu-darmstadt.de/pages/workshops/ASARTI03/ZaidmanASARTI03.pdf} } @inproceedings{bergmans:ecoop-aaos03, crossref = {:ecoop-aaos03}, author = {Lodewijk M. J. Bergmans}, url = {http://www.comp.lancs.ac.uk/computing/users/chitchya/AAOS2003/Assets/bergmansl.pdf}, title = {Towards Detection of Semantic Conflicts between Crosscutting Concerns} } @inproceedings{bertagnolli:ecoop-aaos03, crossref = {:ecoop-aaos03}, author = {de Castro Bertagnolli, Silvia and Maria L\'ucia Blanck {Lisb\^oa}}, url = {http://www.comp.lancs.ac.uk/computing/users/chitchya/AAOS2003/Assets/bertagnolli_llisboa.pdf}, title = {The {FRIDA} Model} } @inproceedings{clement:ecoop-aaos03, crossref = {:ecoop-aaos03}, author = {Andy Clement and Adrian Colyer and Mik Kersten}, url = {http://www.comp.lancs.ac.uk/computing/users/chitchya/AAOS2003/Assets/clemas_colyer_kersten.pdf}, title = {Aspect-Oriented Programming with {AJDT}} } @inproceedings{constantinides:ecoop-aaos03, crossref = {:ecoop-aaos03}, author = {Constantinos A. Constantinides}, url = {http://www.comp.lancs.ac.uk/computing/users/chitchya/AAOS2003/Assets/constantinides.pdf}, title = {A Case Study on Making the Transition from Functional to and Fine-Grained Decomposition} } @inproceedings{hachani:ecoop-aaos03, crossref = {:ecoop-aaos03}, author = {Ouafa Hachani and Daniel Bardou}, url = {http://www.comp.lancs.ac.uk/computing/users/chitchya/AAOS2003/Assets/hachani_bardou.pdf}, title = {On Aspect-Oriented Technology and Object-Oriented Design Patterns} } @inproceedings{reina:ecoop-aaos03, crossref = {:ecoop-aaos03}, author = {A. M. Reina and J. Torres and M. Toro}, url = {http://www.comp.lancs.ac.uk/computing/users/chitchya/AAOS2003/Assets/reina_torres_toro.pdf}, title = {Aspect-Oriented Web Development vs. Non Aspect-Oriented Web Development} } @inproceedings{slowikowski:ecoop-aaos03, crossref = {:ecoop-aaos03}, author = {Pawel Slowikowski and Krzysztof {Zieli\tildacc{n}ski}}, url = {http://www.comp.lancs.ac.uk/computing/users/chitchya/AAOS2003/Assets/slowikowski_zielinski.pdf}, title = {Comparison Study of Aspect-Oriented and Container Managed Security} } @inproceedings{storzer:ecoop-aaos03, crossref = {:ecoop-aaos03}, author = {Maximilian St\"orzer and Jens Krinke and Silvia Breu}, url = {http://www.comp.lancs.ac.uk/computing/users/chitchya/AAOS2003/Assets/stoerzer_krinke_breu.pdf}, title = {Trace Analysis for Aspect Application} } @inproceedings{alves:ecoop-oopl03, title = {{AOP}-Driven Variability in Product Lines of Pervasive Computing Applications}, author = {Vander Alves and Ayla Dantas and Paulo Borba}, booktitle = {Modeling Variability for Object-Oriented Product Lines}, location = {Darmstadt, Germany}, month = jul, year = 2003, url = {http://www.theoinf.tu-ilmenau.de/~streitdf/ECOOP_workshop/Submission/position-alves.PDF}, editor = {Matthias Riebisch and Jim Coplien and Detlef Streitferdt}, abstract = {The demand for pervasive computing applications has increased. Additionally, the large number of different devices and features per device make it difficult to quickly respond to such demand and to comply with ever-increasing quality and reuse requirements. A product line approach in this domain is essential in order to meet these goals. In this context, a central issue that must be addressed by the development process is variability management.}, } @inproceedings{prasad:ecoop-phdoos03, url = {http://quercusseg.unex.es/jclemente/phdoos03/papers/paper1.pdf}, title = {Typecasting As a New Join Point in {AspectJ}}, author = {M. Devi Prasad}, crossref = {:ecoop-phdoos03} } @inproceedings{navasa:ecoop-phdoos03, url = {http://quercusseg.unex.es/jclemente/phdoos03/papers/paper5.pdf}, title = {Using an {ADL} to Design Aspect Oriented Systems}, author = {A. Navasa and M. A. {P\'erez} and J. M. Murillo}, crossref = {:ecoop-phdoos03} } @inproceedings{jucknath:ecoop-phdoos03, url = {http://quercusseg.unex.es/jclemente/phdoos03/papers/paper6.pdf}, title = {Software Visualization and Aspect-Oriented Software Development}, author = {Susanne Jucknath}, crossref = {:ecoop-phdoos03} } @inproceedings{wloka:ecoop-phdoos03, url = {http://quercusseg.unex.es/jclemente/phdoos03/papers/paper7.pdf}, title = {Refactoring in the Presence of Aspects}, author = {Jan Wloka}, crossref = {:ecoop-phdoos03} } @inproceedings{schmied:ecoop-phdoos03, url = {http://quercusseg.unex.es/jclemente/phdoos03/papers/paper9.pdf}, title = {Composing Non-Orthogonal Aspects}, author = {Andreas I. Schmied and Franz J. Hauck}, crossref = {:ecoop-phdoos03} } @inproceedings{hajdara:ecoop-phdoos03, url = {http://quercusseg.unex.es/jclemente/phdoos03/papers/paper8.pdf}, title = {An Example of generating the synchronization code of a system composed by many similar objects}, author = {Szaboles Hajdara}, crossref = {:ecoop-phdoos03} } @inproceedings{walker:cfop03, title = {A Theory of Aspects}, author = {David Walker and Steve Zdancewic and Jay Ligatti}, booktitle = {Proceedings of the ACM SIGPLAN International Conference on Functional Programming}, location = {Uppsala}, month = aug, year = 2003, abstract = {This paper define the semantics of MinAML, an idealized aspect-oriented programming language, by giving a typedirected translation from its user-friendly external language to its compact, well-defined core language. We argue that our framework is an effective way to give semantics to aspect-oriented programming languages in general because the translation eliminates shallow syntactic differences between related constructs and permits definition of a clean, easy-to-understand, and easy-to-reason-about core language. The core language extends the simply-typed lambda calculus with two central new abstractions: explicitly labeled program points and first-class advice. The labels serve both to trigger advice and to mark continuations that the advice may return to. These constructs are defined orthogonally to the other features of the language and we show that our abstractions can be used in both functional and object-oriented contexts. The labels are well-scoped and the language as a whole is well-typed. Consequently, programmers can use lexical scoping in the standard way to prevent aspects from interfering with local program invariants.} } @techreport{zhao:utaop03, author = {J. Zhao}, title = {Unit Testing for Aspect-Oriented Programs}, institution = {Information Processing Society of Japan (IPSJ)}, number = {SE-141-6}, month = may, year = 2003, url = {http://www.fit.ac.jp/~zhao/pub/ps/ipsj-tr-se-141-6.pdf}, } @inproceedings{zhao:fase03, author = {J. Zhao and M. Rinard}, title = {Pipa: {A} Behavioral Interface Specification Language for {AspectJ}}, url = {http://www.lta.disco.unimib.it/fase2003/}, booktitle = {Proc. Fundamental Approaches to Software Engineering (FASE'2003), LNCS 2621}, publisher = {Springer-Verlag}, pages = {150-165}, month = apr, year = 2003 } @techreport{zhao:sdgcaop03, author = {J. Zhao and M. Rinard}, title = {System Dependence Graph Construction for Aspect-Oriented Programs}, institution = {Laboratory for Computer Science, MIT}, number = {MIT-LCS-TR-891}, month = mar, year = 2003, url = {http://www.fit.ac.jp/~zhao/pub/ps/mit-lcs-tr-891.pdf} } @techreport{zhao:tmsaop02, author = {J. Zhao}, title = {Towards a Metrics Suite for Aspect-Oriented Software}, number = {SE-136-25}, institution = {Information Processing Society of Japan (IPSJ)}, month = mar, year = 2002, url = {http://www.fit.ac.jp/~zhao/pub/ps/ipsj-tr-se-136-25.pdf} } @inproceedings{mezini:adae03, author = {M. Mezini and K. Ostermann}, title = {Modules for Crosscutting Models}, booktitle = {8th International Conference on Reliable Software Technologies (Ada-Europe '03)}, publisher = svlncs, location = {Toulouse}, month = jun, year = 2003 } @inproceedings{eichberg:oopsla-gtmda02, author = {Michael Eichberg}, title = {{MDA} and Programming Languages}, booktitle = {Workshop on Generative Techniques in the context of Model Driven Architecture (OOPSLA '02)}, year = 2002, location = {Seattle}, month = nov, url = {http://www.softmetaware.com/oopsla2002/eichbergm.pdf} } @article{rashid:iees01, title = {Aspect-oriented and component-based software engineering}, author = {A. Rashid}, journal = {IEE Proceedings-Software}, pages = {87-88}, volume = 148, number = 3, month = jun, year = 2001, issn = {1462-5970} } @article{blair:iees01, title = {Formal support for dynamic {QoS} management in the development of open component-based distributed systems}, author = {L. Blair and G. S. Blair and R. Andersen and T. Jones}, journal = {IEE Proceedings-Software}, pages = {89-97}, volume = 148, number = 3, month = jun, year = 2001, issn = {1462-5970}, abstract = {An aspect-oriented specification technique that supports the specification of component-based distributed systems is presented. Importantly, this technique also supports the synthesis of quality-of-service (QoS) management components from particular aspects of the specification. It is described how, by using a tool to support the aspect-oriented environment, one can first specify and verify QoS management subsystems and then synthesise components that can be placed into a running system. The focus is on dynamic QoS management functions, particularly monitoring and adaptation. The approach is illustrated by giving a simple example of the dynamic QoS management of an audio stream.}, keywords = {audio signals, computer network management, distributed object management, distributed programming, formal specification, monitoring, object-oriented programming, open systems, quality of service, subroutines, adaptation, aspect-oriented specification technique, audio stream, component synthesis, dynamic QoS management, formal support, monitoring, open component-based distributed systems development, running system, service quality management} } @article{rastofer:iees01, title = {Component-based software engineering for distributed embedded real-time systems}, author = {U. Rastofer and F. Bellosa}, journal = {IEE Proceedings-Software}, pages = {99-103}, volume = 148, number = 3, month = jun, year = 2001, issn = {1462-5970}, abstract = {The aim of component-based software engineering is to create applications from reusable, exchangeable and connectable components. However, current component models lack support for important concepts of distributed embedded real-time systems, such as execution time and resource usage. These non-functional properties of a component are as important as its functionality. In addition, the non-functional properties are influenced by the platform on which the component is executed. A component model is proposed that separates the component's functionality from the platform-specific issues of concurrency, synchronisation and distribution. A technique that describes the behaviour of a component in a path-based notation similar to use case maps (UCMs) is presented. A method for deducing from these descriptions the behaviour of an application that consists of connected components is also shown. The paths also contain information on real-time requirements of the application. The authors also show how to adapt the components to an execution platform and how to create real-time applications with predictable properties from these components.}, keywords = {distributed programming, embedded systems, multiprocessing programs, software engineering, subroutines, synchronisation, component adaptation, component behaviour description, component functionality, component-based software engineering, concurrency, connectable components, distributed embedded real-time systems, distribution, exchangeable components, execution platform, execution time, nonfunctional properties, path-based notation, platform dependence, predictable properties, resource usage, reusable components, synchronisation, use case maps} } @inproceedings{herrmann:wcop01, author = {S. Herrmann and M. Mezini and K. Ostermann}, title = {Joint efforts to dispel an approaching modularity crisis}, booktitle = {Sixth International Workshop on Component-Oriented Programming (WCOP)}, year = 2001, url = {http://www.st.informatik.tu-darmstadt.de:8080/~ostermann/wcop01.pdf}, location = {Budapest}, abstract = {In this paper we consider two important trends in improving separation of concerns: (a) the emergence of server-side component frameworks, and (b) the emergence of advanced approaches to software decomposition/ composition. These two trends have emerged independently from each other, the first one in an industrial setting and the second one originating mostly from the object-oriented languages research community. Despite this independent development, both trends have quite some commonalities: not only do they follow the same goals, the key concepts are also basically the same. However, an effort to put both trends into a common reference frame, showing their commonalities, their differences, drawing boundaries on their application areas, analyzing how they complement each other and eventually profit from each other, etc., is still missing today. This paper is a modest effort to fill this gap.} } @article{herrmann:iees01, title = {Connectors for Bridging Mismatches Between the Components of a Software Engineering Environment}, author = {S. Herrmann and M. Mezini}, journal = {IEE Proceedings-Software}, pages = {104-111}, volume = 148, number = 3, month = jun, year = 2001, issn = {1462-5970}, inspec = {7045146}, abstract = {Software engineering environments (SEEs) are complex systems, for which configurability is an important requirement. Constructing SEEs out of existing tools is evidently desirable. During such a composition, mismatches between the data models of different tools will arise. The brute-force technique of hacking data translators into the implementation of individual tools has severe drawbacks regarding the modularity, maintainability and extensibility of the composed system. This paper proposes a novel technique for designing SEEs that uses explicit language constructs for bridging the mismatches in the data models, called dynamic view connectors. It shows how the separation of tool functionality from the concerns of bridging data-model mismatches improves the configurability and maintainability of an existing SEE.}, keywords = {computer aided software engineering, data models, software maintenance, software tools, subroutines, bridging connectors, component mismatches, configurability, data model mismatches, data translators, dynamic view connectors, explicit language constructs, extensibility, hacking, maintainability, modularity, software engineering environments, software tool functionality} } @inproceedings{mezini:oopsla97, author = {Mira Mezini}, title = {Maintaining the consistency of class libraries during their evolution}, booktitle = {Proc. 1997 ACM SIGPLAN conference on Object-Oriented Programming Systems, Languages and Applications}, year = 1997, isbn = {0-89791-908-4}, pages = {1--21}, location = {Atlanta, Georgia, United States}, abstract = {Two important problems of object-oriented reuse are the propagation of design and implementation specifics of the base software to the inheritors, and the protection of the inheritors against changes in the base software. In this paper, we argue that the simple inheritance rules of existing object-oriented languages are not sufficient for properly dealing with these problems. In the proposal presented in this paper, programmers are enabled to make metalevel declarations of the internal protocols and dependencies of their classes. Additionally, changes of the base module are automatically monitored to filter out information about the alterations that may invalidate already existing inheritors. Based on these informations, the subclassing semantics is adjusted such that the maintenance of the base module properties and the protection of the inheritor is ensured during their integration, In this way, language support is provided for keeping the behavior of reusable software consistent during its evolution.}, doi = {http://doi.acm.org/10.1145/263698.263701}, publisher = {ACM Press}, } @inproceedings{mezini:ecoop97, author = {M. Mezini}, title = {Dynamic Object Modification Without Name Collisions}, pages = {190--219}, booktitle = {11th Europeen Conf. Object-Oriented Programming}, year = 1997, editor = {Mehmet {Ak{\c s}it} and Satoshi Matsuoka}, volume = 1241, series = {LNCS}, publisher = {Springer Verlag}, } @incollection{mezini:aoomar, author = {M. Mezini}, title = {Incremental Redefinition of Open Implementations}, editor = {C. Zimmermann}, booktitle = {Advances in Object-Oriented Metalevel Architectures and Reflection}, pages = {265--290}, publisher = {CRC Press}, address = {Boca Raton}, year = 1996 } @inproceedings{mezini:reflection96, author = {M. Mezini}, title = {Dynamic Metaclass Construction for an Explicit Specialization Interface}, editor = {G. Kiczales}, pages = {203--219}, booktitle = {Reflection '96}, year = 1996, location = {San Francisco}, month = apr, } @article{katz:toplas93, author = {Shmuel Katz}, title = {A Superimposition Control Construct for Distributed Systems}, journal = toplas, volume = 15, number = 2, month = apr, year = 1993, pages = {337-356} } @inproceedings{karaorman:reflection99, title = {{jContractor}: {A} Reflective {Java} Library to Support Design By Contract}, author = {Murat Karaorman and Urs {H\"olzle} and John Bruno}, booktitle = {Meta-Level Architectures and Reflection, 2nd Int'l Conf. Reflection}, pages = {175-196}, location = {Saint-Malo, France}, year = 1999, editor = {P. Cointe}, volume = 1616, series = {LNCS}, publisher = {Springer Verlag}, address = {Berlin} } @inproceedings{dewin:aosd-splat03, crossref = {:aosd-splat03}, url = {http://www.daimi.au.dk/~eernst/splat03/papers/Bart_De_Win.pdf}, author = {Bart {De Win} and Wouter Joosen and Frank Piessens}, title = {{AOSD} \& Security: {A} Practical Assessment} } @inproceedings{clifton:aosd-splat03, crossref = {:aosd-splat03}, url = {http://www.daimi.au.dk/~eernst/splat03/papers/Curtis_Clifton.pdf}, author = {Curtis Clifton and Gary T. Leavens}, title = {Obliviousness, Modular Reasoning, and the Behavioral Subtyping Analogy} } @inproceedings{larochelle:aosd-splat03, crossref = {:aosd-splat03}, url = {http://www.daimi.au.dk/~eernst/splat03/papers/David_Larochelle.ps}, author = {David Larochelle and Karl Scheidt and Kevin Sullivan}, title = {Join Point Encapsulation} } @inproceedings{newman:aosd-splat03, crossref = {:aosd-splat03}, url = {http://www.daimi.au.dk/~eernst/splat03/papers/Elissa_Newman.doc}, author = {Elissa Newman and William L. Scherlis}, title = {Toward Query-based Constraints} } @inproceedings{ernst:aosd-splat03, crossref = {:aosd-splat03}, url = {http://www.daimi.au.dk/~eernst/splat03/papers/Erik_Ernst.pdf}, author = {Erik Ernst}, title = {Separation of Concerns} } @inproceedings{rajan:aosd-splat03, crossref = {:aosd-splat03}, url = {http://www.daimi.au.dk/~eernst/splat03/papers/Hridesh_Rajan.pdf}, author = {Hridesh Rajan and Kevin Sullivan}, title = {Need for Instance Level Aspect Language with Rich Pointcut Language} } @inproceedings{palm:aosd-splat03, crossref = {:aosd-splat03}, url = {http://www.daimi.au.dk/~eernst/splat03/papers/Jeffrey_Palm.pdf}, author = {Jeffrey D. Palm and Kenneth M. Anderson and Karl J. Lieberherr}, title = {Investigating the Relationship Between Violations of the Law of Demeter and Software Maintainability} } @inproceedings{kienzle:aosd-splat03, crossref = {:aosd-splat03}, url = {http://www.daimi.au.dk/~eernst/splat03/papers/Joerg_Kienzle.pdf}, author = {J\"org Kienzle and Yang Yu and Jie Xiong}, title = {On Composition and Reuse of Aspects} } @inproceedings{graversen:aosd-splat03, crossref = {:aosd-splat03}, url = {http://www.daimi.au.dk/~eernst/splat03/papers/Kasper_Graversen.pdf}, author = {Kasper B. Graversen and Kasper {{\O}sterbye}}, title = {Implementation of a Role Language for Object-Specific Dynamic Separation of Concerns} } @inproceedings{cibran:aosd-splat03, crossref = {:aosd-splat03}, url = {http://www.daimi.au.dk/~eernst/splat03/papers/Maria_Cibran.pdf}, author = {Maria Agustina Cibran and Maja D'Hondt}, title = {Composable and Reusable Business Rules Using {AspectJ}} } @inproceedings{freeman:aosd-splat03, crossref = {:aosd-splat03}, url = {http://www.daimi.au.dk/~eernst/splat03/papers/Paul_Freeman.pdf}, author = {Paul Freeman}, title = {A Position on an Aspect Oriented Approach to the Observer Pattern} } @inproceedings{wu:aosd-splat03, crossref = {:aosd-splat03}, url = {http://www.daimi.au.dk/~eernst/splat03/papers/Pengcheng_Wu.pdf}, author = {Pengcheng Wu and Shriram Krishnamurthi and Karl Lieberherr}, title = {Traversing Recursive Object Structures: {The} Functional Visitor in {Demeter}} } @inproceedings{filman:aosd-splat03, crossref = {:aosd-splat03}, url = {http://www.daimi.au.dk/~eernst/splat03/papers/Robert_Filman.pdf}, author = {Robert E. Filman and Klaus Havelund}, title = {The Effect of {AOP} on Software Engineering, with Particular Attention to {OIF} and Event Quantification} } @inproceedings{walker:aosd-splat03, crossref = {:aosd-splat03}, url = {http://www.daimi.au.dk/~eernst/splat03/papers/Robert_Walker.pdf}, author = {Robert J. Walker}, title = {Supporting Inconsistent World Views} } @inproceedings{chitchyan:aosd-splat03, crossref = {:aosd-splat03}, url = {http://www.daimi.au.dk/~eernst/splat03/papers/Ruzanna_Chitchyan.pdf}, author = {Ruzanna Chitchyan and Ian Sommerville and Awais Rashid}, title = {A model for Dynamic Hyperspaces} } @inproceedings{kojarski:aosd-splat03, crossref = {:aosd-splat03}, url = {http://www.daimi.au.dk/~eernst/splat03/papers/Sergei_Kojarski.ps}, author = {Sergei Kojarski and Karl Lieberherr and David H. Lorenz and Robert Hirschfeld}, title = {Aspectual Reflection} } @inproceedings{bakre:aosd-splat03, crossref = {:aosd-splat03}, url = {http://www.daimi.au.dk/~eernst/splat03/papers/Shubhanan_Bakre.pdf}, author = {Shubhanan Bakre and Tzilla Elrad}, title = {Linguistic Issues for Developing Aspect-Rich High-Performance Adaptable Systems} } @inproceedings{skotiniotis:aosd-splat03, crossref = {:aosd-splat03}, url = {http://www.daimi.au.dk/~eernst/splat03/papers/Therapon_Skotiniotis.ps}, author = {Therapon Skotiniotis and Karl Lieberherr and David Lorenz}, title = {Aspect Instances and Their Interactions} } @inproceedings{tourwe:aosd-splat03, crossref = {:aosd-splat03}, url = {http://www.daimi.au.dk/~eernst/splat03/papers/Tom_Tourwe.pdf}, author = {Tom {Tourw\'e} and Johan Brichau and Kris Gybels}, title = {On the Existence of the {AOSD}-Evolution Paradox} } @inproceedings{harrison:aosd-splat03, crossref = {:aosd-splat03}, url = {http://www.daimi.au.dk/~eernst/splat03/papers/William_Harrison.doc}, author = {William Harrison and Harold Ossher and Peri Tarr}, title = {Asymmetrically vs. Symmetrically Organized Paradigms for Software Composition} } @inproceedings{araujo:aosd-ea03, crossref = {:aosd-ea03}, url = {http://www.cs.bilkent.edu.tr/AOSD-EarlyAspects/Papers/AraujoCoutinho.pdf}, title = {Identifying Aspectual Use Cases using a Viewpoint-Oriented Requirements Method}, author = {J. {Ara\'ujo} and P. Coutinho} } @inproceedings{brito:aosd-ea03, crossref = {:aosd-ea03}, url = {http://www.cs.bilkent.edu.tr/AOSD-EarlyAspects/Papers/BritoMoreira.pdf}, title = {Towards a Composition Process for Aspect-Oriented Requirements}, author = {I. Brito and A. Moreira} } @inproceedings{cooper:aosd-ea03, crossref = {:aosd-ea03}, url = {http://www.cs.bilkent.edu.tr/AOSD-EarlyAspects/Papers/Cooper.pdf}, title = {Towards an Aspect-Oriented Architectural Framework}, author = {K. Cooper and L. Dai and Y. Deng and J. Dong} } @inproceedings{lohmann:aosd-ea03, crossref = {:aosd-ea03}, url = {http://www.cs.bilkent.edu.tr/AOSD-EarlyAspects/Papers/LohEbe.pdf}, title = {A Generalization of the {Hyperspace} Approach using Meta-Models}, author = {D. Lohmann and J. Ebert} } @inproceedings{simmonds:aosd-ea03, crossref = {:aosd-ea03}, url = {http://www.cs.bilkent.edu.tr/AOSD-EarlyAspects/Papers/simmonds.pdf}, title = {An Aspect-Oriented Model Driven Architectural Framework for Middleware Transparency}, author = {D. Simmonds and S. Ghosh and R. France} } @inproceedings{sutton:aosd-ea03, crossref = {:aosd-ea03}, url = {http://www.cs.bilkent.edu.tr/AOSD-EarlyAspects/Papers/Sutton.pdf}, title = {Concerns in a Requirements Model - A Small Case Study}, author = {Sutton, Jr., S.} } @inproceedings{tekinerdogan:aosd-ea03, crossref = {:aosd-ea03}, url = {http://www.cs.bilkent.edu.tr/AOSD-EarlyAspects/Papers/Tekinerdogan.pdf}, title = {{ASAAM}: {Aspectual} Software Architecture Analysis Method}, author = {B. {Tekinerdo{\u g}an}} } @inproceedings{wagelaar:aosd-ea03, crossref = {:aosd-ea03}, url = {http://www.cs.bilkent.edu.tr/AOSD-EarlyAspects/Papers/Wagelaar.pdf}, title = {A Concept-Based Approach for Early Aspect Modelling}, author = {D. Wagelaar} } @inproceedings{nagy:aosd-foal03, crossref = {:aosd-foal03}, title = {Composition Graphs, a Foundation for Reasoning about Aspect-Oriented Composition}, url = {http://www.cs.iastate.edu/~leavens/FOAL/papers-2003/nagy-aksit-bergmans.pdf}, author = {Istv\'an Nagy and Mehmet {Ak{\c s}it} and Lodewijk Bergmans} } @inproceedings{sipma:aosd-foal03, crossref = {:aosd-foal03}, title = {A Formal Model for Cross-cutting Modular Transition Systems}, url = {http://www.cs.iastate.edu/~leavens/FOAL/papers-2003/sipma.pdf}, author = {Henny B. Sipma} } @inproceedings{kienzle:aosd-foal03, crossref = {:aosd-foal03}, title = {On Composition and Reuse of Aspects}, url = {http://www.cs.iastate.edu/~leavens/FOAL/papers-2003/kienzle-yu-xiong.pdf}, author = {{J\"org} Kienzle and Yang Yu and Jie Xiong} } @inproceedings{zhang:aosd-foal03, crossref = {:aosd-foal03}, title = {{TinyC$^2$}: {Towards} building a dynamic weaving aspect language for {C}}, url = {http://www.cs.iastate.edu/~leavens/FOAL/papers-2003/zhang-jacobsen.pdf}, author = {Charles Zhang and Hans-Arno Jacobsen} } @inproceedings{stoerzer:aosd-foal03, crossref = {:aosd-foal03}, title = {Interference Analysis for {AspectJ}}, url = {http://www.cs.iastate.edu/~leavens/FOAL/papers-2003/stoerzer-krinke.pdf}, author = {Maximilian {St\"orzer} and Jens Krinke} } @inproceedings{devereux:aosd-foal03, crossref = {:aosd-foal03}, title = {Compositional Reasoning About Aspects Using Alternating-time Logic}, url = {http://www.cs.iastate.edu/~leavens/FOAL/papers-2003/devereux.pdf}, author = {Benet Devereux} } @inproceedings{sihman:aosd-foal03, crossref = {:aosd-foal03}, title = {Model Checking Applications of Aspects and Superimpositions}, url = {http://www.cs.iastate.edu/~leavens/FOAL/papers-2003/sihman-katz.pdf}, author = {Marcelo Sihman and Shmuel Katz} } @inproceedings{filman:aosd-foal03, crossref = {:aosd-foal03}, title = {Understanding {AOP} through the Study of Interpreters}, url = {http://www.cs.iastate.edu/~leavens/FOAL/papers-2003/filman.pdf}, author = {Robert E. Filman} } @inproceedings{laemmel:aosd-foal03, crossref = {:aosd-foal03}, title = {Adding Superimposition To a Language Semantics}, url = {http://www.cs.iastate.edu/~leavens/FOAL/papers-2003/laemmel.pdf}, author = {Ralf {L\"ammel}} } @inproceedings{bodkin:aosd-comm03, crossref = {:aosd-comm03}, author = {Ron Bodkin}, url = {http://www.jpmdesign.de/conferences/aosd/2003/papers/AOSD_Commercialization_Position_2003_final.pdf}, title = {Commercialization of {AOSD}: {The} road ahead} } @inproceedings{carver:aosd-comm03, crossref = {:aosd-comm03}, author = {Lee Carver}, url = {http://www.jpmdesign.de/conferences/aosd/2003/papers/Carver.pdf}, title = {Next steps for Commercializing {AOP}} } @inproceedings{colyer:aosd-comm03, crossref = {:aosd-comm03}, author = {Adrian Colyer}, url = {http://www.jpmdesign.de/conferences/aosd/2003/papers/AOSD_Commercialization_-_final.pdf}, title = {Towards Widespread Adoption of {AOSD}} } @inproceedings{herrmann:aosd-comm03, crossref = {:aosd-comm03}, author = {Stephan Herrmann and Jan Wloka}, url = {http://www.jpmdesign.de/conferences/aosd/2003/papers/Herrmann.pdf}, title = {Seven Steps from an Idea to Industrial Adoption} } @inproceedings{hirschfeld:aosd-comm03, crossref = {:aosd-comm03}, author = {Robert Hirschfeld and Matthias Wagner and Wolfgang Kellerer and Christian Prehofer}, url = {http://www.jpmdesign.de/conferences/aosd/2003/papers/IntegrationAndPersonalization_Aosd03WsBoston_rev.pdf}, title = {{AOSD} for System Integration and Persinalization} } @inproceedings{kersten:aosd-comm03, crossref = {:aosd-comm03}, author = {Mik Kersten}, url = {http://www.jpmdesign.de/conferences/aosd/2003/papers/ToolsForCommercialDevWithAspectJ.doc}, title = {Tool Requirements for Commercial Development with {AspectJ}} } @inproceedings{memmert:aosd-comm03, crossref = {:aosd-comm03}, author = {Juri Memmert}, url = {http://www.jpmdesign.de/conferences/aosd/2003/papers/Industrialization_of_AOSD_2.pdf}, title = {Is {AOSD} really worth is?} } @inproceedings{papajewski:aosd-comm03, crossref = {:aosd-comm03}, author = {Holger Papajewski and Olaf Spinczyk and Danilo Beuche}, url = {http://www.jpmdesign.de/conferences/aosd/2003/papers/Papajewski_aosd03.pdf}, title = {Success Factors for {AOSD} in Commercial Applications} } @inproceedings{schmidmeier:aosd-comm03, crossref = {:aosd-comm03}, author = {Arno Schmidmeier}, url = {http://www.jpmdesign.de/conferences/aosd/2003/papers/HardTimeAreGoodTimes.pdf}, title = {Hard Times are Good Times for {AOSD}} } @inproceedings{schwanninger:aosd-comm03, crossref = {:aosd-comm03}, author = {Christa Schwanninger and Egon Wuchner}, url = {http://www.jpmdesign.de/conferences/aosd/2003/papers/Commercialization_Siemens.pdf}, title = {Commercialization} } @inproceedings{shah:aosd-comm03, crossref = {:aosd-comm03}, author = {Viren Shah}, url = {http://www.jpmdesign.de/conferences/aosd/2003/papers/Shah_aosd2003.txt}, title = {`{Commercializing} {AOP}: {Open}-sourcing the Stable Doors' and `{Software} Security: {AOSD} as the Savior'} } @inproceedings{basch:aosd-aom03, crossref = {:aosd-aom03}, url = {http://lglwww.epfl.ch/workshops/aosd2003/Basch-IcorporatingAspectsIntotheUML.pdf}, title = {Incorporating Aspects into the {UML}}, author = {Mark Basch and Arturo Sanchez} } @inproceedings{stein:aosd-aom03, crossref = {:aosd-aom03}, url = {http://lglwww.epfl.ch/workshops/aosd2003/Stein-AOMissues.pdf}, title = {Position Paper on Aspect-Oriented Modeling: {Issues} on Representing Crosscutting Features}, author = {Dominik Stein and Stefan Hanenberg and Rainer Unland} } @inproceedings{groher:aosd-aom03, crossref = {:aosd-aom03}, url = {http://lglwww.epfl.ch/workshops/aosd2003/Groher-AspectCodeFromUML.pdf}, title = {Generating Aspect Code from {UML} Models}, author = {Iris Groher and Stefan Schulze} } @inproceedings{ovlinger:aosd-aom03, crossref = {:aosd-aom03}, url = {http://lglwww.epfl.ch/workshops/aosd2003/ovlinger-aom03.ps.gz}, title = {From Aspect Oriented Model to Implementation Watch out for Impedance and Mismatch}, author = {Johan Ovlinger} } @inproceedings{france:aosd-aom03, crossref = {:aosd-aom03}, url = {http://lglwww.epfl.ch/workshops/aosd2003/Robert-.pdf}, title = {Supporting Multidimensional Separation of Concerns}, author = {Robert France and Geri Georg and Indrakshi Ray} } @inproceedings{schmidt:aosd-aom03, crossref = {:aosd-aom03}, url = {http://lglwww.epfl.ch/workshops/aosd2003/Schmidt-SEperspectiveOfAOSAUsingUML.pdf}, title = {A Systems Engineering Perspective of Aspect-oriented Software Architectural Analysis using {UML}}, author = {Phillip Schmidt and Sergio Alvarado and Jaime Milstein and Gregory Mulert and Robert Duvall and Jesus Rivera} } @inproceedings{zakaria:aosd-aom03, crossref = {:aosd-aom03}, url = {http://lglwww.epfl.ch/workshops/aosd2003/Zakaria-Performance.pdf}, title = {Metrics for Aspect-Oriented Software Design}, author = {Aida Atef Zakaria and Hoda Hosny} } @inproceedings{aldawud:aosd-aom03, crossref = {:aosd-aom03}, url = {http://lglwww.epfl.ch/workshops/aosd2003/AldawudAOSD_UML_Profile.pdf}, title = {{UML} Profile for Aspect-Oriented Software Development}, author = {Omar Aldawud and Tzilla Elrad and Atef Bader} } @inproceedings{aldawud:ecoop-sivoes01, author = {Aldawud, Omar and Tzilla Elrad and Atef Bader}, title = {Aspect-Oriented Modeling to Automate the Implementation and Validation of Concurrent Software Systems}, booktitle = {Workshop on Specification, Implementation and Validation of Object-oriented Embedded Systems (SIVOES'2001) (ECOOP)}, year = 2001, url = {http://wooddes.intranet.gr/ecoop2001/sivoes2001.htm}, } @inproceedings{aaberg:aosd-acp4is03, crossref = {:aosd-acp4is03}, url = {http://www.cs.ubc.ca/~ycoady/acp4is03/papers/aaberg.pdf}, title = {Evolving an {OS} Kernel Using Temporal Logic and Aspect-Oriented Programming}, author = {Rickard A. {{\AA}berg} and Julia L. Lawall and Mario {S\"udholt} and Gilles Muller} } @inproceedings{clemente:aosd-acp4is03, crossref = {:aosd-acp4is03}, url = {http://www.cs.ubc.ca/~ycoady/acp4is03/papers/clemente.pdf}, title = {Aspect Component Based Software Engineering}, author = {Pedro J. Clemente and Juan {Hern\'andez}} } @inproceedings{colyer:aosd-acp4is03, crossref = {:aosd-acp4is03}, url = {http://www.cs.ubc.ca/~ycoady/acp4is03/papers/colyer.pdf}, title = {Managing Complexity in Middleware}, author = {Adrian Colyer and Gordon Blair and Awais Rashid} } @inproceedings{gal:aosd-acp4is03, crossref = {:aosd-acp4is03}, url = {http://www.cs.ubc.ca/~ycoady/acp4is03/papers/gal.pdf}, title = {Learning from Components: {Fitting} {AOP} for System Software}, author = {Andreas Gal and Michael Franz and Danilo Beuche} } @inproceedings{hanenberg:aosd-acp4is03, crossref = {:aosd-acp4is03}, url = {http://www.cs.ubc.ca/~ycoady/acp4is03/papers/hanenberg.pdf}, title = {Idioms for Building Software Frameworks in {AspectJ}}, author = {Stefan Hanenberg and Arno Schmidmeier} } @inproceedings{prasad:aosd-acp4is03, crossref = {:aosd-acp4is03}, url = {http://www.cs.ubc.ca/~ycoady/acp4is03/papers/prasad.pdf}, title = {{AOP} Support for {C\#}}, author = {M. Devi Prasad and B. D. Chaudhary} } @inproceedings{regehr:aosd-acp4is03, crossref = {:aosd-acp4is03}, url = {http://www.cs.ubc.ca/~ycoady/acp4is03/papers/regehr.pdf}, title = {Lock Inference for Systems Software}, author = {John Regehr and Alastair Reid} } @inproceedings{schult:aosd-acp4is03, crossref = {:aosd-acp4is03}, url = {http://www.cs.ubc.ca/~ycoady/acp4is03/papers/schult.pdf}, title = {Speed vs. Memory Usage - An Approach to Deal with Contrary Aspects}, author = {Wolfgang Schult and Andreas Polze} } @inproceedings{vanderperren:aosd-acp4is03, crossref = {:aosd-acp4is03}, url = {http://www.cs.ubc.ca/~ycoady/acp4is03/papers/vanderperren.pdf}, title = {Invasive Composition Adapters: {An} Aspect-Oriented Approach for Visual Component-Based Development}, author = {Wim Vanderperren and Davy {Suv\'ee} and Viviane Jonckers} } @inproceedings{zinky:aosd-acp4is03, crossref = {:aosd-acp4is03}, url = {http://www.cs.ubc.ca/~ycoady/acp4is03/papers/zinky.pdf}, title = {The Aspect-Oriented Interceptors' Pattern for Crosscutting and Separation of Concerns Using Conventional Object Oriented Programming Languages}, author = {John Zinky and Richard Shapiro} } @article{morales:sd02, author = {Alexandra Weber Morales and John Reitano}, title = {The 15\% Solution}, pages = {34-38}, month = may, year = 2002, volume = 10, number = 5, journal = {Software Development} } @inproceedings{hirschfeld:aosdgi03a, title = {System Integration Using {AOP}}, author = {Robert Hirschfeld and Kasper {{\O}sterbye} and Matthias Wagner}, crossref = {:aosdgi03} } @inproceedings{panas:aosdgi03, title = {{Aspect-jEdit} for Inline Aspect Support}, author = {Thomas Panas and Jonas Karlsson and Magnus {H\"ogberg}}, crossref = {:aosdgi03} } @inproceedings{ramirez:aosdgi03, title = {An aspect-oriented methodology for concurrent and distributed applications}, author = {Rafael Ramirez and Andrew E. Santosa}, crossref = {:aosdgi03} } @inproceedings{zdun:aosdgi03, title = {Using Architecture Recovery and Tracing Patterns for Aspect Composition}, author = {Uwe Zdun}, crossref = {:aosdgi03} } @inproceedings{hirschfeld:aosdgi03b, title = {Design Patterns and Aspects---{Modular} Designs with Seamless Run-Time Integration}, author = {Robert Hirschfeld and Ralf {L\"ammel} and Matthias Wagner}, crossref = {:aosdgi03} } @inproceedings{hassoun:aosdgi03, title = {Visibility considerations and code reusability in {AspectJ}}, author = {Youssef Hassoun and Constantinos Constantinides}, crossref = {:aosdgi03} } @inproceedings{storzer:aosdgi03, title = {Analysis of {AspectJ} Programs}, author = {Maximilian {St\"orzer}}, crossref = {:aosdgi03} } @inproceedings{blair:aosdgi03, title = {Reasoning on {AspectJ} Programmes}, author = {Lynne Blair and Mattia Monga}, crossref = {:aosdgi03} } @inproceedings{bardou:aosdgi03, title = {Experimenting Split-Object in {Java} and {AspectJ}}, author = {Daniel Bardou}, crossref = {:aosdgi03} } @inproceedings{kort:aosdgi03, title = {Separating representation concerns in re-engineering applications of rewriting}, author = {Jan Kort and Ralf {L\"ammel}}, crossref = {:aosdgi03} } @inproceedings{schmidmeier:aosdgi03, title = {Known Concepts Implemented in {AspectJ}}, author = {Arno Schmidmeier and Stefan Hanenberg and Rainer Unland}, crossref = {:aosdgi03} } @inproceedings{herrmann:aosdgi03, title = {Object Confinement in Object Teams---{Reconciling} Encapsulation and Flexible Integration}, author = {Stephan Herrmann}, crossref = {:aosdgi03} } @inproceedings{masuhara:ecoop03, author = {H. Masuhara and G. Kiczales}, title = {Modular crosscutting in aspect-oriented mechanisms}, booktitle = {ECOOP 2003---{Object}-Oriented Programming, 17th European Conference}, series = lncs, volume = {2743}, editor = {Luca Cardelli}, city = {Darmstadt, Germany}, year = 2003, month = jul, publisher = sv, address = {Berlin}, pages = {2--28}, } @article{meyer:ieeec98, author = {Meyer, B.}, title = {Tell Less, Say More: {The} Power of Implicitness}, journal = computer, volume = 31, number = 7, pages = {97--98}, month = jul, year = 1998, } @techreport{orleans:ap99, author = {Orleans, Doug and Karl J. Lieberherr}, title = {{AP} Library: {The} Core Algorithms of {AP}}, institution = {Northeastern University}, month = may, year = 1999, url = {http://www.ccs.neu.edu/research/demeter/APLibrary/}, } @techreport{orleans:daj03, author = {Orleans, Doug and Karl J. Lieberherr}, title = {{DAJ}: {Demeter} in {AspectJ}}, institution = {Northeastern University}, month = jan, year = 2003, url = {http://www.ccs.neu.edu/research/demeter/DAJ/}, } @techreport{orleans:dem01, author = {Orleans, Doug and Karl J. Lieberherr}, title = {{DemeterJ}}, institution = {Northeastern University}, year = 2001, url = {http://www.ccs.neu.edu/research/demeter/DemeterJava/}, } @phdthesis{pawlak:phd02, author = {Pawlak, R.}, title = {{AOSD} with {JAC}}, school = {CNAM Paris}, month = dec, year = 2002, url = {Chapter 8}, } @phdthesis{rashid:phd00, author = {Rashid, A.}, title = {A Database Evolution Approach for Object-Oriented Databases}, school = {Lancaster University}, year = 2000, } @inproceedings{rashid:ideas03, author = {Rashid, A.}, title = {A Framework for Customizable Schema Evolution in Object-Oriented Databases}, booktitle = {Int'l Data Engineering and Applications Symposium (IDEAS)}, publisher = ieee, year = 2003, pages = {342--346}, } @mastersthesis{salinas:ms01, author = {Salinas, P.}, title = {Adding Systemic Crosscutting and Super-Imposition to {Composition Filters}}, school = {Vrije Universiteit Brussel}, month = aug, year = 2001, } @mastersthesis{savarese:ms03, author = {Savarese, L.}, title = {Aspect Oriented Software Development applied to Track Modeling for Command and Control}, school = {University of Twente}, year = 2003, } @mastersthesis{sung:ms02, author = {Sung, John}, title = {Aspectual Concepts}, number = {NU-CCS-02-06}, school = {Northeastern University}, month = jun, year = 2002, url = {http://www.ccs.neu.edu/home/lieber/theses-index.html}, } @incollection{stroud:oomar96, author = {R. Stroud and Z. Wue}, title = {Using Metaobject Protocols to Satisfy Non-functional Requirements}, editor = {Chris Zimmermann}, booktitle = {Advances in Object-Oriented Metalevel Architectures and Reflection}, publisher = {CRC Press}, city = {Boca Raton, Florida}, year = 1996, pages = {31--52}, } @inproceedings{rashid:r01, author = {Rashid, A.}, title = {A Hybrid Approach to Separation of Concerns: {The} Story of {SADES}}, booktitle = {3rd Int'l Conf. Meta-Level Architectures and Separation of Concerns (Reflection 2001)}, series = lncs, volume = {2192}, publisher = sv, address = {Berlin}, pages = {231--249}, year = 2001, } @inproceedings{rashid:ecoop-mpool01, author = {Rashid, A.}, title = {Multi-Paradigm Implementation of an Object Database Evolution System}, booktitle = {Workshop on Multi-Paradigm Programming with OO Languages (MPOOL) (ECOOP)}, year = 2001, publisher = {John von Neuman Institute for Computing, 3-00-007968-8}, pages = {1--9}, } @inproceedings{rashid:ecoop-sod00, author = {A. Rashid and P. Sawyer and E. Pulvermueller}, title = {A Flexible Approach for Instance Adaptation during Class Versioning}, booktitle = {Symp. Objects and Databases (ECOOP)}, series = lncs, volume = {1944}, year = 2000, publisher = sv, address = {Berlin}, pages = {101--113}, } @inproceedings{wand:saig01, author = {Wand, M.}, title = {A semantics for advice and dynamic join points in aspect-oriented programming}, booktitle = {Semantics, Applications and Implementation of Program Generation (SAIG)(PLI)}, series = lncs, volume = {2196}, month = sep, publisher = sv, address = {Berlin}, year = 2001, pages = {45} } @inproceedings{notkin:jssst93, author = {D. Notkin and D. Garlan and W. G. Griswold and K. Sullivan}, title = {Adding Implicit Invocation to Languages: {Three} Approaches}, editor = {S. Nishio and A. Yonezawa}, booktitle = {Object Technologies for Advanced Software: 1st JSSST Int'l Symposium (ISOTAS)}, series = lncs, volume = {742}, city = {Janazawa, Japan}, pages = {489--510}, publisher = sv, address = {Berlin}, month = nov, year = 1993, } @techreport{spurlin:aopsun02, author = {Spurlin, V.}, title = {Aspect-Oriented Programming with Sun {ONE} Studio}, institution = {Sun Microsystems}, month = oct, year = 2002, url = {http://forte.sun.com/ffj/articles/aspectJ.html}, } @techreport{tarr:hj00, author = {Tarr, P. and H. Ossher}, title = {{Hyper/J} User and Installation Manual}, institution = {IBM T. J. Watson Research Center}, url = {http://www.research.ibm.com/hyperspace}, year = 2000, } @inproceedings{netinant:ecoop-ooos00, author = {Netinant, Paniti and Constantinos Constantinides and Tzilla Elrad and Mohamed Fayad}, title = {Supporting Aspectual Decomposition in the Design of Operating Systems}, booktitle = {Workshop on Object-Orientation and Operating Systems (ECOOP)}, year = 2000, } @article{rashid:sigmod00, author = {Rashid, A. and P. Sawyer}, title = {Object Database Evolution using Separation of Concerns}, journal = {SIGMOD Record}, publisher = acm, volume = 29, number = 4, pages = {26--33}, year = 2000, } @inproceedings{rashid:re02, author = {A. Rashid and P. Sawyer and A. Moreira and J. {Ara\'ujo}}, title = {Early Aspects: {A} Model for Aspect-Oriented Requirements Engineering}, booktitle = {Joint Int'l Conf. Requirements Engineering}, publisher = ieee, year = 2002, pages = {199--202}, } @inproceedings{robillard:icse02, author = {Robillard, M. P. and Murphy, G. C.}, title = {{Concern Graphs}: {Finding} and describing concerns using structural program dependencies}, booktitle = {Int'l Conf. Software Engineering (ICSE)}, year = 2002, pages = {406--416}, } @inproceedings{schantz:wcsa98, author = {Schantz, R. and Bakken, D. and Karr, D. and Loyall, J. and Zinky, J.}, title = {Distributed objects with quality of service: {An} organizing architecture for integrated system properties}, booktitle = {OMG-DARPA-MCC Workshop on Compositional Software Architectures}, city = {Monterey, California}, month = jan, year = 1998, } @inproceedings{schult:isorc02, author = {Schult, W. and A. Polze}, title = {Aspect-oriented Programming with {C\#} and {.NET}}, booktitle = {Int'l Symp. Object-oriented Real-time distributed Computing (ISORC)}, year = 2002, pages = {241--248}, } @inproceedings{stankovic:rtas03, author = {John Stankovic and Ruiqing Zhu and Ram Poornalingam and Chenyang Lu and Zhendong Yu and Marty Humphrey and Brian Ellis}, title = {{VEST}: {An} Aspect-Based Composition Tool for Real-Time Systems}, booktitle = {Real-Time Applications Symposium}, city = {Washington, D. C.}, month = may, year = 2003, pages = {58--69}, } @inproceedings{pulvermueller:tools00, author = {E. Pulvermueller and A. Speck and A. Rashid}, title = {Implementing Collaboration-Based Designs using Aspect-Oriented Programming}, booktitle = {Technology of Object-Oriented Languages and Systems (TOOLS USA)}, year = 2000, pages = {95--104}, } @unpublished{mashuhara:unp03, author = {Hidehiko Masuhara and Gregor Kiczales}, title = {A Modeling Framework for Aspect-Oriented Mechanisms; Draft}, url = {http://www.cs.ubc.ca/{\tilde}gregor/masuhara-aop-framework.pdf}, note = {http://www.cs.ubc.ca/\hfill\break {\tilde}gregor/masuhara-aop-framework.pdf}, } @inproceedings{katara:aosd03, title = {Architectural Views of Aspects}, author = {Mika Katara and Shmuel Katz}, crossref = {:aosd03}, pages = {1-10} } @inproceedings{rashid:aosd03, title = {Modularisation and Composition of Aspectual Requirements}, author = {Awais Rashid and Ana Moreira and {Jo\tildacc{a}o} {Ara\'ujo}}, crossref = {:aosd03}, pages = {11-20} } @inproceedings{suvee:aosd03, title = {{JAsCo}: {An} Aspect-Oriented approach tailored for Component Based Software Development}, author = {Davy {Suv\'ee} and Wim Vanderperren}, crossref = {:aosd03}, pages = {21-29} } @inproceedings{sereni:aosd03, title = {Static Analysis of Aspects}, author = {Damien Sereni and de Moor, Oege}, crossref = {:aosd03}, pages = {30-39} } @inproceedings{lieberherr:aosd03, title = {A Case for Statically Executable Advice: {Checking} the Law of {Demeter} With {AspectJ}}, author = {Karl Lieberherr and David H. Lorenz and Pengcheng Wu}, crossref = {:aosd03}, pages = {40-49} } @inproceedings{coady:aosd03, title = {Back to the Future: {A} Retroactive Study of Aspect Evolution in Operating System Code}, author = {Yvonne Coady and Gregor Kiczales}, crossref = {:aosd03}, pages = {50-59} } @inproceedings{gybels:aosd03, title = {Arranging Language Features for Pattern-based Crosscuts}, author = {Kris Gybels and Johan Brichau}, crossref = {:aosd03}, pages = {60-69} } @inproceedings{mcdirmid:aosd03, title = {Aspect-Oriented Programming with {Jiazzi}}, author = {Sean McDirmid and Wilson C. Hsieh}, crossref = {:aosd03}, pages = {70-79} } @inproceedings{hanenberg:aosd03, title = {Parametric Introductions}, author = {Stefan Hanenberg and Rainer Unland}, crossref = {:aosd03}, pages = {80-89} } @inproceedings{ostermann:aosd03, title = {Conquering Aspects With {Caesar}}, author = {Klaus Ostermann and Mira Mezini}, crossref = {:aosd03}, pages = {90-99} } @inproceedings{popovici:aosd03, title = {Just in Time Aspects}, author = {Andrei Popovici and Gustavo Alonso and Thomas Gross}, crossref = {:aosd03}, pages = {100-109} } @inproceedings{segura:aosd03, title = {Web Cache Prefetching as an Aspect: {Towards} a Dynamic-Weaving Based Solution}, author = {Marc {Segura-Devillechaise} and Jean-Marc Menaud and Gilles Muller and Julia L. Lawall}, crossref = {:aosd03}, pages = {110-119} } @inproceedings{rashid2:aosd03, title = {Persistence as an Aspect}, author = {Awais Rashid and Ruzanna Chitchyan}, crossref = {:aosd03}, pages = {120-129} } @inproceedings{zhang:aosd03, title = {Quantifying Aspects in Middleware Platforms}, author = {Charles Zhang and H-A. Jacobsen}, crossref = {:aosd03}, pages = {130-139} } @inproceedings{veit:aosd03, title = {Model-View-Controller and Object Teams: {A} Perfect Match of Paradigms}, author = {Matthias Veit and Stephan Herrmann}, crossref = {:aosd03}, pages = {140-149} } @inproceedings{ernst:aosd03, title = {Aspects and Polymorphism in {AspectJ}}, author = {Erik Ernst and David H. Lorenz}, crossref = {:aosd03}, pages = {150-157} } @inproceedings{tucker:aosd03, title = {Pointcuts and Advice in Higher-Order Languages}, author = {David B. Tucker and Shriram Krishnamurthi}, crossref = {:aosd03}, pages = {158-167} } @inproceedings{laemmel:aosd03, title = {Strategic Programming Meets Adaptive Programming}, author = {Ralf Laemmel and Eelco Visser and Joost Visser}, crossref = {:aosd03}, pages = {168-177} } @inproceedings{janzen:aosd03, title = {Navigating and Querying Code Without Getting Lost}, author = {Doug Janzen and Kris {De Volder}}, crossref = {:aosd03}, pages = {178-187} } @inproceedings{chu:aosd03, title = {Visual Separation of Concerns through Multidimensional Program Storage}, author = {Mark C. Chu-Carroll and James Wright and Annie T. T. Ying}, crossref = {:aosd03}, pages = {188-197} } @article{andrade:jsme02, author = {Luis Andrade and {Jos\'e} Luiz Fiadeiro and {Jo\tildacc ao} Gouveia and Georgios Koutsoukos}, pages = {353--369}, title = {Separating Computation, Coordination and Configuration}, journal = jsme, volume = 14, number = 5, year = 2002, keywords = {architectures, coordination, dynamic configuration, modelling, separation of concerns, software evolution, tools}, abstract = {We present methodological and technological solutions for evolving large-scale software systems. These solutions are based on many years of research and experience in developing systems in one of the most volatile application domains - banking. We discuss why promising software development techniques, such as object-oriented and component-based approaches, on their own, cannot meet the challenges and objectives of software development today, and propose a three-layered architectural approach based on the strict separation between computation, coordination and configuration. We present a set of modelling primitives, design principles and support tools through which such an approach can be put effectively into practice, and discuss how it promotes a more dynamic approach to software evolution. Finally, we make comparisons with related work.} } @article{mens:jsme02, author = {Tom Mens and Michel Wermelinger}, title = {Separation of concerns for software evolution}, journal = jsme, volume = 14, number = 5, year = 2002, pages = {311--315}, keywords = {software engineering, foundations, abstraction, rates of change}, abstract = {This special issue reports on approaches that apply the idea of separation of concerns to software evolution. In this context, separation of concerns allows us to separate parts of the software that exhibit different rates of change or different types of change. This makes it possible to provide better evolution support for those parts that have a higher change rate, or to provide different evolution techniques for different views on the software. Another common way to achieve separation of concerns is by raising the level of abstraction to the level of software architectures, business rules and metamodels. This makes software evolution more manageable. The above ideas emerged as important conclusions of the workshop on Formal Foundations of Software Evolution, which was co-located with the Conference on Software Maintenance and Re-engineering in Lisbon in March 2001. Of the 12 original position papers, five have been selected for revision and inclusion in this special issue of the Journal of Software Maintenance and Evolution.} } @inproceedings{panas:sea02, author = {Thomas Panas and Jesper Andersson and Uwe {A{\ss}mann}}, title = {The Editing Aspect of Aspects}, booktitle = {Software Engineering and Applications (SEA2002)}, editor = {I. Hussain}, address = {Cambridge, MA}, publisher = {{ACTA} Press}, year = 2002, month = nov } @article{minsky:topas96, title = {Law-Governed Regularities in Object Systems; {Part} 1: {Principles}.}, author = {Naftaly Minsky}, journal = {Theory and Practice of Object Systems (TOPAS)}, volume = 2, number = 4, year = 1996, url = {http://athos.rutgers.edu/~minsky/papers/LGA-paper.pdf}, abstract = {Regularities, or the conformity to unifying principles, are essential to the comprehensibility, manageability and reliability of large software systems. Yet, as is argued in this paper, the inherent globality of regularities makes them very hard to establish in traditional methods. This paper explores an approach to regularities for object systems which greatly simplifies their implementation, making them more easily employable for taming of the complexities of large scale software. This approach, which is based on a generalized concept of law-governed architecture (LGA) introduced in this paper, provides system designers and builders with the means for establishing a fairly wide range of useful regularities simply by declaring them formally and explicitly as the law of the system. Once such a law-governed regularity is declared, it is enforced by the environment in which the system is developed.} } @inproceedings{ariniegas:pdpta00, author = {Ariniegas, F. A.}, title = {Introduction to {Perceval}: {Aspect}-oriented Design using {XML Schema} and {Groves}}, booktitle = {5th Int'l Conf. Parallel and Distributed Processing Techniques and Applications}, city = {Las Vegas}, month = jun, pages = {26--29}, year = 2000, publisher = {CSREA Press}, } @inproceedings{barrett:wcsa98, author = {Barrett, S. and Foster, P.}, title = {Turning {Java} Components into {CORBA} Components with Replication}, booktitle = {OMG-DARPA-MCC Workshop on Compositional Software Architectures}, city = {Monterey, California}, month = jan, year = 1998, url = {http://www.objs.com/workshops/ws9801/papers/paper067.doc}, } @techreport{bergmans:cmcucf01, author = {Bergmans, L. and M. {Ak{\c s}it}}, title = {Composing multiple concerns using composition filters}, year = 2001, url = {http://trese.cs.utwente.nl/composition_filters/}, institution = {University of Twente, The Netherlands}, } @incollection{bergmans:sioop97, author = {Bergmans, L. and P. Cointe}, title = {Workshop report of the {ECOOP'96} workshop on Composability Issues in Object-Orientation}, editor = {M. {M\"uhlha\"user}}, booktitle = {Special Issues in Object-Oriented Programming}, pages = {53--124}, publisher = {dpunkt verlag}, address = {Heidelberg}, year = 1997, } @incollection{bosch:sioop97, author = {Bosch, J.}, title = {Composition through Superimposition}, booktitle = {Workshop report of the ECOOP'96 workshop on Composability Issues in Object-Orientation, Special Issues in Object-Oriented Programming}, editor = {M. {M\"uhlha\"user}}, publisher = {dpunkt}, address = {Heidelberg}, year = 1997, pages = {94--101}, } @techreport{boyer:ae01, author = {F. Boyer and S. Bouchenak and de Palma, N. and D. Hagimont}, title = {Aspects can be Efficient: {Experiences} with Replication and Protection}, institution = {INRIA}, number = {4651}, year = 2001, } @mastersthesis{burggraaf:ms97, author = {Burggraaf, A.}, title = {Solving Modelling Problems of {CORBA} using {Composition Filters}}, school = {Department of Computer Science, University of Twente}, year = 1997, } @article{minsky:topas97, title = {Law-Governed Regularities in Object Systems; {Part} 2: {The} {Eiffel} Case.}, author = {Naftaly Minsky and Partha Pal}, journal = {In Theory and Practice of Object Systems}, volume = 3, number = 2, year = 1997, url = {http://athos.rutgers.edu/~minsky/papers/OO-LGA-paper.pdf}, abstract = {Regularities, or the conformity to unifying principles, are essential to the comprehensibility, manageability and reliability of large software systems, and should, therefore, be considered an important element of their architecture. But the inherent globality of regularities makes them very hard to implement in traditional methods. We have argued elsewhere that this difficulty can be alleviated by means of law-governed architecture (LGA), under which a system designers can establish a desired regularity (of a certain kind) simply by declaring it formally and explicitly as the law of the system. Once such a law-governed regularity is declared, it is enforced by the environment in which the system is developed. This paper, which is based on a recently developed environment called Darwin-E, describes the application of LGA to object oriented systems written in the Eiffel language. We introduce here the formalism for specifying laws under Darwin-E, and give a sample of regularities that can be efficiently established by such laws. In particular, we demonstrate how one can establish a kernelized architecture suitable for the construction of critical embedded software, such as the software embedded in an intensive care unit.}, keywords = {regularities, object-oriented systems, law-governed architecture, kernelized design, intensive-care unit} } @inproceedings{mekerke:oois-ws02, editor = {J.-M. Bruel and Z. {Bellahs\'ene}}, booktitle = {Advances in Object-Oriented Information Systems OOIS 2002 Workshops, LNCS 2426}, location = {Montpellier, France}, month = sep, year = 2002, title = {Tool Support for Aspect-Oriented Design}, author = {Fran\c{c}ois Mekerke and Geri Georg and Robert France and Roger Alexander}, pages = {280-289}, abstract = {In this paper, we describe the tool we plan to build in order to show the feasibility of aspect-oriented design, and demonstrate the advantages that it implies. This technique allows one to independently specify cross-cutting concerns and functionnal features of a system. The tool would then allow the weaving of the aspects on the model one after the other, creating a design model that would comply to all speci cations, with additionally a high-quality architecture.} } @inproceedings{hanenberg:oois02, title = {Roles and Aspects: {Similarities}, Differences, and Synergetic Potential}, author = {Stefan Hanenberg and Rainer Unland}, booktitle = {8th International Conference on Object-Oriented Information Systems}, month = sep, year = 2002, location = {Montpellier, France}, abstract = {Both, the role concept and aspect-oriented programming are techniques which permit a flexible adaptation of object-oriented constructs and therefore can be used to adjust existing software to new challenges. While the former one is already well known in the object-oriented world, the latter was only recently introduced. Currently, both techniques co-exist without affecting each other and therefore concrete software projects either use the one or the other approach. There are some situations where the result of utilizing the one or the other is approximately the same. Therefore, it is reasonable to analyze each approach in respect to its underlying philosophy and its impact on the implementation level and to compare them on the basis of those observations. This paper discusses the equivalences and differences between the role concept and aspect-oriented programming and reveals potential synergies between both approaches.} } @inproceedings{mezini:oopsla02, author = {Mira Mezini and Klaus Ostermann}, title = {Integrating independent components with on-demand remodularization}, booktitle = {Proceedings of the 17th ACM conference on Object-oriented programming, systems, languages, and applications}, year = 2002, isbn = {1-58113-471-1}, pages = {52--67}, location = {Seattle, Washington, USA}, doi = {http://doi.acm.org/10.1145/582419.582426}, publisher = {ACM Press}, abstract = {This paper proposes language concepts that facilitate the separation of an application into independent reusable building blocks and the integration of pre-build generic software components into applications that have been developed by third party vendors. A key element of our approach are on-demand remodularizations, meaning that the abstractions and vocabulary of an existing code base are translated into the vocabulary understood by a set of components that are connected by a common collaboration interface. This general concept allows us to mix-and-match remodularizations and components on demand.}, keywords = {aspect-oriented programming, collaboration-based decomposition, on-demand remodularization} } @inproceedings{hannemann:oopsla02, author = {Jan Hannemann and Gregor Kiczales}, title = {Design pattern implementation in {Java} and {AspectJ}}, booktitle = {Proceedings of the 17th ACM conference on Object-oriented programming, systems, languages, and applications}, year = 2002, isbn = {1-58113-471-1}, pages = {161--173}, location = {Seattle, Washington, USA}, doi = {http://doi.acm.org/10.1145/582419.582436}, publisher = {ACM Press}, abstract = {AspectJ implementations of the GoF design patterns show modularity improvements in 17 of 23 cases. These improvements are manifested in terms of better code locality, reusability, composability, and (un)pluggability.The degree of improvement in implementation modularity varies, with the greatest improvement coming when the pattern solution structure involves crosscutting of some form, including one object playing multiple roles, many objects playing one role, or an object playing roles in multiple pattern instances.}, keywords = {aspect-oriented programming, design patterns} } @inproceedings{soares:oopsla02, author = {S\'ergio Soares and Eduardo Laureano and Paulo Borba}, title = {Implementing distribution and persistence aspects with {AspectJ}}, booktitle = {Proceedings of the 17th ACM conference on Object-oriented programming, systems, languages, and applications}, year = 2002, isbn = {1-58113-471-1}, pages = {174--190}, location = {Seattle, Washington, USA}, doi = {http://doi.acm.org/10.1145/582419.582437}, publisher = {ACM Press}, abstract = {This paper reports our experience using AspectJ, a general-purpose aspect-oriented extension to Java, to implement distribution and persistence aspects in a web-based information system. This system was originally implemented in Java and restructured with AspectJ. Our main contribution is to show that AspectJ is useful for implementing several persistence and distribution concerns in the application considered, and other similar applications. We have also identified a few drawbacks in the language and suggest some minor modifications that could significantly improve similar implementations. Despite the drawbacks, we argue that the AspectJ implementation is superior to the pure Java implementation. Some of the aspects implemented in our experiment are abstract and constitute a simple aspect framework. The other aspects are application specific but we suggest that different implementations might follow the same aspect pattern. The framework and the pattern allow us to propose architecture-specific guidelines that provide practical advice for both restructuring and implementing certain kinds of persistent and distributed applications with AspectJ.}, keywords = {aspect-oriented programming, aspectJ, distributed programming, object persistence, separation of concerns} } @inproceedings{massoni:slplop01, author = {T. Massoni and V. Alves and S. Soares and P. Borba}, title = {{PDC}: {Persistent} Data Collections pattern}, booktitle = {First Latin American Conference on Pattern Languages of Programming --- SugarLoafPLoP}, location = {Rio de Janeiro}, month = oct, year = 2001 } @inproceedings{rashid:gcse00, author = {A. Rashid}, title = {On to Aspect Persistence}, booktitle = {2nd International Symposium on Generative and Component-Based Software Engineering, LNCS 2177}, pages = {453--463}, publisher = svlncs, month = oct, year = 2000 } @inproceedings{rashid:desa00, author = {A. Rashid and E. Pulvermueller}, title = {From Object-Oriented to Aspect-Oriented Databases}, booktitle = {11th International Conference on Database and Expert Systems Applications --- DEXA 2000, LNCS 1873}, pages = {125--134}, publisher = svlncs, month = sep, year = 2000 } @inproceedings{soares:slplop02, author = {S. Soares and P. Borba}, title = {{PaDA}: {A} Pattern for Distribution Aspects}, booktitle = {Second Latin American Conference on Pattern Languages of Programming --- SugarLoafPLoP}, location = {Rio de Janeiro}, year = 2002, month = aug } @inproceedings{tatsubori:oopsla-ds01, author = {M. Tatsubori}, title = {Separation of Distribution Concerns in Distributed {Java} Programming}, booktitle = {OOPSLA'01 Doctoral Symposium}, location = {Tampa}, month = oct, year = 2001 } @inproceedings{cachopo:oopsla-aop02, url = {http://www.cs.ubc.ca/~murphy/OOPSLA02-Tools-for-AOSD/position-papers/cachopo.pdf}, title = {The Tyranny of the File Decomposition}, author = {{Jo\"ao} Cachopo and {Ant\'onio} Menezes {Leit\"ao} and {Ant\'onio} Rito-Silva}, crossref = {:oopsla-aop02} } @inproceedings{carver:oopsla-aop02, url = {http://www.cs.ubc.ca/~murphy/OOPSLA02-Tools-for-AOSD/position-papers/carver.pdf}, title = {Simplified Universe Construction for {Hyper/J} Composition}, author = {Lee Carver}, crossref = {:oopsla-aop02} } @inproceedings{chu:oopsla-aop02, url = {http://www.cs.ubc.ca/~murphy/OOPSLA02-Tools-for-AOSD/position-papers/chucarroll.pdf}, title = {Supporting Aspects in Program Storage}, author = {Mark C. Chu-Carroll}, crossref = {:oopsla-aop02} } @inproceedings{gal:oopsla-aop02, url = {http://www.cs.ubc.ca/~murphy/OOPSLA02-Tools-for-AOSD/position-papers/gal.pdf}, title = {Build Management for {AspectC++}}, author = {Andreas Gal and Olaf Spinczyk}, crossref = {:oopsla-aop02} } @inproceedings{graversen:oopsla-aop02, url = {http://www.cs.ubc.ca/~murphy/OOPSLA02-Tools-for-AOSD/position-papers/graversen.pdf}, title = {Aspect Modelling as Role Modelling}, author = {Kasper B. Graversen and Kasper {{\O}sterbye}}, crossref = {:oopsla-aop02} } @inproceedings{hanenberg:oopsla-aop02, url = {http://www.cs.ubc.ca/~murphy/OOPSLA02-Tools-for-AOSD/position-papers/hanenberg.ps}, title = {Specifying Aspect-Oriented Design Constraints in {AspectJ}}, author = {Stefan Hanenberg and Rainer Unland}, crossref = {:oopsla-aop02} } @inproceedings{harrison:oopsla-aop02, url = {http://www.cs.ubc.ca/~murphy/OOPSLA02-Tools-for-AOSD/position-papers/harrison.pdf}, title = {Common Low-Level Support for Composition and Weaving}, author = {William Harrison and Vincent Kruskal and Harold Ossher and Peri Tarr and Frank Tip}, crossref = {:oopsla-aop02} } @inproceedings{hirschfeld:oopsla-aop02, url = {http://www.cs.ubc.ca/~murphy/OOPSLA02-Tools-for-AOSD/position-papers/hirschfeld.pdf}, title = {Metalevel Tool Support in {AspectS}}, author = {Robert Hirschfeld and Matthias Wagner}, crossref = {:oopsla-aop02} } @inproceedings{kersten:oopsla-aop02, url = {http://www.cs.ubc.ca/~murphy/OOPSLA02-Tools-for-AOSD/position-papers/kersten.pdf}, title = {{AO} Tools: {State} of the ({AspectJ}) Art and Open Problems}, author = {Mik Kersten}, crossref = {:oopsla-aop02} } @inproceedings{mehner:oopsla-aop02, url = {http://www.cs.ubc.ca/~murphy/OOPSLA02-Tools-for-AOSD/position-papers/mehner.pdf}, title = {Towards a Standard Interface for Runtime Inspection in {AOP} Environments}, author = {Katharina Mehner and Awais Rashid}, crossref = {:oopsla-aop02} } @inproceedings{robillard:oopsla-aop02, url = {http://www.cs.ubc.ca/~murphy/OOPSLA02-Tools-for-AOSD/position-papers/robillard.pdf}, title = {Capturing Concern Descriptions During Program Navigation}, author = {Martin P. Robillard and Gail C. Murphy}, crossref = {:oopsla-aop02} } @inproceedings{smoody:oopsla-aop02, url = {http://www.cs.ubc.ca/~murphy/OOPSLA02-Tools-for-AOSD/position-papers/smoody.txt}, title = {Aspects can be Objects, too}, author = {Rik Smoody}, crossref = {:oopsla-aop02} } @inproceedings{tesanovic:oopsla-aop02, url = {http://www.cs.ubc.ca/~murphy/OOPSLA02-Tools-for-AOSD/position-papers/tesanovic.pdf}, title = {Integrating Symbolic Worst-Case Execution Time Analysis with Aspect-Oriented System Development}, author = {Aleksandra Tesanovic and J\"orgen Hansson and Dag {Nystr\"om} and Christer {Norstr\"om}}, crossref = {:oopsla-aop02} } @inproceedings{ying:oopsla-aop02, url = {http://www.cs.ubc.ca/~murphy/OOPSLA02-Tools-for-AOSD/position-papers/aying.pdf}, title = {Using Version Information for Concern Interface and Code-Assist}, author = {Annie T. T. Ying and Gail C. Murphy and Raymond T. Ng and Mark C. Chu-Carroll}, crossref = {:oopsla-aop02} } @inproceedings{zhao:oopsla-aop02, url = {http://www.cs.ubc.ca/~murphy/OOPSLA02-Tools-for-AOSD/position-papers/zhao.pdf}, title = {Tool Support for Unit Testing of Aspect-Oriented Software}, author = {Jianjun Zhao}, crossref = {:oopsla-aop02} } @inproceedings{barros:uml-aop02, crossref = {:uml-aop02}, url = {http://lglwww.epfl.ch/workshops/uml2002/papers/barros.pdf}, title = {Activities as Behaviour Aspects}, author = {{Jo\tildacc ao} Paulo Barros and {Lu\'\i{}s} Gomes}, abstract = {The modelling of activities can easily originate numerous control flows and inter-dependencies among activities. This makes future model changes and, particularly, the addition of crosscutting requirements, especially complex and risky. This paper proposes the abstraction of those behaviour requirements as embedded activities invocations crosscutting the models. Those embedded activities are aspects as they allow modification of existent models across different activities with minimal coupling and simple traceability. Examples of aspects for fair execution, mutual exclusion and synchronization are presented. Additional constructions allowing the specification of more compact and generic activity models are also proposed.}, Keywords = {UML, activity, aspect, conflict, fairness, template} } @inproceedings{araujo:uml-aop02, crossref = {:uml-aop02}, url = {http://lglwww.epfl.ch/workshops/uml2002/papers/Rashid.pdf}, title = {Aspect-Oriented Requirements with {UML}}, author = {{Jo\tildacc{a}o} {Ara\'ujo} and Ana Moreira and Isabel Brito and Awais Rashid}, abstract = {Crosscutting concerns are responsible for producing spread and tangled representations throughout the software life cycle. Effective separation of such concerns is essential to improve understandability and maintainability of artefacts at the various software development stages. Aspect-oriented software development holds promise for the purpose. However, to date, most of the work in this area has concentrated on the implementation level. While the focus is shifting to earlier development stages such as design, very less work exists on separation of crosscutting concerns during requirements engineering.\par The goal of this paper is to handle the separation of crosscutting concerns at requirements level using UML. To accomplish this we identify and specify crosscutting concerns in separate modules, so that localization and hence, reusability and maintainability can be promoted. The UML-based aspect-oriented requirements engineering mechanism has a two-fold impact. It makes it possible to identify trade-offs among broadly scoped properties early on in the development cycle hence providing decision support for the stakeholders involved. At the same time, being based on UML, the approach adheres to a de-facto industry standard hence making it suitable for incorporation in existing requirements engineering practices.} } @inproceedings{beier:uml-aop02, crossref = {:uml-aop02}, url = {http://lglwww.epfl.ch/workshops/uml2002/papers/beier.pdf}, title = {Aspects in {UML} Models from a Code Generation Perspective}, author = {Georg Beier and Markus Kern}, abstract = {In this paper, we look at aspects from the perspective of code generation. From our experiences with template based code generators, we propose to attribute aspects to UML packages in order to improve code generation.}, keywords = {Aspect Oriented Modeling, Code Generation, Aspect Weaver} } @inproceedings{zakaria:uml-aop02, crossref = {:uml-aop02}, url = {http://lglwww.epfl.ch/workshops/uml2002/papers/zakaria.pdf}, title = {A {UML} Extension for Modeling Aspect-Oriented Systems}, author = {Aida Atef Zakaria and Hoda Hosny and Amir Zeid}, abstract = {Aspects are crosscutting concerns that tend to cut across a system's main components, increasing their interdependencies, and reducing their reuse. Aspect-Oriented software development provides explicit support for dealing with crosscutting concerns. Using this technique, aspects are placed in separate modules that are then woven together with base classes to form an application. Capturing aspects at the design phase makes their design components more reusable. It also makes automatic code generation possible. The Aspect-Oriented paradigm builds on the existing Object Oriented paradigm by introducing the notion of an aspect as opposed to a core class.\par The unified modeling language (UML) is a modeling language used for specifying, visualizing, constructing and documenting software systems. One of the strengths of the UML is that it provides extension mechanisms that enable the language to be adapted to different types of systems, domains, and methods and processes. In this paper we propose a UML extension for modeling aspect-oriented OO systems. The proposed extension builds on the work discussed in [11], which aims at shifting the aspect-oriented paradigm from the programming level to the design level. We successfully applied the proposed extension to the Rational Rose CASE tool package as an add-in, facilitating the use of the proposed extension constructs. The add-in also generates an AspectJ skeleton file for the Rational Rose model designed using the proposed extension.} } @inproceedings{lions:uml-aop02, crossref = {:uml-aop02}, url = {http://lglwww.epfl.ch/workshops/uml2002/papers/lions.pdf}, title = {Extending {OpenTool/UML} Using Metamodeling: {An} Aspect-Oriented Programming Case Study}, author = {Jean Marie Lions and Didier Simoneau and Gilles Pitette and Imed Moussa}, abstract = {Abstract: Unified Modeling Language (UML) is currently being used as the universal technique for modeling object-oriented applications across a wide range of domains. Developing a truly adequate uniform modeling technique in the face of diverse domains requirements and activities can be challenging. Recently, many adaptations and extensions to UML have been made to reflect a domain's world view. As a technique, domain-specific UML metamodeling has gained in importance, e.g., in the context of code generation. However, the support for metamodeling within UML is weak and while many CASE tools do support manifold extensions they do not offer inherent metamodeling. We propose in this paper a pragmatic presentation of how to extend OpenTool/UML using the tool's built-in metamodeling capabilities to support Aspect Oriented Programming (AOP) in UML. Using a full metalanguage, called OTScript, we will show how the AOP concepts can be added and modified in a fully integrated UML environment, supporting consistent viewing at both the semantic model level and the user interface level.}, keywords = {UML, MOF, Metamodeling, OpenTool, OTScript, CASE Tools}, } @inproceedings{sapir:uml-aop02, crossref = {:uml-aop02}, url = {http://lglwww.epfl.ch/workshops/uml2002/papers/tyszberowicz.pdf}, title = {Extending {UML} with Aspect Usage Constraints in the Analysis and Design Phases}, author = {Naomi Sapir and Shmuel Tyszberowicz and Amiram Yehudai}, abstract = {Aspect-Oriented Programming (AOP) is a promising approach for handling concerns in software development that crosscut the conventional modular structure of the system. Such concerns are, for example, tracing, memory management, fault-tolerance, etc. Aspects are modular units in which developers manage the concerns that cut across the other modular units, which are orthogonal to them. In this position paper we mainly refer to AspectJ. According to that, aspects are class-like elements in which developers encapsulate concerns that cut across classes, the natural unit of modularity in OOPLs. Aspects are similar to classes: they have a type, state, and behavior, and they can have fields, methods, and types as members.\par This position paper deals with two main issues: (1) We propose a methodology for aspect development using the UML notation. (2) We introduce ways to constrain the use of aspects using Aspect Constraint Language (ACL), an OCL like language. This allows project managers to control the development while avoiding undesired effects.\par Research on AOP has mainly focused on the implementation phase of software development. Furthermore, researchers have not paid much attention to the way aspects themselves are to be developed, and have not attempted to separate the aspect development from that of the other parts of the system. According to our approach, an aspect is considered as a separate application that crosscuts the application under development (AUD), yet must not merge into it, nor change the AUD logic and structure, i.e. the aspect has to keep the AUD untouched and consistent. The aspect application has its own lifecycle, and a defined process should support aspect development.\par Currently, the usage of aspects is uncontrolled, and no limits or constraints are implied during the aspect design and implementation phases. Not constraining the usage of aspects, weakens the added value of AOP. Instead of simplifying the development process, aspects might cause code tangling in various sources, spread functionality, and produce inconsistent and unpredictable behavior throughout project lifecycle. Therefore, in order to gain control, there is a need to impose constraints on aspect's usage during the analysis and design phases and to enforce the constraints during aspect implementation phase.} } @inproceedings{prehofer:uml-aop02, crossref = {:uml-aop02}, url = {http://lglwww.epfl.ch/workshops/uml2002/papers/prehofer.pdf}, title = {Feature Interactions in Statechart Diagrams or Graphical Composition of Components}, author = {Christian Prehofer}, abstract = {In this paper, we present a graphic description method for modeling software components with statechart diagrams. We build components by composing features, which define particular services or aspects of the component. The behavior of features is specified individually with partial (or incomplete) diagrams. Using refinement concepts for automata complete component descriptions are created by combining the partial automata of the desired features. In addition to this cross-cutting of components, we also consider feature interactions, which is a well known problem from the telecommunications area. We use adaptors as a glue for combining highly-entangled features which do interact. In this way we show that graphical software modeling with statechart diagrams can be extended to modular composition of features.} } @inproceedings{stein:uml-aop02, crossref = {:uml-aop02}, url = {http://lglwww.epfl.ch/workshops/uml2002/papers/stein.pdf}, title = {On Representing Join Points in the {UML}}, author = {Dominik Stein and Stefan Hanenberg and Rainer Unland}, abstract = {Join points represent the key concept in Aspect-Orientation. Join points define the places where two concerns crosscut one another. It is a major task for aspect-oriented designers to specify a set of join points at which two concern models are (inter)connected to each other. Hence, it is a primary task for an aspect-oriented modeling language to provide suitable representations for join points. In our Aspect-Oriented Design Model we have identified join point representations in the UML that serve the needs of aspect-oriented designers of aspect-oriented programs written in AspectJ. In this paper we evaluate if and to what extent these representations are apt to serve as hooks for crosscutting specified with Composition Filters, in Adaptive Programming, and in Hyper/J, as well. Based on the outcome of that investigation we present a graphical notation for the designation of join points and for their visualization in regular user models.} } @inproceedings{katara:uml-aop02, crossref = {:uml-aop02}, url = {http://lglwww.epfl.ch/workshops/uml2002/papers/katara.pdf}, title = {Refinements and Aspects in {UML}}, author = {Mika Katara and Tommi Mikkonen}, abstract = {While introducing the facilities for an improved align- ment between program artifacts and informal requirements, aspect-oriented software development has mostly overlooked the abstract/concrete dimension. In this paper, we propose the use of superposition as a basis for addressing this dimen- sion. In addition to the straightforward use of superposition, a discussion is given for cases, where more complex mecha- nisms are needed. Towards the end of the paper, we will also give a simple example concerning the use of the approach.} } @mastersthesis{carver:ms02, author = {Lee Carver}, title = {Building a Real-World Application with Aspect-Oriented Modules and {Hyper/J}}, school = {University of California, San Diego}, year = 2002, month = jun } @inproceedings{zhang:gcse01, crossref = {:gcse01}, title = {{XVCL} Approach to Separating Concerns in Product Family Assets}, author = {Hongyu Zhang and Stan Jarzabek and Soe Myat Swe}, pages = {36--47}, url = {http://net.objectdays.org/pdf/01/papers/gcse/lncs2186/0558/papers/2186/21860036.pdf}, abstract = {In this paper, we describe an XML-based language, called XVCL, for managing variants in component-based product families. Using XVCL, we can organize product family assets and instrument them to accommodate variants. A tool that interprets XVCL and provides semi-automatic support for asset customization is also introduced. In our projects, we applied XVCL to manage variants in UML domain models and in generic architectures for product families. We have achieved simple forms of separation of concerns (in both models and architectures) and we are investigating advanced forms in current work. We plan to compare XVCL to other emerging techniques that lead to separating of concerns in software models, documents, architectures and code.} } @inproceedings{vranic:gcse01, crossref = {:gcse01}, title = {{AspectJ} Paradigm Model: {A} Basis for Multi-paradigm Design for {AspectJ}}, author = {Valentino {Vrani\'c}}, pages = {48--57}, url = {http://net.objectdays.org/pdf/01/papers/gcse/lncs2186/0558/papers/2186/21860048.pdf}, abstract = {Multi-paradigm design is a metaparadigm: it enables to select the appropriate paradigm among those supported by a programming language for a feature being modeled in a process called transformational analysis. A paradigm model is a basis for multi-paradigm design. Feature modeling appears to be appropriate to represent a paradigm model. Such a model is proposed here for AspectJ language upon the confrontation of multi-paradigm design and feature modeling. Subsequently, the new transformational analysis is discussed.} } @inproceedings{heuzeroth:gcse01, crossref = {:gcse01}, title = {Aspect-Oriented Configuration and Adaptation of Component Communication}, author = {Dirk Heuzeroth and Welf {L\"owe} and Andreas Ludwig and Uwe {A{\ss}mann}}, pages = {58--69}, url = {http://net.objectdays.org/pdf/01/papers/2186/21860058.pdf}, abstract = {In order to compose components, we have to adapt them. Therefore, we pursue a transformational approach focusing on the communication view. We show how to separate the definition of communication from the definition of other system aspects, how to extract this definition from existing systems, and how to weave it back into the system. Our main concern is the reconfiguration of this aspect.} } @inproceedings{pulvermuller:gcse01, crossref = {:gcse01}, title = {A Version Model for Aspect Dependency Management}, author = {Elke {Pulverm\"uller} and Andreas Speck and James O. Coplien}, pages = {70-79}, url = {http://net.objectdays.org/pdf/01/papers/2186/21860070.pdf}, abstract = {With Aspect-Oriented Programming (AOP) a new type of system units is introduced (aspects). One observed characteristic of AOP is that it results in a large number of additional (coarse-grained to fine-grained) system units (aspects) ready to be composed to the final application. With this growing number of system units the dependencies between them become vast and tangling. This results in the necessity of an improved management of the dependencies between these system units. Our paper investigates this problem, proposes a more general model (version model) to capture different facettes of AOP as well as a partial solution towards unit consistency based on versions.} } @inproceedings{hanenberg:gcse01, crossref = {:gcse01}, title = {An Object Model for General-Purpose Aspect Languages}, author = {Stefan Hanenberg and Boris Bachmendo and Rainer Unland}, pages = {80--91}, url = {http://net.objectdays.org/pdf/01/papers/2186/21860080.pdf}, abstract = {Aspect-Oriented Programming on the one hand supports a separate treatment of different concerns in software development. On the other hand it provides ``weaving'' technologies for knitting together such individual concerns in software systems. Since the aspect-oriented approach is an extension of the classical OO-paradigm it requires an enhancement of well-known language constructs on the meta level. Although some general-purpose aspect languages (GPAL) are available in the meantime, no commonly accepted object model has yet been proposed. Consequently a common terminology is still not available what substantially hinders the spread of good and useful concepts. This paper proposes an object model, which represents the foundation of the GPAL Sally. We compare our model in respect to AspectJ which is by far the most popular and well-established aspect language and, therefore used by a wide community.} } @inproceedings{hirschfeld:nod02, crossref = {:nod02}, title = {Aspect-Oriented Programming with {AspectS}}, author = {Robert Hirschfeld}, url = {http://net.objectdays.org/pdf/02/papers/node/0217.pdf}, abstract = {AspectS is an approach to general-purpose aspect-oriented programming in the Squeak/Smalltalk environment. Based on concepts of AspectJ it extends the Smalltalk MOP to accommodate the aspect modularity mechanism. In contrast to systems like AspectJ, weaving and unweaving in AspectS happens dynamically at runtime, on-demand, employing metaobject composition. Instead of introducing new language constructs, AspectS utilizes the expressiveness of Smalltalk itself as a pointcut language.} } @inproceedings{loughran:nod02, crossref = {:nod02}, title = {Relational Database Support for Aspect-Oriented Programming}, author = {Neil Loughran and Awais Rashid}, url = {http://net.objectdays.org/pdf/02/papers/node/0234.pdf}, abstract = {Code repositories play a central role in the reuse and mining of existing assets when engineering large, complex software systems. It is, therefore, essential that database support be extended to new programming paradigms as and when they emerge. This paper proposes an approach to support the storage, reuse and mining of aspects - constructs used in Aspect-Oriented Programming (AOP) to separate crosscutting concerns - in AspectJ (an aspect language for Java) using a relational database. The approach is based on mapping an aspect's anatomy to the relational model hence allowing fine-grained queries to be composed. This results in greater flexibility during search and retrieval in contrast with most existing code repositories which store the code as BLObs comple-mented by meta-data about the code.} } @inproceedings{herrmann:nod02, crossref = {:nod02}, title = {Object Teams: {Improving} Modularity for Crosscutting Collaborations}, author = {Stephan Herrmann}, url = {http://net.objectdays.org/pdf/02/papers/node/0249.pdf}, abstract = {In this paper, we investigate whether module concepts for capturing multiobject collaborations can effectively be used to implement crosscutting concerns in reusable, independently developed modules for a-posteriori integration into existing systems. To address the shortcomings that we identify, a new kind of collaboration module, called Object Teams, is proposed, which combines the best features of existing approaches, further advances them with concepts for expressing crosscutting relations between independent collaborations, and facilitates a-posteriori integration of such collaborations into existing systems.} } @inproceedings{mcreynolds:src99, author = {David L. McReynolds and Sheryl L. Duggins and Doreen L. Galli and John H. Mayer}, title = {Distributed Characteristics of Subject Oriented Programming: {An} Evaluation with the Process and Object Paradigms}, booktitle = {Proceedings of the 37th Annual Southeast Regional Conference (CD-ROM)}, year = 1999, isbn = {1-58113-128-3}, pages = {19}, publisher = {ACM Press}, abstract = {The process paradigm, the object-oriented paradigm and the subject paradigm offer three different approaches to programming. In this paper, each model is evaluated by employing a 10-point criterion. Subject-oriented programming represents an approach to distributed programming in the large and is an attempt to decentralize development. The technology utilizes `class' composition as opposed to `object' composition in implementations of the delegation pattern. Class implementers employ classic objectoriented methodologies while at a higher level decisions are made as to how classes will be combined from several different implementations. While it is easier to form these compositions during initial development, source availability is not a requirement. This facilitates the extension of existing applications. In this paper, we conclude that the subject paradigm is equal to the process paradigm in most regards and may offer certain advantages over the object-oriented paradigm in a distributed environment.} } @article{tarr:sen01, author = {Peri Tarr and William Harrison and Harold Ossher and Anthony Finkelstein and Bashar Nuseibeh and Dewayne Perry}, title = {Workshop on multi-dimensional separation of concerns in software engineering}, journal = {ACM SIGSOFT Software Engineering Notes}, volume = {26}, number = {1}, year = 2001, issn = {0163-5948}, pages = {78--81}, doi = {http://doi.acm.org/10.1145/505894.505912}, publisher = {ACM Press}, abstract = {Separation of concerns has been central to software engineering for decades, yet its many advantages are still not fully realized. A key reason is that traditional modularization mechanisms do not allow simultaneous decomposition according to multiple kinds of (overlapping and interacting) concerns. This workshop was intended to bring together researchers working on more advanced modularization mechanisms, and practitioners who have experienced the need for them, as a step towards a common understanding of the issues, problems and research challenges.} } @inproceedings{harrison:fse00, author = {William Harrison and Harold Ossher and Peri Tarr}, title = {Software Engineering Tools and Environments: {A} Roadmap}, booktitle = {Conf. Future of Software Engineering}, year = 2000, isbn = {1-58113-253-0}, pages = {261--277}, city = {Limerick, Ireland}, doi = {http://doi.acm.org/10.1145/336512.336569}, publisher = acm, abstract = {Tools and environments to aid developers in producing software have existed, in one form or another, since the early days of computer programming. They are becoming increasingly crucial as the demand for software increases, time-to-market decreases, and diversity and complexity grow beyond anything imagined a few decades ago. In this paper, we briefly review some of the history of tools and environments in software engineering, and then discuss some key challenges that we believe the field faces over the next decade.} } @inproceedings{avdicausevic:sac02, author = {Enis {Avdi{\u c}au{\v s}evi\'c} and Marjan {Mernik} and Mitja {Leni{\v c}} and Viljem {{\v Z}umer}}, title = {Experimental aspect-oriented language---{AspectCOOL}}, booktitle = {Proceedings of the 2002 ACM Symposium on Applied Computing}, year = 2002, isbn = {1-58113-445-2}, pages = {943--947}, location = {Madrid, Spain}, doi = {http://doi.acm.org/10.1145/508791.508974}, publisher = {ACM Press}, abstract = {Aspect-oriented programming (AOP) is a programming technique for modularizing concerns that crosscut the basic functionality of programs. In AOP, aspect languages are used to describe properties, which crosscut basic functionality, in a clean and a modular way. AOP is currently supported mostly by aspect weavers, which require a source code for both components and aspects in order to create the final program. In this paper we have presented our approach to aspect weaving in order to achieve separate compilation. This approach to aspect weaving is used in the languages COOL and AspectCOOL, which are also presented in the paper. With this approach it is possible to apply aspects on already compiled components.} } @article{583971, author = {Enis {Avdi{\u c}au{\v s}evi\'c} and Mitja {Leni\v{c}} and Marjan Mernik and Viljem {{\v Z}umer}}, title = {{AspectCOOL}: {An} experiment in design and implementation of aspect-oriented language}, journal = {SIGPLAN Not.}, volume = {36}, number = {12}, year = 2001, issn = {0362-1340}, pages = {84--94}, doi = {http://doi.acm.org/10.1145/583960.583971}, publisher = {ACM Press}, } @article{dolog:sigplan01, author = {Peter Dolog and Valentino {Vrani\'c} and M\'aria {Bielikov\'a}}, title = {Representing change by aspect}, journal = {SIGPLAN Not.}, volume = {36}, number = {12}, year = 2001, issn = {0362-1340}, pages = {77--83}, doi = {http://doi.acm.org/10.1145/583960.583970}, publisher = {ACM Press}, } @inproceedings{mens:pse02, author = {Kim Mens and Tom Mens and Michel Wermelinger}, title = {Supporting software evolution with intentional software views}, booktitle = {Proceedings of the Workshop on Principles of Software Evolution}, year = 2002, isbn = {1-58113-545-9}, pages = {138--142}, location = {Orlando, Florida}, doi = {http://doi.acm.org/10.1145/512035.512068}, publisher = {ACM Press}, abstract = {Maintaining and evolving large software systems is hard. One underlying cause is that existing modularisation mechanisms are inadequate to handle crosscutting concerns. We propose intentional software views as an intuitive and lightweight means of modelling such concerns. They increase our ability to understand, modularise and browse the implementation by grouping together source-code entities that address a same concern. Alternative descriptions of the same intentional view can be provided and checked for consistency. In addition, the model supports the declaration, verification and enforcement of relations among intentional views. This facilitates software evolution by providing the ability to detect invalidation of important intentional relationships among concerns when the software is modified.} } @inproceedings{kamiya:pse02, author = {Toshihiro Kamiya}, title = {{SOMA}: {A} paradigm to evolve software based on separation of concerns}, booktitle = {Proceedings of the Workshop on Principles of Software Evolution}, year = 2002, isbn = {1-58113-545-9}, pages = {124--128}, location = {Orlando, Florida}, doi = {http://doi.acm.org/10.1145/512035.512065}, publisher = {ACM Press}, abstract = {Object-oriented paradigm is widely adopted in software development, but it has its own problem to make such software evolution difficult. In this paper, I will propose a new paradigm named SOMA (solid object and medium artifact) as a variation of OO paradigm, which enables dynamic and robust evolution of software products. Operations to modify software structure are explained, which enable developers and users to evolve software product through its life cycle. Brief comparison to the other approaches will reveal the pros and cons of SOMA paradigm as evolution methods. Currently, SOMA paradigm has no supportive implementation yet and waiting for detailed formalization.} } @inproceedings{gacek:ssr01, author = {Critina Gacek and Michalis Anastasopoules}, title = {Implementing Product Line Variabilities}, booktitle = {Proceedings of 2001 Symposium on Software Reusability : Putting Software Reuse in Context}, year = 2001, isbn = {1-58113-358-8}, pages = {109--117}, location = {Toronto, Ontario, Canada}, doi = {http://doi.acm.org/10.1145/375212.375269}, publisher = {ACM Press}, abstract = {Software product lines have numerous members. Thus, a product line infrastructure must cover various systems. This is the significant difference to usual software systems and the reason for additional requirements on the various assets present during software product line engineering. It is imperative that they support the description of the product line as a whole, as well as its instantiation for the derivation of individual products. Literature has already addressed how to create and instantiate generic product line assets, such as domain models and architectures to generate instance specific ones [1, 2, 3], yet little attention has been given on how to actually deal with this genericity at the code level. This paper addresses the issue of handling product line variability at the code level. To this end various implementation approaches are examined with respect to their use in a product line context.} } @inproceedings{netinant:add-oopsla00, author = {P. Netinant and C. A. Constantinides and T. Elrad and M. E. Fayad}, title = {Aspect-oriented frameworks (poster session): {The} design of adaptable operating systems}, booktitle = {Addendum to the 2000 proceedings of the conference on Object-oriented programming, systems, languages, and applications (Addendum)}, year = 2000, isbn = {1-58113-307-3}, pages = {61--62}, location = {Minneapolis, Minnesota, United States}, doi = {http://doi.acm.org/10.1145/367845.367937}, publisher = {ACM Press}, abstract = {With software systems such as operating systems, the interaction of their components becomes more complex. This interaction may limit reusability, adaptability, and make it difficult to validate the design and correctness of the system. As a result, re-engineering of these systems might be inevitable to meet future requirements. There is a general feeling that OOP promotes reuse and expandability by its very nature. This is a misconception as none of these issues is enforced. Rather, a software system must be specifically designed for reuse, expandability, and adaptability [4]. Operating systems are dominated in many aspects. Supporting separation of concerns and aspectual decomposition in the design of operating systems provides a number of benefits such as reusability, expandability, adaptability and reconfigurability. However, such support is difficult to accomplish. Aspect-Oriented Programming (AOP) [7] is a paradigm proposal that aims at separating components and aspects from the early stages of the software life cycle, and combines them together at the implementation phase. Besides, Aspect-Oriented Programming promotes the separation of the different aspects of components in the system into their natural form. However, Aspect-Oriented software engineering can be supported well if there is an operating system, which is built based on an aspect-oriented design. Therefore aspects can be created in applications, reused and adapted from the aspects provided by the operating systems. Object-Oriented Operating Systems treat aspects, components, and layers as a two dimensional models, which is not a good design model. Aspects in the operating system cannot be captured in the design and implementation. Two-dimensional models lead to inflexibility, limit possibilities for reuse and adaptability, and make it hard to understand and modify. The poster will show an Aspect-Oriented Framework [1, 8], which simplifies system design by expressing its design at a higher level of abstraction, for supporting the design of adaptable operating systems. A framework is more than a class hierarchy and it is a reusable to produce custom systems and applications [5]. Aspect-Oriented Framework is based on a three-dimensional design that consists of components, aspects, and layers.} } @inproceedings{kiczales:esec01, author = {Gregor Kiczales and Erik Hilsdale}, title = {Aspect-oriented programming}, booktitle = {Proceedings of the 8th European Software Engineering Conference held jointly with 9th Acm Sigsoft Symposium on Foundations of Software Engineering}, year = 2001, isbn = {1-58113-390-1}, pages = {313}, location = {Vienna, Austria}, doi = {http://doi.acm.org/10.1145/503209.503260}, publisher = {ACM Press}, abstract = {Aspect-oriented programming (AOP) is a technique for improving separation of concerns in software design and implementation. AOP works by providing explicit mechanisms for capturing the structure of crosscutting concerns. This tutorial shows how to use AOP to implement crosscutting conerns in a concise modular way. It works with AspectJ, a seamless aspect-oriented extension to the Java(tm) programming language, and with AspectC, an aspect-oriented extension to C in the style of AspectJ. It also includes a description of their underlying model, in terms of which a wide range of AOP languages can be understood.} } @inproceedings{gray:icse01, author = {Jeff Gray}, title = {Using software component generators to construct a meta-weaver framework}, booktitle = {Proceedings of the 23rd International Conference on Software Engineering}, year = 2001, isbn = {0-7695-1050-7}, pages = {789--790}, location = {Toronto, Ontario, Canada}, publisher = {IEEE Computer Society}, abstract = {Several new modularity technologies have been proposed that improve separation of concerns in programming languages. The initial efforts to demonstrate these technologies are usually focused on a single programming language. Since we live in a polyglot world, this proposal addresses the goal of being able to take these new powerful technologies to other languages. The approach uses software generators that create new ``weavers'' from meta-specifications of programming languages.} } @inproceedings{wohlstadter:pse02, author = {Eric Wohlstadter and Brian Toone and Prem Devanbu}, title = {A framework for flexible evolution in distributed heterogeneous systems}, booktitle = {Proceedings of the Workshop on Principles of Software Evolution}, year = 2002, isbn = {1-58113-545-9}, pages = {39--42}, location = {Orlando, Florida}, doi = {http://doi.acm.org/10.1145/512035.512045}, publisher = {ACM Press}, abstract = {Distributed, heterogeneous systems are becoming very common, as globalized organizations integrate applications running on different platforms, possibly written in different languages. Certain requirements for such features as security, QoS, and flexible administration are specially critical to distributed heterogeneous systems. Unfortunately, such requirements are often formulated late, since they depend upon a particular installation, and/or change rapidly with business and political climate. Distributed, heterogeneous systems are particularly difficult to evolve, since the elements are written in different languages, and the operational environment is heterogeneous and distributed.We would like to address this problem with solutions that are animated by practical software engineering goals: type safety of scattered changes, and their interactions; explicit design models, with traceability to code; and inter-operability with legacy components and binary COTS components.} } @inproceedings{constantinides:add-oopsla00, author = {Constantinos A. Constantinides and Tzilla Elrad}, title = {Towards a two-dimensional separation of concerns (poster session)}, booktitle = {Addendum to the 2000 proceedings of the conference on Object-oriented programming, systems, languages, and applications (Addendum)}, year = 2000, isbn = {1-58113-307-3}, pages = {63--64}, location = {Minneapolis, Minnesota, United States}, doi = {http://doi.acm.org/10.1145/367845.367938}, publisher = {ACM Press}, abstract = {As the size and requirements of software systems increase, their design has reached a complexity that requires software engineers to revisit the principle of separation of concerns [5]. Traditional software organization has been performed along some form of functional decomposition. Different paradigms and languages support the implementation, and composition of sub-parts into whole systems through the availability of some modular unit of functionality (component). In essence, traditional software decomposition and current programming languages have been mutually supportive [4]. At the same time, separation of concerns can only be beneficial if the different concerns can be effectively composed to produce the overall system. The OOP paradigm seems to work well only if the problem to be solved can be described with relatively simple interfaces among objects. Unfortunately, this is not the case when we move from sequential programming to concurrent programming where the component interaction violates simple object interfaces. One of the reasons behind this is the inherent structure of today's software systems that conceptually does not lead itself to a safe decomposition. As a result, the benefits associated with OOP no longer hold. Component interactions limit reuse and make it difficult to validate the design and correctness of software systems. Reengineering of these systems is needed in order to meet future changes in requirements. This component interaction is based on a number of properties that affect the semantics or the performance of the system and do not localize well in one modular unit, but tend to cut-across groups of components resulting in a ``code tangling'' [4]. Example cross-cutting properties (or aspects) include synchronization, scheduling, and fault tolerance. This code tangling destroys modularity, making the source code difficult to develop and difficult to understand. It also limits reuse, making the source code difficult to evolve. It further makes programs more error prone. In essence, it destroys the quality of the software. In [1] the authors refer to these phenomena as ``composition anomalies''. This composition anomaly requires a shift in the methodologies used to separate concerns. In conjunction with modular composition, adaptability and reuse remain major issues to be considered while building complex software systems. Aspect-Oriented Programming (AOP) [4] is an emerging methodology that addresses components and aspects at the analysis and design phase of the software life-cycle, using mechanisms to compose them at the implementation level with a growing number of different technologies.} } @article{raje:acr01, author = {Rajeev R. Raje and Ming Zhong and Tongyu Wang}, title = {Case study: {A} distributed concurrent system with {AspectJ}}, journal = {ACM SIGAPP Applied Computing Review}, volume = {9}, number = {2}, year = 2001, pages = {17--23}, doi = {http://doi.acm.org/10.1145/512000.512004}, publisher = {ACM Press}, abstract = {This paper presents a simple three-tier client/server application using two prototypes. The first prototype makes the use of a traditional OOP language, Java. The second prototype uses the Aspect-Oriented Programming (AOP) language AspectJ. The advantages and disadvantages of developing a concurrent system using the AOP paradigm are evaluated, as well as the potential of the AOP paradigm.} } @inproceedings{coady:esec01, author = {Yvonne Coady and Gregor Kiczales and Mike Feeley and Greg Smolyn}, title = {Using {AspectC} to improve the modularity of path-specific customization in operating system code}, booktitle = {Proceedings of the 8th European Software Engineering Conference held jointly with 9th ACM SIGSOFT Symposium on Foundations of Software Engineering}, year = 2001, isbn = {1-58113-390-1}, pages = {88--98}, location = {Vienna}, doi = {http://doi.acm.org/10.1145/503209.503223}, publisher = {ACM Press}, abstract = {Layered architecture in operating system code is often compromised by execution path-specific customizations such as prefetching, page replacement and scheduling strategies. Path-specific customizations are difficult to modularize in a layered architecture because they involve dynamic context passing and layer violations. Effectively they are vertically integrated slices through the layers. An initial experiment using an aspect-oriented programming language to refactor prefetching in the FreeBSD operating system kernal shows significant benefits, including easy (un)pluggability of prefetching modes, independent development of prefetching modes, and overall improved comprehensibility.} } @inproceedings{grundy:sre99, author = {John Grundy}, title = {Aspect-oriented Requirements Engineering for Component-based Software Systems}, booktitle = {4th IEEE International Symposium on Requirements Engineering}, publisher = {IEEE Computer Society}, location = {Limerick, Ireland}, year = 1999, pages = {84-91} } @inproceedings{moreira:seke02, author = {Ana Moreira and {Jo\tildacc{a}o} {Ara\'ujo} and Isabel Brito}, title = {Crosscutting quality attributes for requirements engineering}, booktitle = {Proceedings of the 14th International Conference on Software Engineering and Knowledge Engineering}, year = 2002, isbn = {1-58113-556-4}, pages = {167--174}, location = {Ischia, Italy}, doi = {http://doi.acm.org/10.1145/568760.568790}, publisher = {ACM Press}, abstract = {Quality attributes are usually integrated with functional requirements at the later stages of the software development process. One of the reasons is that the current approaches fail in dealing with the crosscutting nature of some of those attributes, i.e. it is difficult to represent clearly how these attributes can affect several requirements simultaneously. Since this integration is not supported from requirements to the implementation, some of the software engineering principles, such as abstraction, localization, modularisation, uniformity and reusability, can be compromised. What we propose is a model to identify and specify quality attributes that crosscut requirements including their systematic integration into the functional description at an early stage of the software development process, i.e. at the requirements stage.} } @inproceedings{kendall:oopsla99, author = {Elizabeth A. Kendall}, title = {Role model designs and implementations with aspect-oriented programming}, booktitle = {Proceedings of the 1999 ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications}, year = 1999, isbn = {1-58113-238-7}, pages = {353--369}, location = {Denver}, doi = {http://doi.acm.org/10.1145/320384.320423}, publisher = {ACM Press}, } @inproceedings{griswold:icse01, author = {William G. Griswold and Jimmy J. Yuan and Yoshikiyo Kato}, title = {Exploiting the map metaphor in a tool for software evolution}, booktitle = {Proceedings of the 23rd international conference on Software engineering}, year = 2001, isbn = {0-7695-1050-7}, pages = {265--274}, location = {Toronto}, publisher = {IEEE Computer Society} } @inproceedings{zhao:wpc02, author = {Jianjun Zhao}, title = {Slicing Aspect-Oriented Software}, booktitle = {Proc. 10th IEEE International Workshop on Program Comprehension}, location = {Paris}, month = jun, year = 2002, pages = {251-260} } @inproceedings{zhao:icse02, author = {Jianjun Zhao}, title = {Change impact analysis for aspect-oriented software evolution}, booktitle = {Proceedings of the Workshop on Principles of Software Evolution}, year = 2002, isbn = {1-58113-545-9}, pages = {108--112}, location = {Orlando, Florida}, doi = {http://doi.acm.org/10.1145/512035.512060}, publisher = {ACM Press}, abstract = {Chang impact analysis is an useful technique for software evolution. Many techniques have been proposed for supporting change impact analysis of procedural or object-oriented software, but no effort has been made for change impact analysis of aspect-oriented software. In this paper, we present an approach to supporting change impact analysis of aspect-oriented software based on program slicing technique. The main feature of our approach is to assess the effect of changes in an aspect-oriented program by analyzing its source code, and therefore, the process of change impact analysis can be automated completely.} } @inproceedings{li:ase02, author = {Harry C. Li and Shriram Krishnamurthi and Kathi Fisler}, title = {Interfaces for Modular Feature Verification}, pages = {195--204}, location = {Edinburgh}, month = sep, year = 2002, booktitle = {Proc. 17th IEEE Int'l Conf. on Automated Software Engineering} } @inproceedings{batory:ase02, author = {Don Batory and Robert E. Lopez-Herrejon and Jean-Philippe Martin}, title = {Generating Product-Lines of Product-Families}, pages = {81--92}, location = {Edinburgh}, month = sep, year = 2002, booktitle = {Proc. 17th IEEE Int'l Conf. on Automated Software Engineering} } @inproceedings{:ase-dmp02, booktitle = {Proc. Workshop on Declarative Meta Programming to Support Software Development}, editor = {Kris {De Volder} and Kim Mens and Tom Mens and Roel Wuyts}, author = {Robert E. Filman and Klaus Havelund}, title = {Realising Aspects by Transforming for Events}, location = {Edinburgh}, month = sep, year = 2002, url = {http://www.cs.ubc.ca/{\tilde}kdvolder/Workshops/ASE2002/DMP/papers/09filman-havelund-events.pdf}, http = {http://www.cs.ubc.ca/~kdvolder/Workshops/ASE2002/DMP/papers/09filman-havelund-events.pdf} } @inproceedings{richardson:sigmod91, author = {Joel Richardson and Peter Schwarz}, title = {Aspects: {Extending} objects to support multiple, independent roles}, booktitle = {Proceedings of the 1991 ACM SIGMOD International Conference on Management of Data}, year = 1991, isbn = {0-89791-425-2}, pages = {298--307}, location = {Denver}, doi = {http://doi.acm.org/10.1145/115790.115839}, publisher = {ACM Press}, abstract = {The type systems of most object-oriented database systems (00DBSs) descend from traditional object-oriented programming langunages. While these systems can capture many interesting relationships among entities, such as classification and subtyping, they do not typically allow an object to change type, and they only partially support the modelling of objects that have many types. However, such characteristics are particularly common among the very entities (e. g., people) that these systems are intended to model. We introduce aspects, a new mechanism designed to meet these modelling requirements within the framework of a strongly-typed 00DBS. An aspect extends an existing object with new state and new behavior while maintaining the same object identity. In addition to the modelling of roles, aspects have other interesting applications, such as encapsulating the result of a query.} } @incollection{dewin:isgii00, author = {B. {De Win} and van den Bergh, J. and F. Matthijs and B. {De Decker} and W. Joosen}, title = {A Security Architecture for Electronic Commerce Applications}, booktitle = {Information Security for Global Information Infrastructures}, editor = {S. Qing and J. Eloff}, publisher = kluwer, year = 2000, pages = {491-500}, url = {http://www.cs.kuleuven.ac.be/{\tilde}bartd/publications.html}, http = {http://www.cs.kuleuven.ac.be/~bartd/publications.html}, } @inproceedings{spinczyk:icotp02, author = {Olaf Spinczyk and Andreas Gal and Wolfgang {Schr\"oder-Preikschat}}, title = {{AspectC++}: {An} aspect-oriented extension to the {C++} programming language}, booktitle = {Proceedings of the Fortieth International Conference on Tools Pacific}, year = 2002, isbn = {0-909925-88-7}, pages = {53--60}, location = {Sydney, Australia}, publisher = {Australian Computer Society, Inc.}, keywords = {C++, aspect-oriented programming}, abstract = {Small embedded systems are forced to operate under extreme resource constraints. At the same time these systems are very complex and many concerns in the implementation of such systems are of highly crosscutting nature. The concept of aspect orientation can be applied to allow a modular implementation of these concerns. With AspectJ the first complete and powerful language extension for aspect-oriented programming (AOP) has been created. However, the costs of the Java run-time environment are not feasible for most embedded applications.This paper presents AspectC++ (Gal \& Spinczyk 2001), a new language extension to C/C++ that provides powerful language elements to facilitate aspect-oriented programming even in domains with tight resource limitations.} } @inproceedings{hunleth:lctes02, author = {Frank Hunleth and Ron K. Cytron}, title = {Footprint and feature management using aspect-oriented programming techniques}, booktitle = {Proceedings of the Joint Conference on Languages, Compilers and Tools for Embedded Systems}, year = 2002, isbn = {1-58113-527-0}, pages = {38--45}, location = {Berlin, Germany}, doi = {http://doi.acm.org/10.1145/513829.513838}, publisher = {ACM Press}, abstract = {Applications accrue features in response to the needs of all users, yet the associated code bloating and performance loss often render an application unsuitable for some users, particularly those interested in using the application in an embedded system. As a result, developers are often faced with either reinventing pieces of an application, custom tailored to their needs, or they are faced with the daunting task of refactoring an existing application to obtain an appropriate subset of that application's functionality. In either case, subsequent development, maintenance and testing of the application becomes more complex, due to the effects of future revisions on all of the derived subsets.In this paper, we report on our experience in obtaining subsets of an application's functionality, using a relatively new programming-language paradigm and tool to achieve the subsets compositionally. Instead of refactoring a large, feature-rich application, a feature can be added by including that feature's aspect in the set provided to an aspect compiler. In particular, a minimal, base implementation was developed in Java and features were added by supplying the appropriate advice to an AspectJ compiler. We describe our approach and present footprint and performance results for automatically derived subsets of an event channel.} } @article{dewin:informatica01, title = {How aspect-oriented programming can help to build secure software}, author = {Bart {De Win} and Bart Vanhaute and Bart {De Decker}}, journal = {Informatica}, volume = 26, number = 2, year = 2001, pages = {141--149}, keywords = {aspect-oriented programming, security, separation of concerns}, abstract = {Since many applications are too complex to be designed in a straightforward way, mechanisms are being developed to deal with different concerns separately. An interesting case of this separation is security. The implementation of security mechanisms often interacts or even interferes with the core functionality of the application. This results in tangled, unmanageable code with a higher risk of security bugs. Aspect-oriented programming promises to tackle this problem by offering several abstractions that help to reason about and specify the concerns one at a time. In this paper we make use of this approach to introduce security into an application. By means of the example of access control, we investigate how well the state of the art in aspect-oriented programming can deal with separating security concerns from an application. We also discuss the benefits and drawbacks of this approach, and how it relates to similar techniques.} } @book{bassett:fsr96, author = {Paul G. Bassett}, title = {Framing Software Reuse: {Lessons} From the Real World}, publisher = {Prentice Hall PTR}, isbn = {013327859X}, address = {Englewood Cliffs, New Jersey}, year = 1996 } @inproceedings{vanderburg:oopsla-sa01, author = {Glenn Vanderburg}, title = {Position Paper}, booktitle = {OOPSLA 2001 Software Archaeology Workshop}, location = {Tampa}, month = oct, year = 2001, url = {http://www.visibleworkings.com/archeology/vandenburg.htm}, } @article{constantinides:spe02, author = {Constantinos A. Constantinides and Tzilla Elrad and Mohamed Fayad}, title = {Extending the object model to provide explicit support for crosscutting concerns}, journal = spe, volume = 32, number = 7, pages = {703-734}, month = may, year = 2002 } @inproceedings{elrad:gpce02, author = {Tzilla Elrad and Omar Aldawud and Atef Bader}, title = {Aspect-Oriented Modeling: {Bridging} the Gap between Implementation and Design}, booktitle = {ACM SIGPLAN/SIGSOFT Conference on Generative Programming and Component Engineering (GPCE'02)}, location = {Pittsburgh}, month = oct, year = 2002 } @techreport{ossher:mdsoc99, author = {H. Ossher and P. Tarr}, title = {Multi-Dimensional Separation of Concerns using {Hyperspaces}}, url = {http://www.research.ibm.com/hyperspace/Papers/tr21452.ps}, institution = {IBM Research Report}, number = {21452}, month = apr, year = 1999 } @incollection{aksit:sact01, crossref = {:sact01}, author = {M. {Ak\c sit} and L. Bergmans}, title = {Guidelines for Identifying Obstacles when Composing Distributed Systems from Components}, pages = {29--56} } @incollection{bergmans:sact01, crossref = {:sact01}, author = {L. Bergmans and M. {Ak\c sit} and B. {Tekinerdo{\u g}an}}, title = {Aspect Composition Using Composition Filters}, pages = {357--382} } @inproceedings{noutash:ecoop-qos00, author = {A. Noutash and van Sinderen, M and M. {Ak\c sit} and L. Bergmans}, title = {{QoS} Provisioning in {CORBA} by Introducing Aspect-Oriented Transport Reflection Point}, booktitle = {ECOOP'2000 Workshop on Quality of Service}, month = jun, year = 2000, location = {Cannes} } @inproceedings{bergmans:rm00, author = {L. Bergmans and M. {Ak\c sit}}, title = {Aspects and Crosscutting in Layered Middleware Systems}, booktitle = {RM2000 Workshop in Reflective Middleware}, location = {IBM Palisades Executive Conference Center, New York}, month = apr, year = 2000 } @inproceedings{aksit:ecoop-oot98, author = {M. {Ak\c sit} and B. {Tekinerdo{\u g}an}}, title = {Aspect-Oriented Programming Using Composition Filters}, booktitle = {Object-Oriented Technology, ECOOP'98 Workshop Reader}, publisher = {Springer Verlag}, editor = {S. Demeyer and J. Bosch}, pages = {435}, month = jul, year = 1998 } @inproceedings{aksit:mcseai98, author = {M. {Ak\c sit} and L. Bergmans}, title = {Examples of Reusing Synchronization Code in Aspect-Oriented Programming using Composition-Filters}, booktitle = {Proc. 5th. Maghrebian Conf. Software Engineering and Artificial Intelligence (MCSEAI'98)}, pages = {257-272}, location = {Tunis}, month = dec, year = 1998, url = {http://trese.cs.utwente.nl/publications/paperinfo/mcseai98.pi.top.htm} } @article{aksit:xootic97, author = {M. {Ak\c sit} and B. {Tekinerdo{\u g}an}}, title = {Component Composability Issues in Object-Oriented Programming}, journal = {XOOTIC Magazine}, volume = 5, number = 2, pages = {15-20}, month = dec, year = 1997 } @inproceedings{aksit:stja97, author = {M. {Ak\c sit} and B. {Tekinerdo{\u g}an}}, title = {Reusing and Composing Components: {Problems} and Solutions}, booktitle = {Proc. {Smalltalk} und {Java} in {Industrie} und {Ausbildung} 97 (STJA 97)}, location = {Erfurt, Germany}, month = sep, year = 1997 } @inproceedings{aksit:pds97, author = {M. {Ak\c sit} and L. Bergmans}, title = {Composing Multiple-Client--Multiple-Server Synchronizations}, booktitle = {Proc. IEEE Joint Workshop on Parallel and Distributed Systems}, pages = {269-282}, month = apr, year = 1997, url = {http://trese.cs.utwente.nl/publications/paperinfo/multiplesync.pi.top.htm} } @incollection{aksit:sioop96, author = {M. {Ak\c sit} and B. {Tekinerdo{\u g}an} and L. Bergmans}, title = {Achieving Adaptability through Separation and Composition of Concerns}, booktitle = {Special Issues in Object-Oriented Programming}, editor = {M. Muhlhauser}, publisher = {dpunkt verlag}, pages = {12-23}, year = 1996, url = {http://trese.cs.utwente.nl/publications/paperinfo/sioop96.pi.top.htm} } @article{bergmans:pdc96, author = {L. Bergmans and M. {Ak\c sit}}, title = {Composing Synchronisation and Real-Time Constraints}, journal = {Journal of Parallel and Distributed Computing}, volume = 36, pages = {32-52}, year = 1996, url = {http://trese.cs.utwente.nl/publications/paperinfo/compsyncandrt.pi.top.htm} } @inproceedings{tekinerdogan:sioop96, author = {B. {Tekinerdo{\u g}an} and M. {Ak\c sit}}, title = {Adaptability in Object-Oriented Development}, booktitle = {Special Issues in Object-Oriented Programming}, editor = {M. Muhlhauser}, pages = {7-11}, year = 1996, url = {http://trese.cs.utwente.nl/publications/paperinfo/sioop96aiood.pi.top.htm} } @article{aksit:csur96, author = {M. {Ak\c sit}}, title = {Composition and separation of concerns in the object-oriented model}, journal = surveys, volume = {28A}, number = 4, year = 1996 } @techreport{koopmans:sina95, author = {P. Koopmans}, title = {Sina user's guide and reference manual}, institution = {Dept. of Computer Science, University of Twente}, year = 1995, url = {http://trese.cs.utwente.nl/publications/paperinfo/sinaUserguide.pi.top.htm} } @techreport{bergmans:cfom94, author = {L. Bergmans}, title = {The Composition Filters Object Model}, institution = {Dept. of Computer Science, University of Twente}, year = 1994, url = {http://trese.cs.utwente.nl/publications/paperinfo/cf.pi.top.htm} } @inproceedings{aksit:ecoop94, author = {M. {Ak\c sit} and J. Bosch and W. v. d. Sterren and L. Bergmans}, title = {Real-Time Specification Inheritance Anomalies and Real-Time Filters}, pages = {386-407}, url = {http://trese.cs.utwente.nl/publications/paperinfo/RTSpecifications.pi.top.htm}, crossref = {:ecoop94} } @phdthesis{bergmans:phd94, author = {L. Bergmans}, title = {Composing Concurrent Objects}, school = {University of Twente}, year = 1994, url = {http://trese.cs.utwente.nl/publications/paperinfo/bergmans.phd.pi.top.htm} } @incollection{aksit:obdp93, author = {M. {Ak\c sit} and K. Wakita and J. Bosch and L. Bergmans and A. Yonezawa}, title = {Abstracting Object-Interactions Using Composition-Filters}, booktitle = {Object-Based Distributed Processing}, editor = {R. Guerraoui and O. Nierstrasz and M. Riveill}, publisher = svlncs, pages = {152-184}, year = 1993, url = {http://trese.cs.utwente.nl/publications/paperinfo/AbstrObjIntUsingCF.pi.top.htm} } @inproceedings{aksit:ecoop92, author = {M. {Ak\c sit} and L. Bergmans and S. Vural}, title = {An Object-Oriented Language-Database Integration Model: {The} Composition-Filters Approach}, publisher = svlncs, booktitle = {Proc. 7th European Conf. Object-Oriented Programming}, pages = {372-395}, editor = {O. Lehrmann Madsen}, location = {Kaiserslautern}, year = 1992, url = {http://trese.cs.utwente.nl/publications/paperinfo/LanguageDbase.pi.top.htm} } @incollection{aksit:rtc92, author = {M. {Ak\c sit} and J. Bosch}, title = {Issues in Object-Oriented Real Time Language Design}, booktitle = {Real Time Computing}, editor = {W. Halang and A. Stoyenko}, publisher = {Springer Verlag Nato ASI Series}, pages = {510--511}, year = 1992 } @inproceedings{aksit:oopsla88, author = {Mehmet {Ak{\c s}it} and Anand Tripathi}, title = {Data abstraction mechanisms in {SINA/ST}}, booktitle = {3rd Conf. Object-oriented Programming, Systems, Languages, and Applications (OOPSLA)}, year = 1988, isbn = {0-89791-284-5}, pages = {267--275}, city = {San Diego}, doi = {http://doi.acm.org/10.1145/62083.62107}, publisher = acm, } @article{aksit:ieees91, author = {Mehmet {Ak{\c s}it} and Jan Willem Dijkstra and Anand Tripathi}, title = {Atomic Delegation: {Object}-Oriented Transactions}, journal = ieee-software, volume = {8}, number = {2}, year = 1991, issn = {0740-7459}, pages = {84--92}, doi = {http://dx.doi.org/10.1109/52.73753}, publisher = ieee, } @inproceedings{aitken:sr98, author = {W. Aitken and B. Dickens and P. Kwiatkowski and de Moor, O. and D. Richter and C. Simonyi}, title = {Transformation in Intentional Programming}, booktitle = {5th Int'l Conf. Software Reuse}, year = 1998, isbn = {0-8186-8377-5}, pages = {114--123}, publisher = ieee, } @inproceedings{aksit:oopsla92, author = {M. {Ak\c sit}}, title = {The Analysis and Design of Distributed Systems}, booktitle = {Addendum to the Proc. on Object-Oriented Programming Systems, Languages and Applications}, pages = {223}, location = {Vancouver}, year = 1992 } @inproceedings{bergmans:oopsla-tng92, author = {L. Bergmans and M. {Ak\c sit} and J. Bosch}, title = {Composition Filters: {Extended} Expressiveness for {OOPLs}}, booktitle = {OOPSLA'92 Workshop Object-Oriented Programming Languages: The Next Generation}, location = {Vancouver}, year = 1992 } @inproceedings{bergmans:ecoop-obcr92, author = {L. Bergmans and M. {Ak\c sit}}, title = {Reusability Problems in Object-Oriented Concurrent Programs}, booktitle = {Proc. ECOOP'92 Workshop Object-Based Concurrency and Reuse}, location = {Utrecht}, month = jun, year = 1992 } @inproceedings{bosch:oopsla-ootrt92, author = {J. Bosch and M. {Ak\c sit}}, title = {Composition-Filters Based Real-Time Programming}, booktitle = {OOPSLA'92 Workshop on Evaluation of Object-Oriented Technology in Real-Time Systems: Past, Present \& Future}, location = {Vancouver}, year = 1992 } @mastersthesis{wichman:ms99, author = {J. C. Wichman}, title = {The Development of a Preprocessor to Facilitate Composition Filters in the {Java} Language}, school = {University of Twente}, url = {http://trese.cs.utwente.nl/publications/paperinfo/wichman.thesis.pi.top.htm}, year = 1999 } @mastersthesis{koopmans:ms95, author = {P. Koopmans}, title = {On the design and realization of the Sina compiler}, school = {University of Twente}, url = {http://trese.cs.utwente.nl/publications/paperinfo/koopmans.thesis.pi.top.htm}, year = 1995 } @mastersthesis{glandrup:ms95, author = {M. Glandrup}, title = {Extending {C++} using the concepts of Composition Filters}, school = {University of Twente}, url = {http://trese.cs.utwente.nl/publications/paperinfo/glandrup.thesis.pi.top.htm}, year = 1995 } @book{lieberherr:demeter96, author = {Karl J. Lieberherr}, title = {Adaptive Object-Oriented Software: the Demeter Method with Propagation Patterns}, publisher = {PWS Publishing Company, Boston}, year = 1996, remark = {KL: 616 pages, ISBN 0-534-94602-X, entire book at www.ccs.neu.edu/research/demeter} } @inproceedings{lopes:ecoop94, author = {Cristina Videira Lopes and Karl J. Lieberherr}, title = {Abstracting Process-to-Function Relations in Concurrent Object-Oriented Applications}, pages = {81-99}, crossref = {:ecoop94}, remark = {KL: Predecessor of COOL and first version of AspectJ and aspect weaver in DemeterJ; adds synchronization patterns to propagation patterns; both synchronization and propagation patterns define aspects} } @inproceedings{lopes:wooos95, author = {Cristina Videira Lopes}, title = {Graph-based optimizations for parameter passing in remote invocations}, editor = {Luis-Felipe Cabrera and Marvin Theimer}, pages = {179-182}, booktitle = {4th Int'l Workshop on Object Orientation in Operating Systems}, year = 1995, publisher = {IEEE Computer Society Press}, location = {Lund, Sweden}, month = aug, annote = {IWOOOS'95, short version}, remark = {KL: predecessor of RIDL and first version of AspectJ (together with COOL)} } @techreport{hursch:separation95, author = {Walter L. {H\"ursch} and Cristina Videira Lopes}, title = {Separation of Concerns}, institution = {College of Computer Science, Northeastern University}, year = 1995, month = feb, number = {{NU-CCS-95-03}}, address = {Boston, MA}, abstract = {http://www.ccs.neu.edu/research/demeter/papers/publications-abstracts.html\#SEP-CONCERNS}, url = {ftp://www.ccs.neu.edu/pub/people/crista/papers/separation.ps}, remark = {KL: outlines the commonalities between composition filters, subject-oriented programming, open implementation, reflection, adaptive programming} } @inproceedings{lopes:isotas96, author = {Cristina Videira Lopes}, title = {Adaptive parameter passing}, booktitle = {2nd Int'l Symposium on Object Technologies for Advanced Software}, year = 1996, publisher = {Springer-Verlag}, location = {Kanazawa, Japan}, month = mar, pages = {118-136}, annote = {ISOTAS'96}, remark = {KL: predecessor of RIDL and first version of AspectJ together with COOL} } @inproceedings{lopes:reflection96, author = {Cristina Videira Lopes and Karl Lieberherr}, title = {{AP/S++}: {Case-study} of a {MOP} for purposes of software evolution}, editor = {G. Kiczales}, booktitle = {Reflection '96}, year = 1996, location = {San Francisco}, month = apr, remark = {KL: predecessor of DJ} } @article{lieberherr:tse93, author = {Karl J. Lieberherr and Cun Xiao}, title = {Object-Oriented Software Evolution}, journal = tose, year = 1993, pages = {313-343}, month = apr, volume = 19, number = 4, remark = {KL: in current AOP terminology: traversal specifications as introductions of traversal methods; wrappers as pointcuts and advice on traversal methods} } @article{lieberherr:ieeesoft89, author = {Karl J. Lieberherr and Ian Holland}, title = {Assuring Good Style for Object-Oriented Programs}, journal = ieee-software, year = 1989, month = sep, pages = {38-48}, remark = {KL: Law of Demeter paper: {Pointing} out that localizing some concerns may lead to maintenance problems} } @inproceedings{silva:sac92, author = {Ignacio {Silva-Lepe}}, title = {Abstracting Graph-Based Specifications of Object-Oriented Programs}, booktitle = sac, year = 1994, publisher = acm, pages = {447--451}, location = {Phoenix, Arizona}, remark = {KL: an early form of aspect mining for traversal-related aspects} } @inproceedings{holland:ecoop92, author = {Ian M. Holland}, title = {Specifying reusable components using contracts}, booktitle = ecoop, year = 1992, location = {Utrecht, Netherlands}, pages = {287-308}, publisher = {Springer Verlag Lecture Notes 615}, remark = {KL: in today's terminology: crosscutting collaborations = executable contracts} } @phdthesis{holland:phd93, author = {Ian M. Holland}, title = {The Design and Representation of Object-Oriented Components}, school = {Northeastern University}, year = 1993, remark = {KL: in today's terminology: crosscutting collaborations = executable contracts defining a set of introductions for a group of classes, no aspectual methods, Law of Demeter} } @article{seiter:tse98, author = {Linda M. Seiter and Jens Palsberg and Karl J. Lieberherr}, title = {Evolution of Object Behavior using Context Relations}, journal = tose, year = 1998, pages = {79-92}, month = jan, volume = 24, number = 1, remark = {KL: context objects are aspect objects that modify, e.g., the behavior of a method call} } @inproceedings{seiter:fse96, author = {Linda M. Seiter and Jens Palsberg and Karl J. Lieberherr}, title = {{Evolution of Object Behavior using Context Relations}}, booktitle = fse, year = 1996, location = {San Francisco}, pages = {46-57}, editor = {David Garlan}, publisher = {ACM Press (SIGSOFT)}, remark = {KL: context objects are aspect objects that modify, e.g., the behavior of a method call} } @article{palsberg:tapos96, author = {Jens Palsberg}, title = {Class-graph Inference for Adaptive Programs}, journal = tapos, year = 1997, pages = {75-85}, month = apr, volume = {3}, number = {2}, remark = {KL: in current AOP terminology: finding a minimum base program for testing a set of aspects} } @article{guerraoui:csur96, author = {Rachid Guerraoui}, title = {Strategic Research Directions in Object-Oriented Programming}, journal = surveys, year = 1996, pages = {691-700}, month = dec, volume = {28}, number = {4}, remark = {KL: introduces some of Gregor's AOP terminology} } @article{kiczales:csur96, author = {G. Kiczales}, title = {Aspect-oriented programming}, journal = surveys, volume = {28}, number = {4es}, year = 1996, issn = {0360-0300}, pages = {154}, doi = {http://doi.acm.org/10.1145/242224.242420}, publisher = {ACM Press}, } @article{palsberg:toplas95, author = {Jens Palsberg and Cun Xiao and Karl Lieberherr}, title = {Efficient implementation of adaptive software}, journal = {ACM Transactions on Programming Languages and Systems (TOPLAS)}, volume = {17}, number = {2}, year = 1995, issn = {0164-0925}, pages = {264--292}, doi = {http://doi.acm.org/10.1145/201059.201066}, publisher = {ACM Press}, remark = {KL: in current AOP terminology: formally defines how to translate traversal specifications into introductions for a group of classes; uses wrappers as aspects that modify traversals} } @inproceedings{palsberg:esp96, author = {Jens Palsberg and Boaz {Patt-Shamir} and Karl Lieberherr}, title = {A New Approach to Compiling Adaptive Programs}, booktitle = {European Symposium on Programming}, year = 1996, month = apr, location = {Linkoping, Sweden}, pages = {280-295}, editor = {Hanne Riis Nielson}, publisher = {Springer Verlag Lecture Notes in Computer Science 1058}, remark = {KL: in current AOP terminology: generalizes implementation technology for a group of collaborating introductions} } @article{palsberg:scp97, author = {Jens Palsberg and Boaz {Patt-Shamir} and Karl Lieberherr}, title = {A New Approach to Compiling Adaptive Programs}, journal = {Science of Computer Programming}, year = 1997, pages = {303-326}, volume = 29, number = {3}, remark = {KL: in current AOP terminology: generalizes implementation technology for a group of collaborating introductions} } @inproceedings{seiter:gcse99, author = {Linda Seiter and Mira Mezini and Karl Lieberherr}, title = {Dynamic Component Gluing}, booktitle = {First Int'l Symposium on Generative and Component-Based Software Engineering}, year = 1999, location = {Erfurt, Germany}, pages = {}, editor = {Ulrich Eisenecker and Krzysztof Czarnecki}, publisher = {Springer} } @incollection{mezini:sact01, author = {Mira Mezini and Linda Seiter and Karl Lieberherr}, title = {Component Integration with Pluggable Composite Adapters}, booktitle = {Symposium on Software Architectures and Component Technology: {The} State of the Art in Research and Practice}, pages = {}, publisher = kluwer, year = 2001, month = oct, editor = {Mehmet {Ak\c sit}}, remark = {University of Twente, The Netherlands, ISBN 0-7923-7576-9} } @phdthesis{mezini:pdh97, author = {Mira Mezini}, title = {{Variation-Oriented Programming Beyond Classes and inheritance}}, school = {University of Siegen}, year = 1997, remark = {KL: discusses several AOSD issues; I was fortunate to be a reader} } @inproceedings{mezini:oopsla98, author = {Mira Mezini and Karl Lieberherr}, title = {Adaptive Plug-and-Play Components for Evolutionary Software Development}, booktitle = {OOPSLA}, year = 1998, month = oct, location = {Vancouver}, pages = {97-116}, editor = {C. Chambers}, publisher = {ACM}, remark = {KL: in AOP terminology: each component defines a set of introductions for a group of collaborating classes (participant graph) that are mapped to application classes} } @techreport{lieberherr:pac99, author = {Karl Lieberherr and David Lorenz and Mira Mezini}, title = {{Programming with Aspectual Components}}, institution = {College of Computer Science, Northeastern University}, year = 1999, month = mar, number = {{NU-CCS-99-01}}, address = {Boston, MA}, url = {www.ccs.neu.edu/research/demeter}, remark = {KL: extends the components of mezini:oopsla98 with aspectual methods to define aspects that are later adapted to application classes; aspectual methods modify methods in other classes} } @inproceedings{herrmann:oopsla00, author = {Stephan Herrmann and Mira Mezini}, title = {{PIROL}: {A} Case Study for Multidimensional Separation of Concerns in Software Engineering Environments}, booktitle = {OOPSLA}, pages = {188-207}, year = 2000, url = {citeseer.nj.nec.com/herrmann00pirol.html}} @inproceedings{lieberherr:icse97, author = {Karl J. Lieberherr and Doug Orleans}, title = {Preventive Program Maintenance in {Demeter/Java} (Research demonstration)}, booktitle = icse, year = 1997, address = {Boston, MA}, pages = {604-605}, publisher = {ACM Press}, remark = {KL: http://www.ccs.neu.edu/research/demeter/AOP/aop-inst/instances-of-AOP-in-Demeter2.html describes how AOSD concepts are used in Demeter in at least 6 different ways} } @article{zinky:tapos97, author = {John A. Zinky and David E. Bakken and Richard D. Schantz}, title = {Architectural Support for Quality of Service for {CORBA} Objects}, journal = tapos, year = 1997, pages = {55-73}, month = jan, volume = 3, number = 1, abstract = {CORBA is a commercial standard for distributed object computing which shows great promise in the development of distributed programs. Its interface description language (IDL) enables objects to be developed independently of the underlying programming language, operating system, or computer architecture on which they will execute. Programs deployed in a wide-area distributed system encounter conditions which are much more hostile and varying than those operating in a single address space or within a single local area network. In this paper we discuss four major problems we have observed in our developing and deploying wide-area distributed object applications and middleware. First, most programs are developed ignoring the variable wide area conditions. Second, when they do try to handle these conditions, application programmers have great difficulty because they are different from the local objects they are used to dealing with. Third, IDL hides information about the tradeoffs any implementation of an object must make. Fourth, there is presently no way to systematically reuse current technology components which deal with these conditions, so code sharing becomes impractical.\par In this paper we also describe our architecture, Quality of Service for CORBA Objects (QuO), which we have developed to overcome these limitations and integrate their solution by providing QoS abstractions to CORBA objects. First, it makes these conditions first class entities and integrates knowledge of them over time, space, and source. Second, it reduces their variance by masking. Third, it exposes key design decisions of an object's implementation and how it will be used. Fourth, it supports reuse of various architectural components and automatically generates others.}, remark = {KL: an early contribution to AOSD from our friends at BBN} } @article{lieberherr:cacm94, author = {Karl J. Lieberherr and Ignacio {Silva-Lepe} and Cun Xiao}, title = {Adaptive Object-Oriented Programming using Graph-Based Customization}, journal = cacm, year = 1994, month = may, volume = 37, number = 5, pages = {94-101}, remark = {KL: describes propagation patterns: in current terminology they are an aspect-specific language for traversal-related aspects} } @phdthesis{seiter:phd96, author = {Linda Seiter}, title = {Design Patterns for Managing Evolution}, school = {Northeastern University}, year = 1996, remark = {KL: 188 pages, covers context objects which are a kind of aspect objects} } @phdthesis{xiao:phd94, author = {Cun Xiao}, title = {Adaptive Software: {Automatic} Navigation Through Partially Specified Data Structures}, school = {Northeastern University}, year = 1994, remark = {KL: 189 pages, in current terminology: coordinated introductions based on traversal specifications; wrapper headers as pointcuts and wrapper bodies as advice on traversal methods defined by traversal specifications} } @phdthesis{bergstein:phd94, author = {Paul Bergstein}, title = {{Managing the Evolution of Object-Oriented Systems}}, school = {Northeastern University}, year = 1994, remark = {KL: 151 pages, in current terminology: evolving a program under invarianceof one aspect = external representation of objects} } @techreport{ovlinger:amc02, author = {Johan Ovlinger and Karl Lieberherr and David Lorenz}, title = {Aspects and Modules Combined}, institution = {College of Computer Science, Northeastern University}, year = 2002, month = mar, number = {{NU-CCS-02-03}}, address = {Boston, MA}, url = {http://www.ccs.neu.edu/research/demeter/papers/ac-aspectj-hyperj}, remark = {KL: further develops Aspectual Components, e.g. sharing of state in aspects across multiple attachments} } @inproceedings{lieberherr:case92, author = {Karl J. Lieberherr and Walter {H\"ursch} and Ignacio {Silva-Lepe} and Cun Xiao}, title = {Experience with a Graph-Based Propagation Pattern Programming Tool}, booktitle = case, year = 1992, address = {Montr{\'e}al, Canada}, pages = {114-119}, editor = {Gene Forte and Nazim Madhavji}, publisher = {IEEE Computer Society}, remark = {KL: in current AOP terminology: traversal specifications as introductions of traversal methods; wrappers as pointcuts and advice on traversal methods} } @inproceedings{lieberherr:ip92, author = {Karl J. Lieberherr}, booktitle = {Information Processing '92, 12th World Computer Congress}, title = {Component Enhancement: {An} Adaptive Reusability Mechanism for Groups of Collaborating Classes}, year = 1992, location = {Madrid, Spain}, pages = {179-185}, editor = {J. van Leeuwen}, publisher = {Elsevier}, remark = {KL: in current AOP terminology: traversal specifications as introductions of traversal methods; wrappers as pointcuts and advice on traversal methods} } @article{lieberherr:jlsc99, author = {Karl J. Lieberherr}, title = {Object-oriented programming with class dictionaries}, volume = 1, number = 2, year = 1988, journal = {Journal on Lisp and Symbolic Computation}, pages = {185-212}, remark = {KL: Separating the object structure and representation aspect into a separate class dictionary file} } @inproceedings{florescu:www02, author = {Daniela Florescu and Andreas {Gr\"unhagen} and Donald Kossman}, title = {{XL}: {An} {XML} Programming Language for Web Service Specification and Composition}, year = 2002, location = {Honolulu}, month = may, booktitle = {Proc. The Eleventh Int'l World Wide Web Conference}, pages = {65-76} } @inproceedings{grundy:ase02, booktitle = {The 17th IEEE Int'l Conf. Automated Software Engineering}, month = sep, year = 2002, location = {Edinburgh}, author = {John Grundy and Guoling Ding}, title = {Automatic Validation of Deployed {J2EE} Components Using Aspects}, pages = {47--56} } @inproceedings{alexander:icse-wosq02, author = {Roger T. Alexander and James M. Bieman}, title = {Challenges of Aspect-oriented Technology}, booktitle = {Workshop on Software Quality, 24th Int'l Conf. Software Engineering}, location = {Orlando}, month = may, year = 2002, abstract = {Aspect-oriented technology is a new programming paradigm that is receiving considerable attention from research and practitioner communities alike. It deals with those concerns that crosscut the modularity of traditional programming mechanisms, and its objectives include a reduction in the amount of code written and higher cohesion. As with any new technology, aspect-oriented technology has both benefits and costs. In this position paper, we explore these costs in terms of their impact on software engineering. We seek to understand both the strengths and limitations of this new technology, and to raise awareness of the potential negative side effects of its use.} } @incollection{achermann:mpl00, author = {Franz Achermann and Oscar Nierstrasz}, title = {{Explicit Namespaces}}, booktitle = {Modular Programming Languages}, editor = {J{\"u}rg Gutknecht and Wolfgang Weck}, month = sep, pages = {77-89}, publisher = {Springer-Verlag}, series = {LNCS}, volume = 1897, year = 2000, location = {Z{\"u}rich, Switzerland}, url = {http://www.iam.unibe.ch/{\tilde}scg/Archive/Papers/Ache00bExplicitNamespaces.pdf}, http = {http://www.iam.unibe.ch/~scg/Archive/Papers/Ache00bExplicitNamespaces.pdf}, abstract = {A namespace is a mapping from labels to values. Most programming languages support different forms of namespaces, such as records, dictionaries, objects, environments, packages and even keyword based parameters. Typically only a few of these notions are first-class, leading to arbitrary restrictions and limited abstraction power in the host language. Piccola is a small language that unifies various notions of namespaces as first-class forms, or extensible, immutable records. By making namespaces explicit, Piccola is easily able to express various abstractions that would normally require more heavyweight techniques, such as language extensions or metaprogramming.} } @inproceedings{achermann:icse-aop00, author = {Franz Achermann}, title = {Language support for feature mixing}, abstract = {Object oriented languages cannot express certain composition abstractions due to restricted abstraction power. A number of approaches, like SOP or AOP overcome this restriction, thus giving the programmer more possibilities to get a higher degree of separation of concern. We propose \emph{forms}, extensible mappings from labels to values, as vehicle to implement and reason about composition abstractions. Forms unify a variety of concepts such as interfaces, environments, and contexts. We are prototyping a composition language where forms are the only and ubiquitous first class value. Using forms, it is possible compose software artifacts focusing on a single concern and thus achieve a high degree of separation of concern. We believe that using forms it also possible to compare and reason about the different composition mechanisms proposed.}, crossref = {:icse-aop00}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2000/Papers/achermann.pdf} } @incollection{achermann:sact01, author = {Franz Achermann and Oscar Nierstrasz}, editor = {Mehmet {Ak\c sit}}, title = {{Applications = Components + Scripts---{A} Tour of Piccola}}, booktitle = {Software Architectures and Component Technology}, publisher = {Kluwer}, year = 2001, abstract = {Piccola is a language for composing applications from software components. It has a small syntax and a minimal set of features needed for specifying different styles of software composition. The core features of Piccola are communicating agents, which perform computations, and forms, which are the communicated values. Forms are a special notion of extensible, immutable records. Forms and agents allow us to unify components, static and dynamic contexts and arguments for invoking services. Through a series of examples, we present a tour of Piccola, illustrating how forms and agents suffice to express a variety of compositional abstractions and styles.}, pages = {261-292}, url = {http://www.iam.unibe.ch/{\tilde}scg/Archive/Papers/Ache01aTour.pdf}, http = {http://www.iam.unibe.ch/~scg/Archive/Papers/Ache01aTour.pdf}, ISBN = {0-7923-7576-9} } @phdthesis{achermann:phd02, author = {Franz Achermann}, title = {Forms, Agents and Channels - Defining Composition Abstraction with Style}, school = {University of Berne}, year = 2002, month = jan, url = {http://www.iam.unibe.ch/{\tilde}scg/Archive/PhD/acherman-phd.pdf}, http = {http://www.iam.unibe.ch/~scg/Archive/PhD/acherman-phd.pdf}, abstract = {Object-oriented technology and design is not the final answer to the recurrent problem of making systems, on one hand, more open and flexible and, on the other hand, more robust, safe, and fast. While object-oriented languages have a lot of success in implementing components, they have rather limited support for expressing composition abstractions. As such, the component-based software principle is only partially supported by the object-oriented approach. Component-based software development breaks down an application into stable parts, i.e., the components, and high-level abstractions for composing the components. Flexibility is provided by the possibility to recompose. How can we design a composition language to support this metaphor? What mechanisms are needed to encapsulate components, to make their contextual assumptions explicit, and to define composition abstractions in a compact way? We argue that we should seek the minimal kernel of mechanisms that allows us to define composition abstractions, instead of adding additional language constructs to the object-oriented paradigm. This is necessary in order to reason about these abstractions and derive properties of the composed application. In this thesis we propose Forms, Agents and Channels as this minimal set of abstractions. Forms are extensible records unified with services. They are primitive objects, act as explicit namespaces, and encapsulate arguments to invoke services. Agents are autonomous entities that exchange forms along channels. We show that this simple model is expressive enough to define high-level composition abstractions while being small enough to be mathematically tractable. We present the formal model of forms, agents and channels in terms of a composition calculus. We encode the composition calculus into the asynchronous pi-calculus and show the soundness of this encoding. We define the composition language Piccola on top of the composition calculus by adding some syntactic sugar and by defining a bridge to access external components. The usefulness of Piccola is demonstrated by defining composition abstractions and reasoning about them at the level of the language. We present several kinds of composition abstractions: wrappers to adapt components, connectors to implement composition styles, and coordination abstractions that cross-cut the functional decomposition of a system. We also demonstrate how to reason about composition and how to use glue code to detect and fix compositional mismatches.}, } @inproceedings{nierstrasz:ispse00, author = {Oscar Nierstrasz and Franz Achermann}, title = {Supporting Compositional Styles for Software Evolution}, booktitle = {Proceedings Int'l Symposium on Principles of Software Evolution (ISPSE 2000)}, pages = {11-19}, publisher = {IEEE}, month = nov, year = 2000, location = {Kanazawa, Japan}, url = {http://www.iam.unibe.ch/{\tilde}scg/Archive/Papers/Nier00bSCS.pdf}, http = {http://www.iam.unibe.ch/~scg/Archive/Papers/Nier00bSCS.pdf}, abstract = { Softwareis not just difficult to develop, but it is even more difficult to maintain in the face of changing requirements. The complexity of software evolution can, however, be significantly reduced if we manage to separate the stable artifacts (the components) from their configuration (the scripts). We have proposed a simple, unifying framework of forms, agents, and channels for modelling components and scripts, and we have developed an experimental composition language, called Piccola, based on this framework, that supports the specification of applications as flexible compositions of stable components. In this paper we show how Piccola can be used to reduce the complexity of software evolution through the specification and use of an appropriate compositional style, and we illustrate the approach through a non-trivial example of mixin layer composition.} } @inproceedings{scharli:wcl01, author = {Nathanael {Sch{\"a}rli} and Franz Achermann}, title = {Partial evaluation of inter-language wrappers}, booktitle = {Workshop on Composition Languages, WCL'01 (ESEC/FSE)}, location = {Vienna}, month = sep, year = 2001, url = {http://www.iam.unibe.ch/{\tilde}scg/Archive/Papers/Scha01bLanguageWrappers.pdf}, http = {http://www.iam.unibe.ch/~scg/Archive/Papers/Scha01bLanguageWrappers.pdf} } @inproceedings{kienzle:ecoop02, title = {Aspect Oriented Software Development {AOP}: {Does} It Make Sense? {The} Case of Concurrency and Failures}, author = {J\"org Kienzle and Rachid Guerraoui}, pages = {37-61}, crossref = {:ecoop02} } @inproceedings{ichisugi:ecoop02, title = {Difference-Based Modules: {A} Class-Independent Module Mechanism}, author = {Yuuji Ichisugi and Akira Tanaka}, pages = {62-88}, crossref = {:ecoop02} } @inproceedings{ostermann:ecoop02, title = {Dynamically Composable Collaborations with Delegation Layers}, author = {Klaus Ostermann}, pages = {89-110}, crossref = {:ecoop02}, abstract = {It has been recognized in several works that a slice of behavior affecting a set of collaborating classes is a better unit of reuse than a single class. Different techniques and language extensions have been suggested to express such slices in programming languages. We propose delegation layers, an approach that scales the OO mechanisms for single objects, such as delegation, late binding, and subtype polymorphism, to sets of collaborating objects. Technically, delegation layers combine and generalize delegation and virtual class concepts. Due to their runtime semantics, delegation layers are more flexible than previous compile time approaches like mixin layers.} } @inproceedings{ostermann:oopsla01, author = {Klaus Ostermann and Mira Mezini}, title = {Object-oriented composition untangled}, booktitle = {Proc. OOPSLA '01 Conf. Object Oriented Programming Systems Languages and Applications}, year = 2001, pages = {283--299}, location = {Tampa Bay, FL, USA}, doi = {http://doi.acm.org/10.1145/504282.504303}, publisher = {ACM Press}, abstract = {Object-oriented languages come with pre-defined composition mechansims, such as inheritance, object composition, or delegation, each characterized by a certain set of composition properties, which do not themselves individually exist as abstractions at the language level. However, often non-standard composition semantics is needed, with a mixture of composition mechanisms. Such non-standard semantics are simulated by complicated architectures that are sensitive to requirement changes and cannot easily be adapted without invalidating existing clients. In this paper, we propose compound references, a new abstraction for object references, that allows us to provide explicit linguistic means for expressing and combining individual composition properties on-demand. The model is statically typed and allows the programmer to express a seamless spectrum of composition semantics in the interval between object composition and inheritance. The resulting programs are better understandable, due to explicity expressed design decisions, and less sensitive to requirement changes.} } @inproceedings{redmond:ecoop02, title = {Supporting Unanticipated Dynamic Adaptation of Application Behaviour}, author = {Barry Redmond and Vinny Cahill}, pages = {205-230}, crossref = {:ecoop02} } @inproceedings{snelting:ecoop02, title = {Theory and Formal Techniques Semantics-Based Composition of Class Hierarchies}, author = {Gregor Snelting and Frank Tip}, pages = {562-584}, crossref = {:ecoop02} } @inproceedings{clarke:icse-cbse98, author = {Siobh\'an Clarke and John Murphy}, title = {Verifying Components under development at the design stage: {A} tool to support the composition of component design models}, booktitle = {ICSE Workshop on Component-Based Software Engineering}, year = 1998 } @inproceedings{clarke:oopsla-oobs97, author = {Siobh\'an Clarke and John Murphy}, title = {Developing a Tool to support Composition of the Components in a Large-Scale Development}, booktitle = {OOPSLA Workshop on Object-Oriented Behavioural Semantics}, year = 1997 } @inproceedings{colcombet:popl00, author = {Colcombet, T. and Fradet, P.}, title = {Enforcing Trace Properties by Program Transformation}, booktitle = {Proc. 27th ACM Symp. on Principles of Programming Languages}, location = {Boston}, month = jan, year = 2000, pages = {54--66} } @inproceedings{filman:oopsla87, author = {Robert E. Filman}, title = {Retrofitting Objects}, booktitle = {ACM Conf. Object Oriented Programming Systems, Languages, and Applications (OOPSLA-87)}, location = {Orlando, Florida}, month = oct, year = 1987, pages = {342--353} } @inproceedings{renaud:ecoop00, title = {{HERCULE}: {Non-invasively} Tracking {Java} Component-Based Application Activity}, author = {Karen Renaud}, pages = {447-471}, crossref = {:ecoop00} } @article{bergmans:cacm01, author = {Bergmans, L. and {Ak{\c s}it}, M.}, title = {Composing Crosscutting Concerns Using Composition Filters}, journal = {Comm. ACM}, volume = 44, number = 10, month = oct, year = 2001, pages = {51--57} } @article{clarke:scp02, author = {Siobh\'an Clarke}, title = {Extending standard {UML} with model composition semantics}, journal = {Science of Computer Programming}, volume = 44, number = 1, pages = {71--100}, month = jul, year = 2002, url = {http://www.cs.tcd.ie/people/Siobhan.Clarke/papers/SoCP2001.pdf} } @article{coady:cacm01, title = {Structuring Operating System Aspects: {Using} {AOP} to Improve {OS} Structure Modularity}, author = {Yvonne Coady and Gregor Kiczales and Mike Feeley and Norm Hutchinson and Joon Suan Ong}, journal = {Comm. ACM}, volume = 44, number = 10, month = oct, year = 2001, pages = {79--82} } @article{diazpace:cacm01, author = {{D\'\i{}az Pace}, J. Andr\'es and Marcelo R. Campo}, title = {Analyzing the Role of Aspects in Software Design}, journal = {Comm. ACM}, volume = 44, number = 10, month = oct, year = 2001, pages = {66-73} } @article{elrad:cacm01, author = {Tzilla Elrad and Robert E. Filman and Atef Bader}, title = {Aspect-Oriented Programming}, journal = {Comm. ACM}, volume = 44, number = 10, month = oct, year = 2001, pages = {29--32} } @article{elrad:cacm01a, author = {Tzilla Elrad and Mehmet {Ak{\c s}it} and Gregor Kiczales and Karl Lieberherr and Harold Ossher}, title = {Discussing Aspects of {AOP}}, journal = {Comm. ACM}, volume = 44, number = 10, month = oct, year = 2001, pages = {33--38} } @article{filman:aes00, author = {Robert E. Filman and David J. Korsmeyer and Diana D. Lee}, title = {A {CORBA} Extension for Intelligent Software Environments}, journal = {Advances in Engineering Software}, volume = 31, number = {8-9}, year = 2000, pages = {727--732} } @article{filman:cacm02, author = {Filman, R. E. and Barrett, S. and Lee, D. D. and Linden, T.}, title = {Inserting Ilities by Controlling Communications}, journal = {Comm. ACM}, volume = 45, number = 1, month = jan, year = 2002, pages = {116--122} } @article{gray:cacm01, title = {Handling Crosscutting Constraints in Domain-Specific Modeling}, author = {Jeff Gray and Ted Bapty and Sandeep Neema and James Tuck}, journal = {Comm. ACM}, volume = 44, number = 10, month = oct, year = 2001, pages = {87--93} } @article{kiczales:cacm01, author = {Kiczales, G. and Hilsdale, E. and Hugunin, J. and Kersten, M. and Palm, J. and Griswold, W. G.}, title = {Getting Started with {A}spect{J}}, journal = {Comm. ACM}, volume = 44, number = 10, month = oct, year = 2001, pages = {59--65} } @article{lieberherr:cacm01, author = {Karl Lieberherr and Doug Orleans and Johan Ovlinger}, title = {Aspect-Oriented Programming with Adaptive Methods}, journal = {Comm. ACM}, volume = 44, number = 10, month = oct, year = 2001, pages = {39--41} } @article{murphy:cacm01, author = {Gail C. Murphy and Robert J. Walker and Elisa L. A. Baniassad and Martin P. Robillard and Albert Lai and Mik A. Kersten}, title = {Does Aspect-Oriented Programming Work?}, journal = {Comm. ACM}, volume = 44, number = 10, month = oct, year = 2001, pages = {75--77} } @inproceedings{murphy:icse01, author = {Gail C. Murphy and Albert Lai and Robert J. Walker and Martin P. Robillard}, title = {Separating features in source code: {An} exploratory study}, booktitle = {Proc. 23rd Int'l Conf. Software Engineering}, year = 2001, pages = {275--284}, location = {Toronto}, publisher = {IEEE Computer Society}, } @article{murphy:tose99, author = {Gail C. Murphy and Robert J. Walker and Elisa L. A. Baniassad}, title = {Evaluating Emerging Software Development Technologies: {Lessons} Learned from Assessing Aspect-oriented Programming}, journal = {IEEE Transactions on Software Engineering}, year = 1999, volume = 25, number = 4, pages = {438--455}, abstract = {http://www.cs.ubc.ca/labs/se/papers/1999/tse-eval.html}, url = {http://www.cs.ubc.ca/labs/se/papers/1999/tse-eval.pdf} } @article{netinant:cacm01, title = {A Layered Approach to Building Open Aspect-Oriented Systems: {A} Framework for the Design of On-Demand System Demodularization}, author = {Paniti Netinant and Tzilla Elrad and Mohamed E. Fayad}, journal = {Comm. ACM}, volume = 44, number = 10, month = oct, year = 2001, pages = {83--85} } @article{ossher:cacm01, author = {Ossher, H. and Tarr, P.}, title = {The Shape of Things To Come: {Using} Multi-Dimensional Separation of Concerns with {H}yper/{J} to (Re)Shape Evolving Software}, journal = {Comm. ACM}, volume = 44, number = 10, month = oct, year = 2001, pages = {43-50} } @article{parnas:cacm72, author = {D. L. Parnas}, title = {On the Criteria To Be Used in Decomposing Systems into Modules}, journal = {Comm. ACM}, volume = 15, month = dec, year = 1972, pages = {1053-1058}, number = 12 } @article{rashid:iees01a, author = {Awais Rashid and Peter Sawyer}, title = {Aspect-Orientation and Database Systems: {An} Effective Customisation Approach}, journal = {IEE Proceedings - Software}, volume = 148, number = 5, month = oct, year = 2001, pages = {156-164} } @article{rashid:sigplan02, author = {Awais Rashid}, title = {Weaving Aspects in a Persistent Environment}, journal = {{ACM SIGPLAN} Notices}, month = feb, year = 2002, volume = 37, number = 2, abstract = {This paper discusses two mechanisms for weaving aspects in persistent environments founded on object-oriented databases. The first mechanism is based on exploiting existing aspect languages and their associated weavers while the second mechanism is based on building weaving functionality into the database management system (DBMS). The first mechanism has been used to integrate AspectJ and its associated weaver with the Jasmine ODBMS. The second approach has been used to implement a weaver within the SADES object database evolution system.} } @article{sullivan:cacm01, author = {Sullivan, G. T.}, title = {Aspect-Oriented Programming using Reflection and Meta-Object Protocols}, journal = {Comm. ACM}, volume = 44, number = 10, month = oct, year = 2001, pages = {95--97} } @inproceedings{jones:sosp93, author = {Michael B. Jones}, title = {Interposition Agents: {Transparently} Interposing User Code at the System Interface}, booktitle = {Proceedings of the 14th ACM Symposium on Operating Systems Principles}, pages = {80--93}, month = dec, year = 1993 } @article{thompson:csur99, author = {Craig Thompson and Paul Pazandak and Venu Vasudevan and Frank Manola and Mark Palmer and Gil Hansen and Tom Bannon}, title = {Intermediary Architecture: {Interposing} Middleware Object Services between Web Client and Server}, journal = surveys, volume = {31}, number = {2es}, year = 1999, pages = {14}, } @book{czarnecki:gp00, author = {Krzysztof Czarnecki and Ulrich W. Eisenecker}, title = {Generative Programming: {Methods}, Tools, and Applications}, publisher = {Addison-Wesley}, address = {Boston}, year = 2000 } @book{dijkstra:dop76, author = {Edsger W. Dijkstra}, title = {A discipline of programming}, address = {Englewood Cliffs, New Jersey}, publisher = {Prentice-Hall}, year = 1976 } @incollection{dewin:ndss01, author = {{De Win}, B. and B. Vanhaute and {De Decker}, B.}, title = {Security Through Aspect-Oriented Programming}, booktitle = {Advances in Network and Distributed Systems Security}, editor = {B. {De Decker} and F. Piessens and J. Smits and van Herreweghen, F.}, publisher = {Kluwer Academic Publishers}, year = 2001, pages = {125-138}, location = {Dordrecht, The Netherlands}, series = {IFIP Conf. Proc.}, volume = {206}, isbn = {0-7923-7558-0} } @inproceedings{chu:icse-aop01, title = {Separation of Concerns in Software Configuration Management}, author = {Mark C. Chu-Carroll}, crossref = {:icse-aop01}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2001/Papers/chu-carroll.pdf} } @inproceedings{akkawi:oopsla-aop01, author = {Faisal Akkawi and Atef Bader and Tzilla Elrad}, url = {http://www.cs.ubc.ca/{\tilde}kdvolder/Workshops/OOPSLA2001/submissions/21-akkawi.pdf}, http = {http://www.cs.ubc.ca/~kdvolder/Workshops/OOPSLA2001/submissions/21-akkawi.pdf}, title = {Dynamic Weaving for Building Reconfigurable Software Systems}, crossref = {:oopsla-aop01} } @inproceedings{aksit:ecoop-aop01, title = {The Six Concerns for Separation of Concerns}, author = {Mehmet {Ak{\c s}it} and Bedir {Tekinerdo{\u g}an} and Lodewijk Bergmans}, crossref = {:ecoop-aop01}, url = {http://trese.cs.utwente.nl/Workshops/ecoop01asoc/papers/AksitBedirBergmans.pdf} } @inproceedings{aksit:ecoop-aop97, author = {Mehmet {Ak{\c s}it}}, title = {Issues in Aspect-Oriented Programming}, crossref = {:ecoop-aop97}, url = {http://trese.cs.utwente.nl/aop-ecoop97/aop_papers/aksit.txt} } @inproceedings{aksit:ecoop-aop98, author = {M. {Ak{\c s}it} and B. {Tekinerdo{\u g}an}}, title = {Solving the modeling problems of object-oriented languages by composing multiple aspects using composition filters}, crossref = {:ecoop-aop98}, url = {http://trese.cs.utwente.nl/aop-ecoop98/papers/Aksit.pdf}, remark = {also presented at \cite{icse98-aop}} } @inproceedings{aldawud:aosd-uml02, author = {Omar Aldawud and Atef Bader and Tzilla Elrad}, url = {http://lglwww.epfl.ch/workshops/aosd-uml/Allsubs/aldawud.pdf}, title = {Weaving With Statecharts}, crossref = {:aosd-uml02} } @inproceedings{aldawud:oopsla-aop01, author = {Omar Aldawud and Tzilla Elrad and Atef Bader}, url = {http://www.cs.ubc.ca/{\tilde}kdvolder/Workshops/OOPSLA2001/submissions/26-aldawud.pdf}, http = {http://www.cs.ubc.ca/~kdvolder/Workshops/OOPSLA2001/submissions/26-aldawud.pdf}, title = {A {UML} Profile for Aspect Oriented Modeling}, crossref = {:oopsla-aop01} } @inproceedings{aldrich:oopsla-aop00, title = {Challenge Problems for Separation of Concerns}, author = {Jonathan Aldrich}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/aldrich.pdf} } @inproceedings{ancona:ecoop00, title = {Jam---{A} Smooth Extension of {Java} with Mixins}, author = {Davide Ancona and Giovanni Lagorio and Elena Zucca}, pages = {154-178}, crossref = {:ecoop00} } @inproceedings{anderson:oopsla-aop00, title = {An Example of Using Collaborator and Adapters to Reuse a Synchronization Pattern}, author = {Ken Anderson}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/anderson.pdf} } @inproceedings{andrade:ddma02, title = {An Architectural Approach to Auto-Adaptive Systems}, author = {L. Andrade and J. L. Fiadeiro}, crossref = {:ddma02} } @inproceedings{andrews:ecoop-aop01, title = {Using Process Algebra as a Foundation for Programming by Separation of Concerns}, author = {James H. Andrews}, crossref = {:ecoop-aop01}, url = {http://trese.cs.utwente.nl/Workshops/ecoop01asoc/papers/andrews.pdf} } @inproceedings{andrews:icse-aop01, title = {Using Process Algebra as a Foundation for Programming by Separation of Concerns}, author = {James Andrews}, crossref = {:icse-aop01}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2001/Papers/andrews.pdf} } @inproceedings{andrews:reflection01, title = {Process-Algebraic Foundations of Aspect-Oriented Programming}, author = {James H. Andrews}, crossref = {:reflection01}, pages = {187-209} } @inproceedings{antunes:ddma01, title = {Separating Replication from Distributed Communication: {Problems} and Solutions}, author = {M. Antunes and H. Miranda and A. Rito Silva and L. Rodrigues and J. Martins}, crossref = {:ddma01}, pages = {103-110} } @inproceedings{assmann:ecoop-aop00, author = {Uwe {A{\ss}mann}}, title = {A Component Model for Invasive Composition}, crossref = {:ecoop-aop00}, url = {http://trese.cs.utwente.nl/Workshops/adc2000/papers/Assmann.pdf} } @inproceedings{assmann:gcse99, title = {Aspect Weaving by Graph Rewriting}, author = {Uwe {A{\ss}mann} and Andreas Ludwig}, booktitle = {Generative Component-based Software Engineering (GCSE)}, editor = {Eisenecker, U. W. and Czarnecki, K.}, location = {Erfurt}, country = {Germany}, year = 1999, month = oct } @inproceedings{atkinson:ecoop-aop00, author = {Colin Atkinson and Thomas {K\"uhne}}, title = {Separation of Concerns through Stratified Architectures}, crossref = {:ecoop-aop00}, url = {http://trese.cs.utwente.nl/Workshops/adc2000/papers/Atkinson.pdf} } @inproceedings{bachmendo:landcaster01, title = {Aspect-Based Workflow Evolution}, url = {http://www.comp.lancs.ac.uk/computing/users/marash/aopws2001/papers/bachmendo.pdf}, author = {Boris Bachmendo and Rainer Unland}, crossref = {:landcaster01} } @inproceedings{baker:aosd02, title = {Runtime Aspect Weaving Through Metaprogramming}, author = {Jason Baker and Wilson Hsieh}, pages = {86-98}, crossref = {:aosd02} } @inproceedings{baniassad:aosd02, title = {Managing Crosscutting Concerns During Software Evolution Tasks: {An} Inquisitive Study}, author = {Elisa Baniassad and Gail Murphy and Christa Schwanninger and Michael Kircher}, pages = {120-126}, crossref = {:aosd02} } @inproceedings{baniassad:ecoop-aop01, title = {Determining the ``Why'' of Concerns}, author = {Elisa L. A. Baniassad and Gail C. Murphy and Christa Schwanninger}, crossref = {:ecoop-aop01}, url = {http://trese.cs.utwente.nl/Workshops/ecoop01asoc/papers/baniassad.pdf} } @inproceedings{baniassad:icse-aop01, title = {Determining the ``Why'' of Concerns}, author = {Elisa L. A. Baniassad and Gail C. Murphy and Christa Schwanninger}, crossref = {:icse-aop01}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2001/Papers/baniassad.pdf} } @inproceedings{baniassad:oopsla-aop00, title = {Where are Programmers Faced with Concerns?}, author = {Elisa L. A. Baniassad and Gail C. Murphy and Christa Schwanninger and Michael Kircher}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/baniassad.pdf} } @inproceedings{bardou:ecoop-aop98, author = {D. Bardou}, title = {Roles, Subjects and Aspects: {How} do they relate?}, crossref = {:ecoop-aop98}, url = {http://trese.cs.utwente.nl/aop-ecoop98/papers/Bardou.pdf} } @inproceedings{barreto:aosd-pat02, title = {Programming {OS} Schedulers with Domain-Specific Languages and Aspects: {New} Approaches for {OS} Kernel Engineering}, author = {Luciano Porto Barreto and R\'emi Douence and Gilles Muller and Mario {S\"udholt}}, crossref = {:aosd-pat02} } @inproceedings{batenin:aosd-aod02, title = {Towards Unanticipated Composition of Concerns in {Hyperspaces}}, author = {Adam Batenin and Eamonn O'Neill}, url = {http://www.iit.edu/{\tilde}akkawif/workshops/AOSD2002/01-batenin.pdf}, http = {http://www.iit.edu/~akkawif/workshops/AOSD2002/01-batenin.pdf}, crossref = {:aosd-aod02} } @inproceedings{batory:icse-aop00, author = {Don Batory}, title = {Refinements and Separation of Concerns}, crossref = {:icse-aop00}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2000/Papers/batory.pdf} } @inproceedings{bayer:icse-aop00, author = {Joachim Bayer}, title = {Towards Engineering Product Lines Using Concerns}, crossref = {:icse-aop00}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2000/Papers/bayer.pdf} } @inproceedings{becker:ddma01, title = {Quality of Service and {O.O.} Oriented Middleware Multiple Concerns and their Separation}, author = {Christian Becker}, crossref = {:ddma01}, pages = {117-126} } @inproceedings{becker:ecoop-aop98, author = {U. Becker}, title = {{D2AL}: {A} design-based aspect language for distribution control}, crossref = {:ecoop-aop98}, url = {http://trese.cs.utwente.nl/aop-ecoop98/papers/Becker.pdf} } @inproceedings{becker:icse-aop98, author = {Christian Becker and Kurt Geihs}, title = {Quality of Service---{Aspects} of Distributed Programs}, crossref = {:icse-aop98} } @inproceedings{berger:ecoop-aop98, author = {L. Berger and A. M. Dery and M. Fornarino}, title = {Interactions between objects: {An} aspect of object-oriented languages}, crossref = {:ecoop-aop98}, url = {http://trese.cs.utwente.nl/aop-ecoop98/papers/Berger.pdf} } @inproceedings{berger:icse-aop98, author = {L. Berger and A. M. Dery and M. Fornarino}, title = {Interactions between objects: {An} aspect of object-oriented languages}, crossref = {:icse-aop98} } @inproceedings{bergmans:icse-aop00, author = {Lodewijk Bergmans and Mehmet {Ak{\c s}it}}, title = {Composing Software from Multiple Concerns: {A} Model and Composition Anomalies}, crossref = {:icse-aop00}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2000/Papers/bergmans.pdf} } @inproceedings{bergmans:oopsla-aop00, title = {On Composing Separated Concerns: {Composability} and Composition Anomalies}, author = {Lodewijk Bergmans and Bedir {Tekinerdo{\u g}an} and Maurice Glandrup and Mehmet {Ak{\c s}it}}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/bergmans.pdf} } @inproceedings{bergmans:oopsla-aop01, author = {Lodewijk M. J. Bergmans and Mehmet {Ak{\c s}it}}, url = {http://www.cs.ubc.ca/{\tilde}kdvolder/Workshops/OOPSLA2001/submissions/25-bergmans.pdf}, http = {http://www.cs.ubc.ca/~kdvolder/Workshops/OOPSLA2001/submissions/25-bergmans.pdf}, title = {How to Deal with Encapsulation in Aspect-Orientation}, crossref = {:oopsla-aop01} } @inproceedings{bergmans:oopsla-aop99, crossref = {:oopsla-aop99}, url = {http://www.cs.ubc.ca/{\tilde}murphy/multid-workshop-oopsla99/position-papers/ws10-bergmans.pdf}, http = {http://www.cs.ubc.ca/~murphy/multid-workshop-oopsla99/position-papers/ws10-bergmans.pdf}, title = {Analyzing Multi-dimensional Programming in {AOP} and Composition Filters}, author = {Lodewijk M. J. Bergmans and Mehmet {Ak\c sit}} } @inproceedings{beugnard:ecoop-aop99, author = {Antoine Beugnard}, title = {How to make aspect reusable, a proposition}, crossref = {:ecoop-aop99}, url = {http://trese.cs.utwente.nl/aop-ecoop99/papers/beugnard.pdf} } @inproceedings{bezivin:ddma02, title = {Aspect-Oriented Modeling: {Oxymoron} or Pleonasm?}, author = {Jean Bezivin}, crossref = {:ddma02} } @inproceedings{black:ecoop-aop00, author = {Andrew P. Black and Jonathan Walpole}, title = {Aspects of Information Flow}, crossref = {:ecoop-aop00}, url = {http://trese.cs.utwente.nl/Workshops/adc2000/papers/Black.pdf} } @inproceedings{black:oopsla-aop00, title = {Perspectives on Software}, author = {Andrew P. Black and Mark P. Jones}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/black.pdf} } @inproceedings{blair:ecoop-aop98, author = {L. Blair and G. S. Blair}, title = {The impact of Aspect-Oriented Programming on Formal Methods}, crossref = {:ecoop-aop98}, url = {http://trese.cs.utwente.nl/aop-ecoop98/papers/Blair.pdf} } @inproceedings{blair:ecoop-aop99, author = {Lynne Blair and Gordon Blair}, title = {A Tool Suite to Support Aspect-Oriented Specification}, crossref = {:ecoop-aop99}, url = {http://trese.cs.utwente.nl/aop-ecoop99/papers/blair.pdf} } @inproceedings{blank:ecoop-aop98, author = {G. Blank and G. Vayngrib}, title = {Aspects of {Enterprise} {Java} {Beans}}, crossref = {:ecoop-aop98}, url = {http://trese.cs.utwente.nl/aop-ecoop98/papers/Blank.pdf} } @inproceedings{blay:ddma02, title = {Configuring Distributed Applications}, author = {M. Blay-Fornarino and A. M. Pinna-Dery and M. Riveill}, url = {http://aopdcs.enst-bretagne.fr/riveill.pdf}, crossref = {:ddma02} } @inproceedings{bollert:ecoop-aop98, author = {K. {B\"ollert}}, title = {Aspect-Oriented Programming Case Study: {System} Management Application}, crossref = {:ecoop-aop98}, url = {http://trese.cs.utwente.nl/aop-ecoop98/papers/Boellert.pdf} } @inproceedings{bollert:ecoop-aop99, author = {Kai {B\"ollert}}, title = {On weaving aspects}, crossref = {:ecoop-aop99}, url = {http://trese.cs.utwente.nl/aop-ecoop99/papers/boellert.pdf} } @inproceedings{bouaziz:landcaster01, title = {From Software Parameterization to Software Profiling}, url = {http://www.comp.lancs.ac.uk/computing/users/marash/aopws2001/papers/seinturier.pdf}, author = {Philippe Bouaziz and Lionel Seinturier}, crossref = {:landcaster01} } @inproceedings{bouraqadi:ecoop-aop01, title = {How To Weave?}, author = {Noury M. N. {Bouraqadi-Sa\^adani} and Thomas Ledoux}, crossref = {:ecoop-aop01}, url = {http://trese.cs.utwente.nl/Workshops/ecoop01asoc/papers/Bouraqadi.pdf} } @inproceedings{bouraqadi:oopsla-aop00, title = {Concern Oriented Programming using Reflection}, author = {Noury Bouraqadi}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/bouraqadi.pdf} } @inproceedings{boussard:ecoop-aop00, author = {Laurent Boussard}, title = {Towards a pragmatic composition model of {CORBA} services based on {AspectJ}}, crossref = {:ecoop-aop00}, url = {http://trese.cs.utwente.nl/Workshops/adc2000/papers/Boussard.pdf} } @inproceedings{braga:oopsla-aop00, title = {A Meta-Object Protocol for Secure Composition of Security Mechanisms}, author = {Alexandre M. Braga and Ricardo Darab and {Cec{\'\i{}lia}} M. F. Rubira}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/braga.pdf} } @inproceedings{brichau:gpce02, author = {Johan Brichau and Kim Mens and Kris {De Volder}}, title = {Building Composable Aspect-Specific Languages with Logic Metaprogramming}, booktitle = {1st Conf. Generative Programming and Component Engineering}, series = lncs, volume = {2487}, city = {Pittsburgh}, year = 2002, isbn = {3-540-44284-7}, pages = {110--127}, publisher = sv, address = {Berlin}, } @inproceedings{brichau:ecoop-aop00, author = {Johan Brichau and Wolfgang {De Meuter} and {De Volder}, Kris}, title = {Jumping Aspects}, crossref = {:ecoop-aop00}, url = {http://trese.cs.utwente.nl/Workshops/adc2000/papers/Brichau.pdf} } @inproceedings{brichau:oopsla-aop00, title = {Declarative Composable Aspects}, author = {Johan Brichau}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/brichau.pdf} } @inproceedings{brito:aosd-ea02, url = {http://trese.cs.utwente.nl/AOSD-EarlyAspectsWS/Papers/Brito.pdf}, title = {A requirements model for quality attributes}, author = {I. Brito and A. Moreira and J. {Ara\'ujo}}, crossref = {:aosd-ea02} } @inproceedings{brodsky:oopsla-aop01, author = {Alex Brodsky and Dima Brodsky and Ida Chan and Yvonne Coady and Stephan Gudmundson and Jody Pomkoski and Joon Suan Ong}, url = {http://www.cs.ubc.ca/{\tilde}kdvolder/Workshops/OOPSLA2001/submissions/03-coady.pdf}, http = {http://www.cs.ubc.ca/~kdvolder/Workshops/OOPSLA2001/submissions/03-coady.pdf}, title = {Coping with Evolution: {Aspects} vs. Aspirin}, crossref = {:oopsla-aop01} } @inproceedings{cardone:aosd02, title = {Using Mixins to Build Flexible Widgets}, author = {Richard Cardone and Adam Brown and Sean McDirmid and Calvin Lin}, pages = {76-85}, crossref = {:aosd02} } @inproceedings{bruce:landcaster01, title = {Alternatives to Aspect-Oriented Programming?}, url = {http://www.comp.lancs.ac.uk/computing/users/marash/aopws2001/papers/bruce.pdf}, author = {David Bruce and Nick Exon}, crossref = {:landcaster01} } @inproceedings{bruneton:reflection01, title = {Experiments with {JavaPod}, a Platform Designed for the Adaptation of Non-functional Properties}, author = {Eric Bruneton and Michel Riveill}, crossref = {:reflection01}, pages = {52-72} } @inproceedings{bryant:aosd02, title = {Explicit Programming}, author = {Avi Bryant and Andrew Catton and {De Volder}, Kris and Gail Murphy}, pages = {10-18}, crossref = {:aosd02} } @inproceedings{buchi:ecoop00, title = {Generic Wrappers}, author = {Martin {B\"uchi} and Wolfgang Weck}, pages = {201-225}, crossref = {:ecoop00} } @inproceedings{buhr:ecoop-aop98, author = {R. J. A. Buhr}, title = {A Possible Design Notation for Aspect-Oriented Programming}, crossref = {:ecoop-aop98}, url = {http://trese.cs.utwente.nl/aop-ecoop98/papers/Buhr.pdf} } @inproceedings{cabri:ddma02, title = {Separation of Concerns in Agent Applications by Roles}, author = {G. Cabri and L. Leonardi and F. Zambonelli}, url = {http://aopdcs.enst-bretagne.fr/cabri.ps}, crossref = {:ddma02} } @inproceedings{cahill:ecoop-aop98, author = {V. Cahill}, title = {An Overview of the {Coyote} Project}, crossref = {:ecoop-aop98}, url = {http://trese.cs.utwente.nl/aop-ecoop98/papers/Cahill.txt} } @inproceedings{canditt:aosd-pat02, title = {Aspect Oriented Logging in a Real-World System}, author = {Sabine Canditt and Manfed Gunter}, crossref = {:aosd-pat02} } @inproceedings{capouillez:ecoop-aop01, title = {Separation of Concerns in {OFL}}, author = {Adeline Capouillez and Pierre Crescenzo and Philippe Lahire}, crossref = {:ecoop-aop01}, url = {http://trese.cs.utwente.nl/Workshops/ecoop01asoc/papers/Capouillez.pdf} } @inproceedings{carver:aosd-aod02, title = {Composition Behaviors for Application Construction}, author = {Lee Carver}, url = {http://www.iit.edu/{\tilde}akkawif/workshops/AOSD2002/02-carver.pdf}, http = {http://www.iit.edu/~akkawif/workshops/AOSD2002/02-carver.pdf}, crossref = {:aosd-aod02} } @inproceedings{carver:ecoop-aop00, author = {Lee Carver}, title = {Combining Selector-Guarded Blocks}, crossref = {:ecoop-aop00}, url = {http://trese.cs.utwente.nl/Workshops/adc2000/papers/Carver.pdf} } @inproceedings{carver:icse-aop00, author = {Lee Carver}, title = {A Practical {Hyperspace} Application: {Lessons} from the Option-Processing Task}, crossref = {:icse-aop00}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2000/Papers/carver.pdf} } @inproceedings{carver:oopsla-aop00, title = {Using Brackets to Corral Jumping Aspects}, author = {Lee Carver}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/carver.pdf} } @inproceedings{carver:oopsla-aop99, crossref = {:oopsla-aop99}, url = {http://www.cs.ubc.ca/{\tilde}murphy/multid-workshop-oopsla99/position-papers/ws06-carver.pdf}, http = {http://www.cs.ubc.ca/~murphy/multid-workshop-oopsla99/position-papers/ws06-carver.pdf}, title = {Sorting out Concerns}, author = {Lee Carver and William G. Griswold} } @inproceedings{chavez:aosd-uml02, author = {Christina Chavez and Carlos Lucena}, url = {http://lglwww.epfl.ch/workshops/aosd-uml/Allsubs/aspUML.pdf}, title = {A Metamodel for Aspect-Oriented Modeling}, crossref = {:aosd-uml02} } @inproceedings{chavez:landcaster01, title = {Some Insights on the Use of {AspectJ} and {Hyper/J}}, url = {http://www.comp.lancs.ac.uk/computing/users/marash/aopws2001/papers/chavez.pdf}, author = {Christina Chavez and Alessandro Garcia and Carlos Lucena}, crossref = {:landcaster01} } @inproceedings{chechik:icse-aop01, title = {Reasoning about Compositions of Concerns}, author = {Marsha Chechik and Steve Easterbrook}, crossref = {:icse-aop01}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2001/Papers/chechik.pdf} } @inproceedings{chiba:oopsla-aop01, author = {Shigeru Chiba}, url = {http://www.cs.ubc.ca/{\tilde}kdvolder/Workshops/OOPSLA2001/submissions/19-chiba.pdf}, http = {http://www.cs.ubc.ca/~kdvolder/Workshops/OOPSLA2001/submissions/19-chiba.pdf}, title = {What are the best join points?}, crossref = {:oopsla-aop01} } @inproceedings{chitchyan:aosd-aod02, title = {An Analysis of Design Approaches for Crosscutting Concerns}, author = {Ruzanna Chitchyan and Ian Sommerville and Awais Rashid}, url = {http://www.iit.edu/{\tilde}akkawif/workshops/AOSD2002/03-chitchyan.pdf}, http = {http://www.iit.edu/~akkawif/workshops/AOSD2002/03-chitchyan.pdf}, crossref = {:aosd-aod02} } @inproceedings{chu:ecoop-aop01, title = {Separation of Concerns in Software Configuration Management}, author = {Mark C. Chu-Carroll}, crossref = {:ecoop-aop01}, url = {http://trese.cs.utwente.nl/Workshops/ecoop01asoc/papers/chu.pdf} } @inproceedings{chu:icse-aop00, author = {Mark Chu-Carroll}, title = {Software Configuration Management as a Mechanism for Multidimensional Separation of Concerns}, crossref = {:icse-aop00}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2000/Papers/chucarroll.pdf} } @inproceedings{chu:oopsla-aop00, title = {Separation of Concerns: {An} Organizational Approach}, author = {Mark C. Chu-Carroll}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/chucarroll.pdf} } @inproceedings{clark:icse-aop98, author = {Siobh\'an Clarke and John Murphy}, title = {Developing a Tool to support the Application of Aspect-Oriented Programming Principles to the Design Phase}, crossref = {:icse-aop98} } @inproceedings{clarke:aosd02, title = {Towards a Standard Design Language for {AOSD}}, author = {Siobh\'an Clarke and Robert Walker}, pages = {113-119}, crossref = {:aosd02} } @inproceedings{clarke:ecoop-aop01, title = {Mapping Composition Patterns to {AspectJ} and {Hyper/J}}, author = {Siobh\'an Clarke and Robert J. Walker}, crossref = {:ecoop-aop01}, url = {http://trese.cs.utwente.nl/Workshops/ecoop01asoc/papers/clarke.pdf} } @inproceedings{clarke:ecoop-aop99, author = {Siobh\'an Clarke and William Harrison and Harold Ossher and Peri Tarr}, title = {Separating concerns throughout the development lifecycle}, crossref = {:ecoop-aop99}, url = {http://trese.cs.utwente.nl/aop-ecoop99/papers/clarke.pdf} } @inproceedings{clarke:icse-aop00, author = {Siobh\'an Clarke}, title = {Extending {UML} Metamodel for Design Composition}, crossref = {:icse-aop00}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2000/Papers/clarke.pdf} } @inproceedings{clarke:icse-aop01, title = {Mapping Composition Patterns to {AspectJ} and {Hyper/J}}, author = {Siobh\'an Clarke and Robert J. Walker}, crossref = {:icse-aop01}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2001/Papers/clarke.pdf} } @inproceedings{clarke:icse-sce99, author = {Siobh\'an Clarke and William Harrison and Harold Ossher and Peri Tarr}, title = {Designing for Evolution with Subjects}, booktitle = {Workshop on Software Change and Evolution, ICSE}, year = 1999 } @inproceedings{clarke:icse01, author = {Siobh\'an Clarke and Robert J. Walker}, title = {Composition Patterns: {An} Approach to Designing Reusable Aspects}, booktitle = {Proc. 23rd Int'l Conf. Software Engineering (ICSE)}, location = {Toronto}, month = may, pages = {5--14}, year = 2001, url = {http://www.cs.tcd.ie/people/Siobhan.Clarke/papers/ICSE2001.pdf} } @inproceedings{clarke:oois98, author = {Siobh\'an Clarke and John Murphy and Mark Roantree}, title = {Composition of {UML} Design Models: {A} tool to support the resolution of conflicts}, booktitle = {Proc. Object Oriented Information Systems (OOIS)}, location = {Paris}, month = sep, year = 1998 } @inproceedings{clarke:oopsla-aop00, title = {Designing Reusable Patterns of Cross-Cutting Behaviour with Composition Patterns}, author = {Siobh\'an Clarke}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/clarke.pdf} } @inproceedings{clarke:oopsla-aop99, crossref = {:oopsla-aop99}, url = {http://www.cs.ubc.ca/{\tilde}murphy/multid-workshop-oopsla99/position-papers/ws18-clarke.pdf}, http = {http://www.cs.ubc.ca/~murphy/multid-workshop-oopsla99/position-papers/ws18-clarke.pdf}, title = {The Dimensions of Separating Requirements Concerns for the Duration of the Development Lifecycle}, author = {Siobh\'an Clarke and William Harrison and Harold Ossher and Peri Tarr} } @inproceedings{clarke:oopsla99, author = {Siobh\'an Clarke and William Harrison and Harold Ossher and Peri Tarr}, title = {Subject-Oriented Design: {Towards} Improved Alignment of Requirements, Design and Code}, booktitle = {Proc. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA)}, location = {Denver}, month = nov, year = 1999, pages = {325-339} } @inproceedings{clarke:soce99, author = {Siobh\'an Clarke and William Harrison and Harold Ossher and Peri Tarr}, title = {Subject-Oriented Design: {Support} for Evolution from the Design Stage}, booktitle = {Workshop on Software and Organisation Co-Evolution}, year = 1999 } @inproceedings{clarke:uml00, author = {Siobh\'an Clarke}, title = {Composing Design Models: {An} extension to the {UML}}, booktitle = {Proc. Third Int'l Conf. the Unified Modeling Language ({UML}), LNCS 1939}, location = {York, UK}, month = oct, year = 2000, publisher = {Springer-Verlag}, pages = {338-352} } @inproceedings{clifton:aosd-foal02, title = {Observers and Assistants: {A} Proposal for Modular Aspect-Oriented Reasoning}, author = {Curtis Clifton and Gary T. Leavens}, pages = {33-44}, crossref = {:aosd-foal02} } @inproceedings{coady:ecoop-aop01, title = {Can {AOP} Support Extensibility in Client-Server Architectures?}, author = {Yvonne Coady and Alex Brodsky and Dima Brodsky and Jody Pomkoski and Stephan Gudmundson and Joon Suan Ong and Gregor Kiczales}, crossref = {:ecoop-aop01}, url = {http://trese.cs.utwente.nl/Workshops/ecoop01asoc/papers/Coady.pdf} } @inproceedings{coady:icse-aop01, title = {Structuring System Aspects}, author = {Yvonne Coady and Gregor Kiczales and Mike Feeley and Norm Hutchinson and Joon Suan Ong}, crossref = {:icse-aop01}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2001/Papers/coady.pdf} } @inproceedings{coady:oopsla-aop00, title = {Exploring an Aspect-Oriented Approach to Operating System Code}, author = {Yvonne Coady and Gregor Kiczales and Michael Feeley}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/coady.pdf} } @inproceedings{cohen:usenix98, author = {G. Cohen and J. Chase and D. Kaminsky}, title = {Automatic Program Transformation with {JOIE}}, booktitle = {1998 USENIX Annual Technical Symposium}, year = 1998, pages = {167--178}, } @inproceedings{david:ecoop-use02, author = {David, Pierre-Charles and Thomas Ledoux}, title = {Dynamic Adaptation of Non-Functional Concerns}, booktitle = {1st Int'l Workshop on Unanticipated Software Evolution (USE) (ECOOP)}, city = {Malaga, Spain}, month = jun, year = 2002, } @inproceedings{diazpace:asse02, author = {A. {D\'\i{}az Pace} and M. Campo and F. Trilnik}, title = {Smartweaver: {Aspect}-Oriented Development using the {Smartbooks} Approach}, booktitle = {Argentine Symp. Software Engineering (ASSE)}, pages = {1--21}, city = {Santa Fe, Argentina}, month = sep, year = 2002, } @techreport{douence:eaop02, author = {Douence, R. and {S\"udholt}, M.}, title = {A model and a tool for Event-based Aspect-Oriented Programming ({EAOP})}, number = {02/11/INFO}, institution = {Ecole des Mines de Nantes}, year = 2002, } @techreport{douence:dsai02, author = {R. Douence and P. Fradet and M. {S\"udholt}}, title = {Detection and resolution of aspect interactions}, number = {RR-4435}, institution = {INRIA}, month = apr, year = 2002, } @inproceedings{gray:m-mda03, author = {Jeff Gray and Yuehua Lin and Jing Zhang}, title = {Levels of Independence in Aspect-Oriented Modeling}, booktitle = {Workshop on Model-driven Approaches to Middleware Applications Development (Middleware)}, city = {Rio de Janeiro}, month = jun, year = 2003, url = {http://www.gray-area.org/Papers/MAMAD-2003.pdf}, } @article{grosso:ddj02, author = {Grosso, W.}, title = {Aspect-Oriented Programming and {AspectJ}}, journal = {Dr. Dobbs Journal}, month = aug, year = 2002, url = {http://www.ddj.com/articles/2002/0208/}, } @article{grundy:ijseke00, author = {Grundy, J.}, title = {Multi-perspective specification, design and implementation of software components using aspects}, journal = {Int'l Journal of Software Engineering and Knowledge Engineering}, volume = 20, number = 6, year = 2000, } @inproceedings{grundy:seke99, author = {Grundy, J.}, title = {Supporting aspect-oriented component-based systems engineering}, booktitle = {11th Int'l Conf. Software Engineering and Knowledge Engineering (SEKE)}, year = 1999, pages = {388--395}, } @inproceedings{katara:iceccs01, author = {M. Katara and T. Mikkonen}, title = {Aspect-Oriented Specification Architectures for Distributed Real-Time Systems}, booktitle = {7th Int'l Conf. Engineering of Complex Computer Systems (ICECCS)}, publisher = ieee, year = 2001, pages = {180--190}, } @inproceedings{cohen:oopsla-aop00, title = {A Taxonomy of Transformation}, author = {Geoff A. Cohen}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/cohen.pdf} } @inproceedings{cohen:oopsla-aop99, crossref = {:oopsla-aop99}, url = {http://www.cs.ubc.ca/{\tilde}murphy/multid-workshop-oopsla99/position-papers/ws23-cohen.pdf}, http = {http://www.cs.ubc.ca/~murphy/multid-workshop-oopsla99/position-papers/ws23-cohen.pdf}, title = {Recombing Concerns: {Experience} with Transformation}, author = {Geoff A. Cohen} } @inproceedings{constantinides:ddma01, title = {Composing Concerns with a Framework Approach}, author = {Constantinos A. Constantinides and Tzilla Elrad}, crossref = {:ddma01}, pages = {133-140} } @inproceedings{constantinides:ecoop-aop00, author = {Constantinos A. Constantinides and Atef Bader and Tzilla Elrad}, title = {Separation of Concerns in Concurrent Software Systems}, crossref = {:ecoop-aop00}, url = {http://trese.cs.utwente.nl/Workshops/adc2000/papers/Constantinides.pdf} } @inproceedings{constantinides:ecoop-aop01, title = {Providing Dynamic Adaptability in an Aspect-Oriented Framework}, author = {Constantinos A. Constantinides and Therapon Skotiniotis and Tzilla Elrad}, crossref = {:ecoop-aop01}, url = {http://trese.cs.utwente.nl/Workshops/ecoop01asoc/papers/Constantinides.pdf} } @inproceedings{constantinides:ecoop-aop99, author = {Constantinos Constantinides and Atef Bader and Tzilla Elrad}, title = {An aspect-oriented design framework for concurrent systems}, crossref = {:ecoop-aop99}, url = {http://trese.cs.utwente.nl/aop-ecoop99/papers/constantinides.pdf} } @inproceedings{constantinides:gaop02, author = {C. Constantinides and T. Skotiniotis}, url = {http://i44w3.info.uni-karlsruhe.de/{\tilde}pulvermu/workshops/aosd2002/submissions/constantinides.pdf}, http = {http://i44w3.info.uni-karlsruhe.de/~pulvermu/workshops/aosd2002/submissions/constantinides.pdf}, title = {Reasoning about a classification of cross-cutting concerns in object-oriented systems}, crossref = {:gaop02} } @inproceedings{constantinides:oopsla-aop00, title = {On the Requirements for Concurrent Software Architectures to Support Advanced Separation of Concerns}, author = {Constantinos A. Constantinides and Tzilla Elrad}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/constantinides.pdf} } @article{constantinides:csur00, author = {Constantinos A. Constantinides and Atef Bader and Tzilla H. Elrad and P. Netinant and Mohamed E. Fayad}, title = {Designing an aspect-oriented framework in an object-oriented environment}, journal = surveys, volume = {32}, number = {1es}, year = 2000, pages = {41}, publisher = {ACM Press}, } @inproceedings{bader:iasted98, author = {Atef Bader and Tzilla Elrad}, title = {Framework and Design Pattern for Concurrent Passive Objects}, booktitle = {Proc. IASTED/SE '98}, year = 1998 } @inproceedings{bader:icpads98, author = {Atef Bader and Tzilla Elrad}, title = {The Adaptive Arena: {Language} Constructs and Architectural Abstractions for Concurrent Object-Oriented Systems}, booktitle = {ICPADS '98}, year = 1998 } @inproceedings{constantinides:oopsla-aop99, crossref = {:oopsla-aop99}, url = {http://www.cs.ubc.ca/{\tilde}murphy/multid-workshop-oopsla99/position-papers/ws22-constantinides.pdf}, http = {http://www.cs.ubc.ca/~murphy/multid-workshop-oopsla99/position-papers/ws22-constantinides.pdf}, title = {A Framework to Address a Two-dimensional Composition of Concerns}, author = {Constantinos A. Constantinides and Atef Bader and Tzilla Elrad} } @inproceedings{costanza:ecoop-aop00, author = {Pascal Costanza}, title = {Separation of Object Identity Concerns}, crossref = {:ecoop-aop00}, url = {http://trese.cs.utwente.nl/Workshops/adc2000/papers/Constanza.pdf} } @inproceedings{costanza:ecoop-aop01, title = {Independent Extensibility for Aspect-Oriented Systems}, author = {Pascal Costanza and G\"unter Kniesel and Michael Austermann}, crossref = {:ecoop-aop01}, url = {http://trese.cs.utwente.nl/Workshops/ecoop01asoc/papers/Costanza.pdf} } @inproceedings{costanza:oopsla-aop00, title = {Vanishing Aspects}, author = {Pascal Costanza}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/costanza.pdf} } @inproceedings{czarnecki:ecoop-aop00, author = {Krzysztof Czarnecki and Ulrich W. Eisenecker}, title = {Separating the Configuration Aspect to Support Architecture Evolution}, crossref = {:ecoop-aop00}, url = {http://trese.cs.utwente.nl/Workshops/adc2000/papers/Czarnecki.pdf} } @inproceedings{czarnecki:ecoop-aop97, author = {Krzysztof Czarnecki and Ulrich W. Eisenecker and Patrick Steyaert}, title = {Beyond Objects: {Generative} Programming}, crossref = {:ecoop-aop97}, url = {http://trese.cs.utwente.nl/aop-ecoop97/aop_papers/czarnecki.ps} } @inproceedings{dangeti:aosd-pat02, title = {Runtime Weaving of Aspects using Dynamic Code Instrumentation Technique for Building Adaptive Software Systems}, author = {Dangeti and Thirunavukkarasu and Jeyabal}, crossref = {:aosd-pat02} } @inproceedings{david:oopsla-aop01, author = {Pierre-Charles David and Thomas Ledoux and Noury M. N. {Bouraqadi-Sa\^adani}}, url = {http://www.cs.ubc.ca/{\tilde}kdvolder/Workshops/OOPSLA2001/submissions/02-david.pdf}, http = {http://www.cs.ubc.ca/~kdvolder/Workshops/OOPSLA2001/submissions/02-david.pdf}, title = {Two-step weaving with reflection using {AspectJ}}, crossref = {:oopsla-aop01} } @inproceedings{dechow:aosd-pat02, title = {Exploiting the Possibilities of ``Weave-Time'' Aspects in the Creation of Component-Based Ecological Models.}, author = {Douglas R. Dechow}, crossref = {:aosd-pat02} } @inproceedings{demeuter:ecoop-aop97, author = {Wolfgang {De Meuter}}, title = {Monads as a theoretical foundation for {AOP}}, crossref = {:ecoop-aop97}, url = {http://trese.cs.utwente.nl/aop-ecoop97/aop_papers/meuter.ps} } @inproceedings{demoura:ddma02, title = {Dynamic Support for Distributed Auto-Adaptive Applications}, author = {de Moura, A. L. and C. Ururahy and R. Cerque and N. Rodriguez}, url = {http://aopdcs.enst-bretagne.fr/mouraa_auto-adaptive.ps}, abstract = {This work presents an infrastructure that simplifies the development of distributed applications that can adapt automatically to nonfunctional properties of their components and of their execution environment. This infrastructure, based on the programming language Lua and on CORBA, allows applications to select dynamically the components that best suit their requirements, to verify whether the system is satisfying these requirements, and to react, when appropriate, to variations in the nonfunctional properties of the services in use. We use CORBA 's Trading Service to support dynamic component selection. An extensible monitoring facility supports monitoring of dynamically defined requirements. We use the Lua language to specify adaptation strategies, and a smart proxy mechanism to apply these strategies.}, crossref = {:ddma02} } @inproceedings{dempsey:ecoop-aop97, author = {John Dempsey and Vinny Cahill}, title = {Aspects of System Support for Distributed Computing}, crossref = {:ecoop-aop97}, url = {http://trese.cs.utwente.nl/aop-ecoop97/aop_papers/dempsey.ps} } @inproceedings{depaoli:icse-aop00, author = {de Paoli, Flavio}, title = {Multidimensional Separation of Concerns}, crossref = {:icse-aop00}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2000/Papers/depaoli.pdf} } @inproceedings{deters:landcaster01, title = {Translation of {Java} to Real-Time {Java} using Aspects}, url = {http://www.comp.lancs.ac.uk/computing/users/marash/aopws2001/papers/deters.pdf}, author = {Morgan Deters and Nick Leidenfrost and Ron K. Cytron}, crossref = {:landcaster01} } @inproceedings{deters:oopsla-aop01, author = {Morgan Deters and Ron K. Cytron}, url = {http://www.cs.ubc.ca/{\tilde}kdvolder/Workshops/OOPSLA2001/submissions/15-deters.pdf}, http = {http://www.cs.ubc.ca/~kdvolder/Workshops/OOPSLA2001/submissions/15-deters.pdf}, title = {Introduction of Program Instrumentation using Aspects}, crossref = {:oopsla-aop01} } @inproceedings{devolder:ecoop-aop00, author = {De Volder, Kris and Tom {Tourw\'e} and Johan Brichau}, title = {Logic Meta Programming as a Tool for Separation of Concerns}, crossref = {:ecoop-aop00}, url = {http://trese.cs.utwente.nl/Workshops/adc2000/papers/Volder.pdf} } @inproceedings{devolder:ecoop-aop01, title = {Code Reuse, an Essential Concern in the Design of Aspect Languages?}, author = {De Volder, Kris}, crossref = {:ecoop-aop01}, url = {http://trese.cs.utwente.nl/Workshops/ecoop01asoc/papers/DeVolder.pdf} } @inproceedings{devolder:ecoop-aop98, author = {De Volder, Kris}, title = {Aspect-Oriented Logic Meta Programming}, crossref = {:ecoop-aop98}, url = {http://trese.cs.utwente.nl/aop-ecoop98/papers/DeVolder.pdf} } @inproceedings{devolder:oopsla-aop00, title = {Inheritance with Destructive Mixins for Better Separation of Concerns}, author = {De Volder, Kris}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/devolder.pdf} } @inproceedings{devolder:reflection99, author = {De Volder, Kris and Theo D'Hondt}, title = {Aspect-Oriented Logic Meta Programming}, booktitle = {Meta-Level Architectures and Reflection, 2nd Int'l Conf. Reflection}, pages = {250-272}, year = 1999, editor = {P. Cointe}, volume = 1616, series = {LNCS}, publisher = {Springer Verlag} } @inproceedings{dewin:oopsla-aop01, author = {{De Win}, Bart and Bart Vanhaute and {De Decker}, Bart}, url = {http://www.cs.ubc.ca/{\tilde}kdvolder/Workshops/OOPSLA2001/submissions/07-dewin.pdf}, http = {http://www.cs.ubc.ca/~kdvolder/Workshops/OOPSLA2001/submissions/07-dewin.pdf}, title = {Towards an Open Weaving Process}, crossref = {:oopsla-aop01} } @inproceedings{dhondt:ecoop-aop99, author = {Maja D'Hondt and Theo D'Hondt}, title = {Is domain knowledge an aspect?}, crossref = {:ecoop-aop99}, url = {http://trese.cs.utwente.nl/aop-ecoop99/papers/hondt.pdf} } @inproceedings{diaz:aosd-uml02, author = {Jorge L. {Diaz-Herrera} and Jasmin Chadha and Neil Pittsley}, url = {http://lglwww.epfl.ch/workshops/aosd-uml/Allsubs/Diaz.pdf}, title = {Aspect-Oriented {UML} Modeling for Developing Embedded Systems Product Lines}, crossref = {:aosd-uml02} } @inproceedings{diaz:oopsla-aop00, title = {How to Handle Interacting Concerns?}, author = {{D\'\i{}az Pace}, J. Andr\'es and F. Trilnik and Marcelo R. Campo}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/diaz.pdf} } @inproceedings{diazpace:ecoop-aop00, author = {J. Andr\'es {D\'\i{}az Pace} and Mohamed E. Fayad and Marcelo R. Campo}, title = {A Language for Simulation: {Bringing} Separation to the Front}, crossref = {:ecoop-aop00}, url = {http://trese.cs.utwente.nl/Workshops/adc2000/papers/Pace.pdf} } @inproceedings{dingwal-smith:aosd-ea02, url = {http://trese.cs.utwente.nl/AOSD-EarlyAspectsWS/Papers/Dingwall.pdf}, title = {From requirements to Monitors by way of Aspects}, author = {A. Dingwal-Smith and A. Finkelstein}, crossref = {:aosd-ea02} } @inproceedings{dominick:ecoop-aop00, author = {Lutz Dominick}, title = {Instrumentation aspects require symmetric join points}, crossref = {:ecoop-aop00}, url = {http://trese.cs.utwente.nl/Workshops/adc2000/papers/Dominick.pdf} } @inproceedings{dominick:ecoop-aop99, author = {Lutz Dominick}, title = {Aspect of lifecycle control in a {C++} framework}, crossref = {:ecoop-aop99}, url = {http://trese.cs.utwente.nl/aop-ecoop99/papers/dominick.pdf} } @inproceedings{dominick:oopsla-aop00, title = {Supporting Extension of Components with New Paradigms}, author = {Lutz Dominick and Klaus Ostermann}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/dominick.pdf} } @inproceedings{douence:aosd-pat02, title = {Nonintrusive Constraint Solver Enhancements}, author = {R\'emi Douence and Narendra Jussien}, crossref = {:aosd-pat02} } @inproceedings{douence:ecoop-aop01, title = {Sophisticated Crosscuts for E-Commerce}, author = {R\'emi Douence and Olivier Motelet and Mario {S\"udholt}}, crossref = {:ecoop-aop01}, url = {http://trese.cs.utwente.nl/Workshops/ecoop01asoc/papers/Douence.pdf} } @inproceedings{douence:reflection01, title = {A Formal Definition of Crosscuts}, author = {R\'emi Douence and Olivier Motelet and Mario {S\"udholt}}, crossref = {:reflection01}, pages = {170-186} } @inproceedings{dowling:reflection01, title = {The K-Component Architecture Meta-model for Self-Adaptive Software}, author = {Jim Dowling and Vinny Cahill}, crossref = {:reflection01}, pages = {81-88} } @inproceedings{dsouza:oopsla-aop99, crossref = {:oopsla-aop99}, url = {http://www.cs.ubc.ca/{\tilde}murphy/multid-workshop-oopsla99/position-papers/ws25-dsouza.pdf}, http = {http://www.cs.ubc.ca/~murphy/multid-workshop-oopsla99/position-papers/ws25-dsouza.pdf}, title = {First-Class Extensibility for {UML}---{Packaging} of Profiles, Stereotypes, Patterns}, author = {Desmond D'Souza and Aamod Sane and Alan Birchenough} } @inproceedings{duclos:aosd02, title = {Describing and Using Non Functional Aspects in Component Based Applications}, author = {Frederic Duclos and Jacky Estublier and Philippe Morat}, pages = {65-75}, crossref = {:aosd02} } @inproceedings{duggan:ecoop00, title = {A Mixin-Based, Semantics-Based Approach to Reusing Domain-Specific Programming Languages}, author = {Dominic Duggan}, pages = {179-200}, crossref = {:ecoop00} } @inproceedings{eide:icse-aop01, title = {Aspect Weaving as Component Knitting: {Separating} Concerns with Knit}, author = {Eric Eide and Alastair Reid and Matthew Flatt and Jay Lepreau}, crossref = {:icse-aop01}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2001/Papers/eide.pdf} } @inproceedings{ernst:ecoop-aop00, author = {Erik Ernst}, title = {Separation of Concerns and Then What}, crossref = {:ecoop-aop00}, url = {http://trese.cs.utwente.nl/Workshops/adc2000/papers/Ernst.pdf} } @inproceedings{ernst:ecoop-aop01, title = {Loosely Coupled Class Families}, author = {Erik Ernst}, crossref = {:ecoop-aop01}, url = {http://trese.cs.utwente.nl/Workshops/ecoop01asoc/papers/Ernst.pdf} } @inproceedings{ernst:oopsla-aop00, title = {Syntax Based Modularization: {Invasive} or Not?}, author = {Erik Ernst}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/ernst.pdf} } @inproceedings{fabry:ecoop-aop01, title = {Moving Code}, author = {Johan Fabry and Johan Brichau and Tom Mens}, crossref = {:ecoop-aop01}, url = {http://trese.cs.utwente.nl/Workshops/ecoop01asoc/papers/Fabry.pdf} } @inproceedings{fabry:ecoop-aop98, author = {J. Fabry}, title = {Replication as an Aspect}, crossref = {:ecoop-aop98}, url = {http://trese.cs.utwente.nl/aop-ecoop98/papers/Fabry.pdf} } @inproceedings{filman:aero01, author = {Robert E. Filman}, title = {A Software Architecture for Intelligent Synthesis Environments}, booktitle = {Proc. 2001 IEEE Aerospace Conference}, location = {Big Sky, Montana}, month = mar, year = 2001, pages = {2879-2888} } @inproceedings{filman:aosd-foal02, title = {Source-Code Instrumentation and Quantification of Events}, author = {Robert E. Filman and Klaus Havelund}, pages = {45-49}, crossref = {:aosd-foal02} } @inproceedings{filman:ddma01, title = {Redirecting by Injector}, author = {Robert E. Filman and Diana D. Lee}, crossref = {:ddma01}, pages = {141-146} } @inproceedings{filman:ecoop-aop00, author = {Robert E. Filman}, title = {Applying Aspect-Oriented Programming to Intelligent Synthesis}, crossref = {:ecoop-aop00}, url = {http://trese.cs.utwente.nl/Workshops/adc2000/papers/Filman.pdf} } @inproceedings{filman:ecoop-aop01, author = {Robert E. Filman}, title = {What Is Aspect-Oriented Programming, Revisited}, crossref = {:ecoop-aop01}, url = {http://trese.cs.utwente.nl/Workshops/ecoop01asoc/papers/Filman.pdf} } @inproceedings{filman:icse-aop98, author = {Robert E. Filman}, title = {Injecting Ilities}, crossref = {:icse-aop98}, } @inproceedings{filman:icse-cbse98, author = {Robert E. Filman}, title = {Managing Ilities}, booktitle = {Component-Based Software Engineering Workshop (ICSE)}, location = {Kyoto}, month = apr, year = 1998, pages = {81--85}, url = {http://www.sei.cmu.edu/activities/cbs/icse98/papers/p10.html} } @inproceedings{filman:oopsla-aop00, author = {Filman, R. E. and Friedman, D. P.}, title = {Aspect-Oriented Programming is Quantification and Obliviousness}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/filman.pdf} } @inproceedings{filman:wcsa98, author = {Robert E. Filman}, title = {Achieving Ilities}, crossref = {:wcsa98}, url = {http://www.objs.com/workshops/ws9801/papers/paper046.doc} } @inproceedings{fontura:oopsla-aop99, crossref = {:oopsla-aop99}, url = {http://www.cs.ubc.ca/{\tilde}murphy/multid-workshop-oopsla99/position-papers/ws17-fontura.pdf}, http = {http://www.cs.ubc.ca/~murphy/multid-workshop-oopsla99/position-papers/ws17-fontura.pdf}, title = {Dimension Templates: {Multi-dimensional} Separation of Concerns in {UML}}, author = {Marcus Fontura} } @inproceedings{forman:oopsla-aop00, title = {Superimposition: {A} Form of Separation of Concerns for Distributed Systems}, author = {Ira R. Forman}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/forman.pdf} } @inproceedings{fradet:ecoop-aop98, author = {P. Fradet and M. {S\"udholt}}, title = {{AOP}: {Towards} a generic framework using program transformation and analysis}, crossref = {:ecoop-aop98}, url = {ftp://ftp.emn.fr/pub/objet/publications/ecoop98/aop.ps.gz}, abstract = {What exactly are aspects? How to weave? What are the join points used to anchor aspects into the component program? Is there a general purpose aspect language? We address these questions for a particular but quite general class of aspects: aspects which can be described as static source-to-source program transformations.\par We discuss the design of a generic framework to express aspects as syntactic transformations as well as a generic weaver. We also consider how to use semantic properties for the definition of aspects and how to implement these properties using static analysis techniques. As an application of the framework, we sketch how to describe and implement an aspect dealing with program robustness and exceptions.}, } @inproceedings{fradet:ecoop-aop99, author = {P. Fradet and M. {S\"udholt}}, title = {An aspect language for robust programming}, crossref = {:ecoop-aop99}, url = {http://trese.cs.utwente.nl/aop-ecoop99/papers/fradet.pdf} } @inproceedings{frezza:icse-aop01, title = {The Ubiquitous Overlapping, Dynamic Concerns Project vs. Product}, author = {Stephen T. Frezza}, crossref = {:icse-aop01}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2001/Papers/frezza.pdf} } @inproceedings{furfaro:ddma02, title = {Aspect Oriented Programming using Actors}, author = {A. Furfaro and L. Nigro and F. Pupo}, url = {http://aopdcs.enst-bretagne.fr/Pupo.pdf}, crossref = {:ddma02} } @inproceedings{gahide:aosd-pat02, title = {Promoting Component Reuse by Integrating Aspects and Contracts in an Architecture Model}, author = {Patrice Gahide and Noury Bouraqadi and Laurence Duchien}, crossref = {:aosd-pat02} } @inproceedings{gal:oopsla-aop01, author = {Andreas Gal and Wolfgang {Schr\"oder-Preikschat} and Olaf Spinczyk}, url = {http://www.cs.ubc.ca/{\tilde}kdvolder/Workshops/OOPSLA2001/submissions/17-gal.pdf}, http = {http://www.cs.ubc.ca/~kdvolder/Workshops/OOPSLA2001/submissions/17-gal.pdf}, title = {{AspectC++}: {Language} Proposal and Prototype Implementation}, crossref = {:oopsla-aop01} } @inproceedings{garcia:icse-aop01, title = {An Aspect-Based Object-Oriented Model for Multi-Agent Systems}, author = {Alessandro F. Garcia and de Lucena, Carlos J. P. }, crossref = {:icse-aop01}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2001/Papers/garcia.pdf} } @inproceedings{garcia:oopsla-aop01, author = {Alessandro Garcia and Christina Chavez and Otavio Silva and Viviane Silva and Carlos Lucena}, url = {http://www.cs.ubc.ca/{\tilde}kdvolder/Workshops/OOPSLA2001/submissions/28-Garcia.pdf}, http = {http://www.cs.ubc.ca/~kdvolder/Workshops/OOPSLA2001/submissions/28-Garcia.pdf}, title = {Promoting Advanced Separation of Concerns in Intra-Agent and Inter-Agent Software Engineering}, crossref = {:oopsla-aop01} } @inproceedings{ghafari:aosd-pat02, title = {{H\&V} Consistency Checking for Software Health Monitoring}, author = {Naghmeh Ghafari and Alexander Lau and Barry Pekilis and James Thai and Rudolph Seviora}, crossref = {:aosd-pat02} } @inproceedings{giese:icse-aop01, title = {Towards Ruling Component-Based Distributed Systems with Role-Based Modeling and Cross-Cutting Aspects}, author = {Holger Giese}, crossref = {:icse-aop01}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2001/Papers/giese.pdf} } @inproceedings{giese:oopsla-aop00, title = {Towards Aspect-oriented Design and Architecture}, author = {Holger Giese and Alexander Vilbig}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/giese.pdf} } @inproceedings{glandrup:oopsla-aop01, author = {Maurice Glandrup and Arend Rensink}, url = {http://www.cs.ubc.ca/{\tilde}kdvolder/Workshops/OOPSLA2001/submissions/04-glandrup.pdf}, http = {http://www.cs.ubc.ca/~kdvolder/Workshops/OOPSLA2001/submissions/04-glandrup.pdf}, title = {Formal Foundations for Reasoning about Evolution}, crossref = {:oopsla-aop01} } @inproceedings{graversen:aosd-aod02, title = {Conceptual programming using roles}, author = {Kasper B. Graversen and Johannes Beye}, url = {http://www.iit.edu/{\tilde}akkawif/workshops/AOSD2002/05-graversen.pdf}, http = {http://www.iit.edu/~akkawif/workshops/AOSD2002/05-graversen.pdf}, crossref = {:aosd-aod02} } @inproceedings{gray:aosd-ricx02, title = {Handling Crosscutting Constraints in Domain-Specific Modeling}, author = {Jeff Gray}, crossref = {:aosd-ricx02} } @inproceedings{gray:oopsla-aop00, title = {Aspectifying Constraints in Model-Integrated Computing}, author = {Jeff Gray and Ted Bapty and Sandeep Neema}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/gray.pdf} } @inproceedings{greefhorst:oopsla-aop00, title = {Separating Concerns in Software Logistics}, author = {Danny Greefhorst}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/greefhorst.pdf} } @inproceedings{green:aosd-pat02, title = {An Aspect-Oriented Framework for Schema Evolution in Object-Oriented Databases}, author = {Robin Green and Awais Rashid}, crossref = {:aosd-pat02} } @inproceedings{grier:oopsla-aop99, crossref = {:oopsla-aop99}, url = {http://www.cs.ubc.ca/{\tilde}murphy/multid-workshop-oopsla99/position-papers/ws21-grier.pdf}, http = {http://www.cs.ubc.ca/~murphy/multid-workshop-oopsla99/position-papers/ws21-grier.pdf}, title = {Motivation for Enabling Separation of Concerns in Software Product Lines}, author = {Michael Grier} } @inproceedings{griswold:icse-aop00, author = {Bill Griswold and Yoshikiyo Kato and Jimmy Yuan}, title = {Aspect Browser: {Tool} Support for Managing Dispersed Aspects}, crossref = {:icse-aop00}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2000/Papers/griswold.pdf} } @inproceedings{griswold:oopsla-aop99, crossref = {:oopsla-aop99}, url = {http://www.cs.ubc.ca/{\tilde}murphy/multid-workshop-oopsla99/position-papers/ws12-griswold.pdf}, http = {http://www.cs.ubc.ca/~murphy/multid-workshop-oopsla99/position-papers/ws12-griswold.pdf}, title = {Aspect Browser: {Tool} Support for Managing Dispersed Aspects}, author = {William G. Griswold and Yoshikiyo Kato and Jimmy J. Yuan} } @inproceedings{griswold:reflection01, title = {Coping with Crosscutting Software Changes Using Information Transparency}, author = {William G. Griswold}, crossref = {:reflection01}, pages = {250-265} } @inproceedings{grunbacher:icse-aop00, author = {Paul Grunbacher and Alexander Egyed and Nenad Medvidovic}, title = {Dimensions of Concerns in Requirements Negotiation and Architecture Modeling}, crossref = {:icse-aop00}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2000/Papers/grunbacher.pdf} } @inproceedings{gudmundson:ecoop-aop01, title = {Addressing Practical Software Development Issues in {AspectJ} with a Pointcut Interface}, author = {Stephan Gudmundson and Gregor Kiczales}, crossref = {:ecoop-aop01}, url = {http://trese.cs.utwente.nl/Workshops/ecoop01asoc/papers/Gudmundson.pdf} } @inproceedings{gudmundson:oopsla-aop00, title = {Coding Issues in {AspectJ}}, author = {Brian {De Alwis} and Stephan Gudmundson and Greg Smolyn and Gregor Kiczales}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/gudmundson.pdf} } @inproceedings{gudmundson:reflection01, title = {Data Abstraction in {AspectJ}}, author = {Stephan Gudmundson and Gregor Kiczales}, crossref = {:reflection01}, pages = {270-271} } @inproceedings{gybels:gaop02, author = {K. Gybels}, url = {http://i44w3.info.uni-karlsruhe.de/{\tilde}pulvermu/workshops/aosd2002/submissions/gybels.pdf}, http = {http://i44w3.info.uni-karlsruhe.de/~pulvermu/workshops/aosd2002/submissions/gybels.pdf}, title = {Using a logic language to express cross-cutting through dynamic joinpoints}, crossref = {:gaop02} } @inproceedings{habra:icse-aop01, title = {Separation of Concerns in Software Engineering Education}, author = {Naji Habra}, crossref = {:icse-aop01}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2001/Papers/habra.pdf} } @inproceedings{hanenberg:aosd-pat02, title = {Connecting Aspects in {AspectJ}: {Strategies} vs. Patterns}, author = {Stefan Hanenberg and Pascal Costanza}, crossref = {:aosd-pat02} } @inproceedings{hanenberg:gaop02, author = {S. Hanenberg}, url = {http://i44w3.info.uni-karlsruhe.de/{\tilde}pulvermu/workshops/aosd2002/submissions/hanenberg.pdf}, http = {http://i44w3.info.uni-karlsruhe.de/~pulvermu/workshops/aosd2002/submissions/hanenberg.pdf}, title = {A Proposal For Classifying Tangled Code}, crossref = {:gaop02}, } @inproceedings{hanenberg:landcaster01, title = {Grouping Objects using Aspect-Oriented Adapters}, url = {http://www.comp.lancs.ac.uk/computing/users/marash/aopws2001/papers/hanenberg.pdf}, author = {Stefan Hanenberg and Rainer Unland}, crossref = {:landcaster01} } @inproceedings{hanenberg:oopsla-aop01, author = {Stefan Hanenberg and Rainer Unland}, url = {http://www.cs.ubc.ca/{\tilde}kdvolder/Workshops/OOPSLA2001/submissions/11-hanenberg.pdf}, http = {http://www.cs.ubc.ca/~kdvolder/Workshops/OOPSLA2001/submissions/11-hanenberg.pdf}, title = {Using and Reusing Aspects in {AspectJ}}, crossref = {:oopsla-aop01} } @inproceedings{hannemann:icse-aop01, title = {Overcoming the Prevalent Decomposition in Legacy Code}, author = {Jan Hannemann and Gregor Kiczales}, crossref = {:icse-aop01}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2001/Papers/hannemann.pdf} } @inproceedings{harrison:aosd-foal02, title = {Member-Group Relationships Among Objects}, author = {William Harrison and Harold Ossher}, pages = {9-16}, crossref = {:aosd-foal02} } @inproceedings{harrison:aosd-uml02, author = {William Harrison and Peri Tarr and Harold Ossher}, url = {http://lglwww.epfl.ch/workshops/aosd-uml/Allsubs/Harriso-Tarr-Osser.pdf}, title = {A Position On Considerations In {UML} Design of Aspects}, crossref = {:aosd-uml02} } @inproceedings{harrison:ecoop-aop97, author = {William Harrison and Harold Ossher and Peri Tarr}, title = {The beginnings of a Graphical Environment for Subject-Oriented Programming}, crossref = {:ecoop-aop97}, url = {http://trese.cs.utwente.nl/aop-ecoop97/aop_papers/harrison.txt} } @inproceedings{harrison:oopsla-aop01, author = {William Harrison}, url = {http://www.cs.ubc.ca/{\tilde}kdvolder/Workshops/OOPSLA2001/submissions/09-harrison.pdf}, http = {http://www.cs.ubc.ca/~kdvolder/Workshops/OOPSLA2001/submissions/09-harrison.pdf}, title = {Composition and Multiple-Inheritance in {OO} Design ({Where} in the Madness is the Method?)}, crossref = {:oopsla-aop01} } @inproceedings{hauck:ecoop-aop98, author = {F. J. Hauck and U. Becker and M. Geier and E. Meier and U. Rastofer and M. Steckermeier}, title = {{AspectIX}: {A} Middleware for Aspect-Oriented Programming}, crossref = {:ecoop-aop98}, url = {http://trese.cs.utwente.nl/aop-ecoop98/papers/Hauck.pdf} } @inproceedings{hernandez:ecoop-aop97, author = {Juan Hernandez and Michael Papathomas and Juan M. Murillo and Fernando {S\'anchez}}, title = {Coordinating Concurrent Objects: {How} to deal with the coordination aspect?}, crossref = {:ecoop-aop97}, url = {http://trese.cs.utwente.nl/aop-ecoop97/aop_papers/hernandez.ps} } @inproceedings{herrero:ecoop-aop00, author = {Jos\'e Luis Herrero and Fernando {S\'anchez} and Fabiola Lucio and Miguel Toro}, title = {Introducing Separation of Aspects at Design Time}, crossref = {:ecoop-aop00}, url = {http://trese.cs.utwente.nl/Workshops/adc2000/papers/Herrero.pdf} } @inproceedings{herrero:landcaster01, title = {Fault Tolerance {AOP} Approach}, url = {http://www.comp.lancs.ac.uk/computing/users/marash/aopws2001/papers/herrero.pdf}, author = {Jos\'e Luis Herrero and Fernando {S\'anchez} and Miguel Toro}, crossref = {:landcaster01} } @inproceedings{herrmann:aosd-uml02, author = {Stephan Herrmann}, url = {http://lglwww.epfl.ch/workshops/aosd-uml/Allsubs/Herrmann.pdf}, title = {Composable Designs with {UFA}}, crossref = {:aosd-uml02} } @inproceedings{herrmann:icse-aop00, author = {Stephan Herrmann}, title = {Dynamic View Connectors for Separating Concerns in Software Engineering Environments}, crossref = {:icse-aop00}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2000/Papers/herrmann.pdf} } @inproceedings{herrmann:icse-aop01, title = {Combining Composition Styles in the Evolvable Language {LAC}}, author = {Stephan Herrmann and Mira Mezini}, crossref = {:icse-aop01}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2001/Papers/herrmann.pdf} } @inproceedings{herrmann:oopsla-aop00, title = {On the Need for a Unified {MDSOC} Model: {Experiences} from Constructing a Modular Software Engineering Environment}, author = {Stephan Herrmann and Mira Mezini}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/herrmann.pdf} } @inproceedings{hilliard:oopsla-aop99, crossref = {:oopsla-aop99}, url = {http://www.cs.ubc.ca/{\tilde}murphy/multid-workshop-oopsla99/position-papers/ws08-hilliard.pdf}, http = {http://www.cs.ubc.ca/~murphy/multid-workshop-oopsla99/position-papers/ws08-hilliard.pdf}, title = {Aspects, Concerns, Subjects, Views, \dots}, author = {Rich Hilliard} } @inproceedings{hirschfeld:gaop02, author = {R. Hirschfeld}, url = {http://i44w3.info.uni-karlsruhe.de/{\tilde}pulvermu/workshops/aosd2002/submissions/hirschfeld.pdf}, http = {http://i44w3.info.uni-karlsruhe.de/~pulvermu/workshops/aosd2002/submissions/hirschfeld.pdf}, title = {Advice Activation in AspectS}, crossref = {:gaop02} } @inproceedings{hirschfeld:oopsla-aop01, author = {Robert Hirschfeld}, url = {http://www.cs.ubc.ca/{\tilde}kdvolder/Workshops/OOPSLA2001/submissions/22-hirschfeld.pdf}, http = {http://www.cs.ubc.ca/~kdvolder/Workshops/OOPSLA2001/submissions/22-hirschfeld.pdf}, title = {AspectS - {AOP} with Squeak}, crossref = {:oopsla-aop01} } @inproceedings{ho:icse-aop00, author = {Wai-Ming Ho and Francois {Pennaneac'h} and Jean-Marc {J\'ez\'equel} and No\"el Plouzeau}, title = {Aspect-Oriented Design with the {UML}}, crossref = {:icse-aop00}, url = {http://www.research.ibm.com/hyperspace/workshops/icse2000/Papers/ho.pdf} } @inproceedings{holmes:ecoop-aop97, author = {David Holmes and James Noble and John Potter}, title = {Aspects of Synchronization}, crossref = {:ecoop-aop97}, url = {http://trese.cs.utwente.nl/aop-ecoop97/aop_papers/holmes.ps} } @inproceedings{holmes:ecoop-aop98, author = {D. Holmes and J. Noble and J. Potter}, title = {Towards Reusable Synchronisation for Object-Oriented}, crossref = {:ecoop-aop98}, url = {http://trese.cs.utwente.nl/aop-ecoop98/papers/Holmes.pdf} } @inproceedings{hruby:oopsla-aop99, crossref = {:oopsla-aop99}, url = {http://www.cs.ubc.ca/{\tilde}murphy/multid-workshop-oopsla99/position-papers/ws15-hruby.pdf}, http = {http://www.cs.ubc.ca/~murphy/multid-workshop-oopsla99/position-papers/ws15-hruby.pdf}, title = {Dimensions for the Separation of Concerns in Describing Software Development Processes}, author = {Pavel Hruby} } @inproceedings{huang:oopsla-aop00, title = {Experience Using {AspectJ} to Implementation Cord}, author = {Jie Huang}, crossref = {:oopsla-aop00}, url = {http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/huang.pdf} } @inproceedings{hunleth:oopsla-aop01, author = {Frank Hunleth and Ron Cytron and Christopher Gill}, url = {http://www.cs.ubc.ca/{\tilde}kdvolder/Workshops/OOPSLA2001/submissions/01-hunleth.pdf}, http = {http://www.cs.ubc.ca/~kdvolder/Workshops/OOPSLA2001/submissions/01-hunleth.pdf}, title = {Building Customizable Middleware using Aspect Oriented Programming}, crossref = {:oopsla-aop01} } @inproceedings{irwin:iscope97, author = {John Irwin and Jean-Marc Loingtier and John R. Gilbert and Gregor Kiczales and John Lamping and Anurag Mendhekar and Tatiana Shpeisman}, title = {Aspect-Oriented Programming of Sparse Matrix Code}, booktitle = {Int'l Scientific Computing in Object-Oriented Parallel Environments (ISCOPE)}, year = 1997, volume = 1343, series = {LNCS}, publisher = {Springer-Verlag}, abstract = {http://www.parc.xerox.com/csl/groups/sda/publications/papers/Irwin-ISCOPE97/}, url = {http://www.parc.xerox.com/csl/groups/sda/publications/papers/Irwin-ISCOPE97/for-web.pdf} } @inproceedings{jacobsen:landcaster01, title = {Middleware Architecture Design based on Aspects, the Open Implementation Metaphor and Modularity}, url = {http://www.comp.lancs.ac.uk/computing/users/marash/aopws2001/papers/jacobsen.pdf}, author = {H.-Arno Jacobsen}, crossref = {:landcaster01} } @inproceedings{jezequel:aosd-uml02, author = {Jean-Marc {J\'ez\'equel} and No\"el Plouzeau and Torben Weis and Kurt Geihs}, url = {http://lglwww.epfl.ch/workshops/aosd-uml/Allsubs/jean.pdf}, title = {From Contracts to Aspects in {UML} Designs}, crossref = {:aosd-uml02} } @inproceedings{joergensen:middleware00, author = {Bo N\o{}rregaard {J\o{}rgensen} and Eddy Truyen and Frank Matthijs and Wouter Joosen}, title = {Customization of Object Request Brokers by Application Specific Policies}, booktitle = {Proc. Middleware'2000}, month = apr, year = 2000, location = {New York} } @inproceedings{jung:ecoop-aop00, author = {Matthias Jung and Ernst W. Biersack}, title = {How Layering Protocol Software Violates Separation of Concerns}, crossref = {:ecoop-aop00}, url = {http://trese.cs.utwente.nl/Workshops/adc2000/papers/Jung.pdf} } @inproceedings{k:gaop02, author = {R. K. Joshi and N. Agrawal}, url = {http://i44w3.info.uni-karlsruhe.de/{\tilde}pulvermu/workshops/aosd2002/submissions/joshi.ps}, http = {http://i44w3.info.uni-karlsruhe.de/~pulvermu/workshops/aosd2002/submissions/joshi.ps}, title = {{AspectJ} Implementation of