% Annotated Bibliography for AOSD-related papers % with some Demeter project connection % see http://www.ccs.neu.edu/research/demeter/AOP/aop-inst/instances-of-AOP-in-Demeter2.html % for several uses of AOSD concepts in Demeter % by Karl Lieberherr @string{icse = "International Conference on Software Engineering"} @string{ieee-software = "IEEE Software"} @string{ecoop = "European Conference on Object-Oriented Programming"} @string{case = "International Workshop on CASE"} @string{ieee-se = "IEEE Transactions on Software Engineering"} @string{sac = "ACM Computer Science Conference, Symposium on Applied Computing"} @string{tapos = "Theory and Practice of Object Systems, John Wiley and Sons, Inc."} @string{surveys = "ACM Computing Surveys"} @string{toplas = "ACM Transactions on Programming Languages and Systems"} @string{cacm = "Communications of the ACM"} @string{fse = "Symposium on Foundations of Software Engineering, SIGSOFT"} @string{kluwer = "Kluwer Academic Publishers"} @ARTICLE{karl-ian:soft1, AUTHOR = "Karl J. Lieberherr and Ian Holland", TITLE = "Assuring Good Style for Object-Oriented Programs", JOURNAL = ieee-software, YEAR = "1989", MONTH = "September", PAGES = "38-48", note = {Law of Demeter paper: Pointing out that localizing some concerns may lead to maintenance problems} } @ARTICLE{karl1:class, 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", note = {Separating the object structure and representation aspect into a separate class dictionary file} } @INPROCEEDINGS{holland:91, AUTHOR = "Ian M. Holland", TITLE = "Specifying reusable components using contracts", BOOKTITLE = ecoop, YEAR = "1992", ADDRESS = "Utrecht, Netherlands", PAGES = "287-308", PUBLISHER = "Springer Verlag Lecture Notes 615", note = {in today's terminology: crosscutting collaborations = executable contracts} } @PHDTHESIS{holland:thesis93, AUTHOR = "Ian M. Holland", TITLE = "{The Design and Representation of Object-Oriented Components}", SCHOOL = "Northeastern University", YEAR = 1993, note = {in today's terminology: crosscutting collaborations = executable contracts defining a set of introductions for a group of classes, no aspectual methods, Law of Demeter} } @INPROCEEDINGS{impl-team:case92, AUTHOR = "Karl J. Lieberherr and Walter H{\"u}rsch 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 et al.", PUBLISHER = "IEEE Computer Society", note = {in current AOP terminology: traversal specifications as introductions of traversal methods; wrappers as pointcuts and advice on traversal methods} } @INPROCEEDINGS{karl:comp-enh, 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", ADDRESS = "Madrid, Spain", PAGES = "179-185", EDITOR = "J. van Leeuwen", PUBLISHER = "Elsevier" , note = {in current AOP terminology: traversal specifications as introductions of traversal methods; wrappers as pointcuts and advice on traversal methods} } @BOOK{karl:demeter, AUTHOR = "Karl J. Lieberherr", TITLE = "Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns", PUBLISHER = "PWS Publishing Company, Boston", YEAR = "1996", NOTE = "616 pages, ISBN 0-534-94602-X, entire book at www.ccs.neu.edu/research/demeter" } @ARTICLE{:growth-plan, AUTHOR = "Karl J. Lieberherr and Cun Xiao", TITLE = "{Object-Oriented Software Evolution}", JOURNAL = ieee-se, YEAR = 1993, PAGES = "313-343", MONTH = "April", VOLUME = "19" , NUMBER = "4", note = {in current AOP terminology: traversal specifications as introductions of traversal methods; wrappers as pointcuts and advice on traversal methods} } @INPROCEEDINGS{nacho:abstraction-92, AUTHOR = "Ignacio {Silva-Lepe}", TITLE = "Abstracting Graph-Based Specifications of Object-Oriented Programs", BOOKTITLE = sac, YEAR = 1994, PUBLISHER = acm, PAGES = "", ADDRESS = "Phoenix, Arizona", note = { an early form of aspect mining for traversal-related aspects} } @INPROCEEDINGS{sync-patts:ecoop94, AUTHOR = "Cristina Videira Lopes and Karl J. Lieberherr", TITLE = "Abstracting Process-to-Function Relations in Concurrent Object-Oriented Applications", BOOKTITLE = ecoop, YEAR = "1994", ADDRESS = "Bologna, Italy", PAGES = "81-99", EDITOR = "Remo Pareschi and Mario Tokoro", PUBLISHER = spcs, note = { 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{Lopes95b, 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 International Workshop on Object Orientation in Operating Systems", year = "1995", organization = "IEEE", publisher = "Computer Society Press", address = "Lund, Sweden", month = "August", annote = "IWOOOS'95, short version", note = { predecessor of RIDL and first version of AspectJ (together with COOL) } } @TECHREPORT{hl95:separation, AUTHOR = "Walter L. H{\"u}rsch and Cristina Videira Lopes", TITLE = "Separation of Concerns", INSTITUTION = "College of Computer Science, Northeastern University", YEAR = 1995, MONTH = "February", NUMBER = "{NU-CCS-95-03}", TYPE = "", ADDRESS = "Boston, MA", NOTE = {outlines the commonalities between composition filters, subject-oriented programming, open implementation, reflection, adaptive programming} } @InProceedings{Lopes96a, author = "Cristina Videira Lopes", title = "Adaptive parameter passing", booktitle = "2nd International Symposium on Object Technologies for Advanced Software", year = "1996", publisher = "Springer-Verlag", address = "Kanazawa, Japan", month = "March", PAGES = "118-136", annote = "ISOTAS'96", note = { predecessor of RIDL and first version of AspectJ together with COOL} } @InProceedings{LopesLieberherrReflection96, author = "Cristina Videira Lopes and Karl Lieberherr", title = "{A}{P}/{S}++: case-study of a {M}{O}{P} for purposes of software evolution", booktitle = "Reflection '96", year = "1996", address = "S. Francisco, CA", month = "April", annote = "AP/S++, AP^MOP, reflection, adaptive programming", note = {predecessor of DJ} } @ARTICLE{seiter:ieee-se-98, AUTHOR = "Linda M. Seiter and Jens Palsberg and Karl J. Lieberherr", TITLE = "{Evolution of Object Behavior using Context Relations}", JOURNAL = ieee-se , YEAR = 1998, PAGES = "79-92", MONTH = "January", VOLUME = 24, NUMBER = 1, note = {context objects are aspect objects that modify, e.g., the behavior of a method call} } @INPROCEEDINGS{spl:context-conf, AUTHOR = "Linda M. Seiter and Jens Palsberg and Karl J. Lieberherr", TITLE = "{Evolution of Object Behavior using Context Relations}", BOOKTITLE = fse, YEAR = "1996", ADDRESS = "San Francisco", PAGES = "46-57", EDITOR = "David Garlan", PUBLISHER = "ACM Press (SIGSOFT)", note = {context objects are aspect objects that modify, e.g., the behavior of a method call} } @ARTICLE{Palsberg-96:class-graph-inf, AUTHOR = "Jens Palsberg", TITLE = "Class-graph Inference for Adaptive Programs", JOURNAL = tapos, YEAR = 1997, PAGES = "", MONTH = "April", VOLUME = "3", NUMBER = "2", note = {in current AOP terminology: finding a minimum base program for testing a set of aspects} } @ARTICLE{sdcr:acm, AUTHOR = "Rachid Guerraoui", TITLE = "Strategic Research Directions in Object-Oriented Programming", JOURNAL = surveys, YEAR = 1996, PAGES = "691-700", MONTH = "December", VOLUME = "28", NUMBER = "4" , note = { introduces some of Gregor's AOP terminology } } @ARTICLE{sdcr:aop, AUTHOR = "Gregor Kiczales", TITLE = "Aspect-Oriented Programming", JOURNAL = surveys, YEAR = 1996, PAGES = "", MONTH = "December", VOLUME = "28A", NUMBER = "4" , note = { introduces some of Gregor's AOP terminology } } @ARTICLE{lieber-palsberg-xiao94, AUTHOR = "Jens Palsberg and Cun Xiao and Karl Lieberherr", TITLE = "Efficient Implementation of Adaptive Software", JOURNAL = toplas , YEAR = 1995, PAGES = "264--292", MONTH = mar, VOLUME = 17, NUMBER = 2, note = { 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{gener-comp:jens-boaz-karl, AUTHOR = "Jens Palsberg and Boaz {Patt-Shamir} and Karl Lieberherr", TITLE = "A New Approach to Compiling Adaptive Programs", BOOKTITLE = "European Symposium on Programming", YEAR = "April 1996", ADDRESS = "Linkoping, Sweden", PAGES = "280-295", EDITOR = "Hanne Riis Nielson", NOTE = "Lecture Notes in Computer Science 1058", PUBLISHER = "Springer Verlag", note = { in current AOP terminology: generalizes implementation technology for a group of collaborating introductions } } @ARTICLE{gener-comp-j:jens-boaz-karl, 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", MONTH = "", VOLUME = 29, NUMBER = "3", note = { in current AOP terminology: generalizes implementation technology for a group of collaborating introductions } } @INPROCEEDINGS{with-linda-mira:inner, AUTHOR = "Linda Seiter and Mira Mezini and Karl Lieberherr", TITLE = "Dynamic Component Gluing", BOOKTITLE = "First International Symposium on Generative and Component-Based Software Engineering", YEAR = "1999", ADDRESS = "Erfurt, Germany", PAGES = "", EDITOR = "Ulrich Eisenecker and Krzysztof Czarnecki", PUBLISHER = "Springer" } @INCOLLECTION{mezini-seiter-lieberherr, 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 = "October", EDITOR = "Mehmet Aksit", NOTE = "University of Twente, The Netherlands, ISBN 0-7923-7576-9" } @ARTICLE{adaptive-methods-cacm-2001, AUTHOR = "Karl Lieberherr and Doug Orleans and Johan Ovlinger", TITLE = "{Aspect-Oriented Programming with Adaptive Methods}", JOURNAL = cacm, VOLUME = 44, NUMBER = 10, PAGES = "39-41", YEAR = 2001, note = { brief introduction to DJ } } @ARTICLE{discuss-aspects-cacm-2001, AUTHOR = "Tzilla Elrad and Mehmet Aksit and Gregor Kiczales and Karl Lieberherr and Harold Ossher", TITLE = "{Discussing Aspects of AOP}", JOURNAL = cacm, VOLUME = 44, NUMBER = 10, PAGES = "33-38", YEAR = 2001 } @InProceedings{OrleansLieberherrReflection01, author = "Doug Orleans and Karl Lieberherr", title = "{DJ: Dynamic Adaptive Programming in Java}", booktitle = "{Reflection 2001: Meta-level Architectures and Separation of Crosscuttin g Concerns }", year = "2001", address = "Kyoto, Japan", month = "September", publisher = "Springer Verlag", note = "8 pages" } @PHDTHESIS{mezini:thesis97, AUTHOR = "Mira Mezini", TITLE = "{Variation-Oriented Programming Beyond Classes and Inheritance}", SCHOOL = "University of Siegen", YEAR = 1997, note = { 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 = "Object-Oriented Programming Systems, Languages and Applications Conference, {\em in} Special Issue of SIGPLAN Notices", YEAR = "1998", MONTH = "October", VOL = 33, NUMBER = 10, ADDRESS = "Vancouver", PAGES = "97-116", EDITOR = "C. Chambers", PUBLISHER = "ACM", note = { 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{aspectual:LLM, AUTHOR = "Karl Lieberherr and David Lorenz and Mira Mezini", TITLE = "{Programming with Aspectual Components}", INSTITUTION = "College of Computer Science, Northeastern University", YEAR = 1999, MONTH = "March", NUMBER = "{NU-CCS-99-01}", ADDRESS = "Boston, MA", URL = "www.ccs.neu.edu/research/demeter", note = {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{ herrmann00pirol, 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{doug:aosd-2002, AUTHOR = "Doug Orleans", TITLE = "Incremental Programming with Extensible Decisions", BOOKTITLE = "First International Conference on Aspect-Oriented Software Development", YEAR = "2002", ADDRESS = "Enschede, The Netherlands", PAGES = "", EDITOR = "Gregor Kiczales", PUBLISHER = "ACM Press", URL="http://www.ccs.neu.edu/home/dougo/papers/aosd02/", note = { combines predicate dispatching and AOP; unifies methods and advice into one construct called a branch; simpler, more powerful AOP model} } @INPROCEEDINGS{cse:preventive, 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", EDITOR = "", PUBLISHER = "ACM Press", note = { 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{bbn:QuO, 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 = "19 pages", MONTH = "January", VOLUME = 3, NUMBER = 1, note = {an early contribution to AOSD from our friends at BBN} } @ARTICLE{lieber-nacho-cun:pp-cacm, 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", note = { describes propagation patterns: in current terminology they are an aspect-specific language for traversal-related aspects } } @PHDTHESIS{linda:thesis, AUTHOR = "Linda Seiter", TITLE = "Design Patterns for Managing Evolution", SCHOOL = "Northeastern University", YEAR = 1996, NOTE = "188 pages, covers context objects which are a kind of aspect objects" } @PHDTHESIS{crista:thesis, AUTHOR = "Cristina Isabel Videira Lopes", TITLE = "{D: A Language Framework for Distributed Programming}", SCHOOL = "Northeastern University", YEAR = 1997, NOTE = "274 pages, covers COOL and RIDL which lead to the AspectJ static weaving language (one of the first versions of AspectJ)" } @PHDTHESIS{cun:thesis, AUTHOR = "Cun Xiao", TITLE = "Adaptive Software: Automatic Navigation Through Partially Specified Data Structures", SCHOOL = "Northeastern University", YEAR = 1994, NOTE = "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{paul:thesis, AUTHOR = "Paul Bergstein", TITLE = "{Managing the Evolution of Object-Oriented Systems}", SCHOOL = "Northeastern University", YEAR = 1994, NOTE = "151 pages, in current terminology: evolving a program under invariance of one aspect = external representation of objects" } @TECHREPORT{aspects-modules-2002, AUTHOR = "Johan Ovlinger and Karl Lieberherr and David Lorenz", TITLE = "Aspects and Modules Combined", YEAR = "2002", INSTITUTION = "College of Computer Science, Northeastern University", YEAR = 2002, MONTH = "March", NUMBER = "{NU-CCS-02-03}", ADDRESS = "Boston, MA", URL="http://www.ccs.neu.edu/research/demeter/papers/ac-aspectj-hyperj", note = { further develops Aspectual Components, e.g. sharing of state in aspects across multiple attachments} }