This paper advances programming by introducing reusable components, called APPCs (Adaptive Plug-and-Play Components) which are parameterized by interface class graphs and which can be composed in a plug-and-play manner.
There is an important follow-on paper . It shows how AP&PC are a useful general-purpose tool for AOP.
The paper proposes to implement each behavior as a little framework and it proposes useful white-box composition techniques. APPCs can be used in two ways: by using traversal strategies in the algorithms or by writing the algorithms in a conventional way and using traversal strategies only in the maps that connect the frameworks with the application structure.
There is an interesting connection to Modeling Behavior with Personalities .
This is an OOPSLA '98 paper.
We apologize for the following errata:
In Fig. 3: qty and quantity should be everywhere: quantity.
quantity is a data member of LineItemParty.
The arguments of "additionalCharges" should be:
quantity, unitPrice, itemInst
Page 103: first paragraph:
a.(any, satisfying C)*.B should be A.(any, satisfying C)*.B
second paragraph:
"trategies" should be "strategies"
Page 107: Figure 9:
quantity is a data member of LineItemParty.
replace "item" by "itemInst".
Page 110: Figure 12:
price is the main-entry.
Page 114: comparison with subject-oriented programming:
Class graphs in SOP only have inheritance edges.
POSTSCRIPT: ftp://ftp.ccs.neu.edu/pub/people/lieber/appcs.ps
PDF: ftp://ftp.ccs.neu.edu/pub/people/lieber/appcs.pdf
Further Information about APPCs
Viewgraphs about APPCs are in
OOPSLA '98 talk in HTML format for direct viewing on the web.
OOPSLA '98 talk (PowerPoint format)
presented by Mira Mezini in Vancouver, Oct. 20, 1998.
Long version
presented at IBM Yorktown Heights in September 1998, prepared by Mira Mezini.
Lecture notes about APPCs.
Bibtex entry:
@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"
}
@TECHREPORT{mezini:98,
AUTHOR = "Mira Mezini and Karl Lieberherr",
TITLE = "Adaptive Plug-and-Play Components for
Evolutionary Software Development",
INSTITUTION = "Northeastern University",
YEAR = 1998,
MONTH = April,
NUMBER = "NU-CCS-98-3"
}
Modeling Behavior with Personalities
Some further motivation which was not included in the paper:
One key insight behind the STL template library is that iterators serve as interface to combine algorithms and data structures. Adaptive programming takes this idea one step higher: traversal strategies are the interface to combine algorithms and data structures. Algorithms are parameterized by interface class graphs and when the detailed data structure is given, we write traversal strategies (satisfying the constraints expressed by the algorithms) to link algorithms and data structures. The traversal strategies are used to generate all the iterators needed for the concrete data structure. Adaptive programs have interface class graphs in their interface (formal parameters) and class graphs serve as actual parameters. We write strategies to adapt actual parameters to formal parameters.
Some history to the paper: APPCs are a significant improvement to adaptive methods that are documented in http://www.ccs.neu.edu/research/demeter/DemeterJava/use/latest-demjava/CHANGES