============================================ Access to information on the Demeter System ============================================ On the world-wide-web, please use the command: xmosaic http://www.ccs.neu.edu/home/lieber -------------------------------------------------------- A book on adaptive software ("The Art of Growing Adaptive Object-Oriented Software", by Karl Lieberherr) and the educational version of the Demeter Tools/C++ will be sold at the end of 1995 (is available!) by PWS Publishing Company, one of the top five textbook publishers. PWS belongs to Wadsworth, Inc. which itself belongs to International Thomson Publishing. If you are interested in the early adoption program (you get software and book in beta form), please send mail to Mike_Sugarman@pws.com and demeter@ccs.neu.edu. To make it easier for you to find the right documents through FTP, we have included an index which you can search with your editor. INDEX ======================================= To find papers related to pattern language: search for "Adaptive" a survey of the Demeter Method and Tools: search for "survey" papers related to adaptive software: search for "Adaptive" papers related to reuse: search for "reuse" schema evolution related papers: search for "evolution" Law of Demeter related papers: search for "Law" papers on visualization of object-oriented programs: search for "Adaptive" papers and thesis on contracts: search for "contract" papers on reengineering: search for "reengineering" software supporting Demeter Method: search for "Demeter International" Ph.D. thesis from the Demeter research group: search for theses Once you have read the survey article, LSLX93-adaptive-programming.* (in Communications of the ACM, May 1994, pages 94-101, intro. to Adaptive Software) you might want to go through the remaining papers in the following order: ``Object-Oriented Software Evolution'', with Cun Xiao, IEEE Transactions on Software Engineering, April 1993, L92b-learn-oosd-Demeter.* Ber91-obj-pres-cd-trans.* LBSL91-from-objects-to-cl.* L92a-component-enhancement.* etc. The Demeter Method is made practical through the Demeter Tools/C++ which are commercialized by Demeter International, Inc., a Massachusetts company. A commercial release is being prepared and is available for beta-testing on SUN and DEC and HP stations. For more information send mail to demeter@ccs.neu.edu from where it will be forwarded to the company. Papers about the Demeter System: ================================ The Demeter System consists of the Method and the Tools. Below is a list of papers which we have published, primarily about the Demeter Method. The Demeter Method is the only software development method which produces adaptive software due to a novel delayed binding mechanism of methods to classes. If you are interested in how to produce adaptive software, please read the papers which have "Adaptive" in the title or explanation. (Use your editor on this file.) The papers are copyrighted by the individual authors and/or organizations (e.g., ACM, IEEE, Springer Verlag, Northeastern University), but the copyright law gives you certain rights: The use of a copyrighted work, including such use by reproduction for non-commercial purposes such as teaching (including multiple copies for class room use), scholarship, or research, is not an infringement of copyright. Commercial use of the material which we distribute by ftp is not allowed, unless we give permission in writing. Some of our papers are available in one package by anonymous ftp from ftp.ccs.neu.edu in directory pub/research/demeter/documents Use the following command sequence to copy the Demeter papers: % ftp ftp.ccs.neu.edu Name ( ... ): ftp Password: your-email-address ftp> cd pub/research/demeter/documents ftp> ls ftp> binary ftp> get papers.tar.Z ftp> quit % uncompress papers.tar.Z % tar xf papers.tar % cd papers If you want to copy individual papers and not all at once, go to directory pub/research/demeter/documents/papers and retrieve them individually. If you want to use the Demeter Method for teaching, go to pub/research/demeter/documents and retrieve file class-packet.tar.Z. (WARNING: THIS IS MORE THAN A YEAR OLD AND IS OUTDATED. LATEST VERSION AVAILABLE ON REQUEST TO lieber@ccs.neu.edu) If you want individual class handouts and not all in one package, you can retrieve them from pub/research/demeter/documents/class-packet. File book.ps contains a few chapters of a book on the Demeter Method. Print the files as follows: *.ps as Postscript files (this will print the book) g-* as text files (will print the gentle introductions to tools) cd-* as text files (defines the input languages to the tools) *.txt as text files (will print homeworks, exams and solutions, etc.) File pub/research/demeter/documents contains the Bibtex source for citations of our papers. pub/research/demeter/documents/ecoop92.ps contains the viewgraphs for the ECOOP '92 demo of the Demeter Tools/C++. theses: pub/people/holland/chps.ps.Z contains Ian Holland's thesis on contracts: ``The Design and Representation of Object-Oriented Components.'' Completed 1993. pub/people/pberg/thesis-94.ps contains Paul Bergstein's thesis on evolution: ``Managing the Evolution of Object-Oriented Systems'' Completed 1994. pub/people/nacho/thesis.ps contains Ignacio Silva-Lepe's thesis on reverse engineering: ``Techniques for Reverse-Engineering and Re-engineering into the Object-Oriented Paradigm''. Completed 1994. pub/people/cunxiao/thesis.ps contains Cun Xiao's thesis on adaptive software: ``Adaptive Software: Automatic Navigation Through Partially Specified Data Structures'' Completed 1994. Contents of the file pub/research/demeter/documents/papers.tar.Z and directory pub/research/demeter/documents/papers : BL91-incr-cd-learning.ps ECOOP '91: Incremental learning of classes from objects, schema evolution Ber91-obj-pres-cd-trans.ps OOPSLA '91: Calculus for object-equivalent class transformations, schema evolution HSX91-in-any-CASE.ps American Programmer (Ed Yourdon): An easy introduction to Demeter Method, survey Hol91-Specify-Reuse-Components-Contracts.ps ECOOP '92: reuse, applications of contracts Hur91-demeter-tools-user-guide.ps Unpublished: User's Guide to Demeter Tools/C++ L92a-component-enhancement.ps IFIP '92: Adaptive software, new reuse mechanisms, schema evolution, Law L92b-learn-oosd-Demeter.ps ECOOP and OOPSLA tutorials: Syllabus for teaching Demeter Method L92c-HardwareDescrLang-Zeus.ps IEEE Design and Test 1992: About the origins of Demeter LBSL91-from-objects-to-cl.ps Software Engineering Journal 1991: Class optimization LH89-law-of-demeter.ps IEEE Software Magazine: Law of Demeter LHSLX92-pp-experience.ps CASE '92: Adaptive software, experience report, brief project description, survey LHX91-cd-extensions.ps Formal Aspects of Computing (Springer Verlag): Relationships between class structures, schema evolution LSLX93-adaptive-programming.ps Communications of the ACM, Adaptive object-oriented software, Law, survey LX91b-kernel-lang-for-ood.ps Submitted: Theoretical foundations for class dictionaries LX93a-foundations-oo-data-modeling.ps IEEE Transactions on Knowledge and Data Engineering 1993, design rule checking, schema recursion LXSL91-propagation-patterns.ps IEEE Transactions on Software Engineering: Adaptive Software, formal definition of propagation patterns, schema evolution, reuse, Law Lie91b-behavioral-objectives.ps Extension of OOPSLA '89 paper: Spoon feeding the Demeter Method demeter-system-publications.ps Unpublished: An elaborate version of this document, with abstracts gentle-demeter.ps Unpublished: Gentle tour through the Demeter Tools what-is-demeter.ps Unpublished: brief description SL93-proc-to-oo-reveng-meth.ps TOOLS '93: Identification of objects and responsibilities in a procedural program. Empirical method. reengineering SL94-pp-abs.ps Synthesizing Adaptive software. K94-behavior-evol-CAiSE.ps Evolution, Adaptive software. LL94-synch-patterns.ps ECOOP '94: Abstracting Process-to-Function Relations in Concurrent Object-Oriented Applications. Adaptive Software. Current contents of file pub/research/demeter/documents/class-packet.tar.Z and directory pub/research/demeter/documents/class-packet : (There is some overlap with the papers directory) HSX91-in-any-CASE.ps Hur91-demeter-tools-user-guide.ps L92a-component-enhancement.ps L92a-learn-oosd-Demeter.ps Extended course syllabus LHSLX92-pp-experience.ps CASE '92: Adaptive software, experience report, brief project description, survey LX93a-foundations-oo-data-modeling.ps IEEE Transactions on Knowledge and Data Engineering 1993, design rule checking, schema recursion, axioms LXSL91-propagation-patterns.ps Papers acknowledgements.ps Who is behind the Demeter System? answers-f-1205-sp92.txt answers-f-1205-w92.txt answers-f-3360-f91.txt answers-m-1205-sp92.txt* answers-m-1205-w92.txt* Exam answers assign1.txt assign2.txt assign3.txt assign4.txt assign5.txt Assignments book.ps A few book chapters: The Art of Growing Software c-use-tut1.txt c-use-tut2.txt c-use-tut3.txt Three easy tutorials cd-class-dictionaries cd-growth-plans cd-intermediate cd-object-graphs cd-propagation-patterns Self descriptions of the Demeter System drawing-instr.ps How to draw class dictionary graphs. final-f-1205-sp92.txt* final-f-1205-w92.txt* final-f-3360-f91.txt* Final exams g-cd-learn g-compare g-demo g-gp-check g-parse-generate g-pp-abs g-printing g-propagate g-propagate-advanced g-sem-check g-sem-check-n g-test-gen g-tree-prop Gentle introductions to individual tools gentle-demeter.ps A Gentle tour of the Demeter System index-sorted.txt index.txt midterm-m-1205-sp92.txt* midterm-m-1205-w92.txt* Midterm exams questions-and-answers.txt* Often asked questions and their answers quick.txt* Quick reference Guide sysdescr.ps System description Karl Lieberherr Director, Center for Software Sciences Northeastern University College of Computer Science 125 Cullinane Hall 360 Huntington Avenue Boston, MA 02115 U.S.A. phone: (617) 437 2077 (office) fax: (617) 437 5121 Internet: lieber@CCS.neu.EDU Papers without author information or with author information introduced by "with" are authored or coauthored by Karl Lieberherr. \bi \item ``Object-oriented programming with class dictionaries,'' {\em Journal on Lisp and Symbolic Computation, 1(2)}, 1988. \item ``Demeter: A CASE study of software growth through parameterized classes,'' with A.J. Riel, {\em Journal on Object-Oriented Programming, 1(3)}, 1988. A preliminary version of this paper was published in {\em International Conference on Software Engineering, Singapore}, 1988, pp 254-264. \item ``Object-Oriented Programming: An Objective Sense Of Style,'' with Ian Holland and Arthur Riel, {\em Proceedings of Conference on Object-Oriented Programming Systems, Languages and Applications}, San Diego, CA, September 1988, pp 323-334, in Special Issue of SIGPLAN Notices, Vol. 23(11). A short version of this paper appeared in IEEE Computer Open Channel, June 1988, pp 79-80. \item ``Formulations and Benefits of the Law of Demeter,'' with Ian Holland, {\em SIGPLAN Notices 1989}, 24(3), pp 67-78. \item ``Tools for preventive software maintenance,'' with Ian Holland, {\em Conference on Software Maintenance}, IEEE, Miami Beach, Florida, 1989, pp 2-13. Law of Demeter. \item ``Contributions to teaching object-oriented design and programming'', with Arthur Riel, {\em Proceedings of Conference on Object-Oriented Programming Systems, Languages and Applications}, New Orleans, LA, October 1989, pp 11-22. \item ``Assuring Good Style for Object-Oriented Programs'', with Ian Holland, {\em IEEE Software}, September, 1989, 38-48. Law of Demeter. \item ``Abstraction of Object-Oriented Data Models'', with Paul Bergstein and Nacho Silva-Lepe, {\em Proceedings of International Conference on Entity-Relationship Approach}, Lausanne, Switzerland, 1990, 81-94, Elsevier. \item ``From objects to classes: algorithms for optimal object-oriented design'', with Paul Bergstein and Nacho Silva-Lepe, {\em Software Engineering Journal}, July 1991, 205-228. \item ``Incremental Class Dictionary Learning and Optimization'', with Paul Bergstein, {\em Proceedings of the European Conference on Object-Oriented Programming}, Geneva, Switzerland, 1991, 377-396. \item ``Object-Preserving Class Transformations'', by Paul Bergstein, {\em Proceedings of Conference on Object-Oriented Programming Systems, Languages and Applications}, Phoenix, Arizona, October 1991. \item ``Formal Foundations for object-oriented data modeling'', with Cun Xiao, {\em IEEE Transactions on Knowledge and Data Engineering}, June 1993. \item ``In any CASE: Demeter'', by Walter L. H{\"u}rsch and Linda M. Seiter and Cun Xiao, {\em The American Programmer}, September, 1991. \item ``The Hardware Description Language Zeus'', {\em IEEE Design \& Test of Computers}, September 1992. \item ``Object-Oriented Software Evolution'', with Cun Xiao, {\em IEEE Transactions on Software Engineering}, April 1993. % Adaptive \item ``Component Enhancement: An Adaptive Reusability Mechanism for Groups of Collaborating Classes'', {\em Information Processing '92, 12th World Computer Congress}, Madrid, Spain. %Adaptive \item ``Specifying reusable components using contracts'', by Ian M. Holland, {\em ECOOP '92}, 287-308, June/July 1992, Utrecht, Netherlands, Springer Verlag. \item ``Experience with a Graph-Based Propagation Pattern Programming Tool'', with Walter Huersch, Ignacio Silva-Lepe and Cun Xiao, {\em International Workshop on CASE}, 114-119, July 1992, Montr{\'e}al, Canada. %Adaptive. \ei AUTHOR = "Walter L. H{\"u}rsch and Karl J. Lieberherr and Sougata Mukherjea", TITLE = "Object-Oriented Schema Extension and Abstraction", BOOKTITLE = "Symposium on Applied Computing", YEAR = 1993, MONTH = "February", PUBLISHER = acm, ADDRESS = "Indianapolis, Indiana", NOTE = "ACM Computer Science Conference" AUTHOR = "Ignacio Silva-Lepe", TITLE = "An Empirical Method for Identifying Objects and their Responsibilities in a Procedural Program", BOOKTITLE = "TOOLS Europe, Technology of Object-Oriented Languages and Systems", YEAR = 1993, PUBLISHER = "Prentice Hall", ADDRESS = "Versailles, France" @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 = "Communications of the ACM", YEAR = "1994", MONTH = "May", VOLUME = "", NUMBER = "", PAGES = "94-101" } % Adaptive @INPROCEEDINGS{lieber-cun:japan, AUTHOR = "Karl J. Lieberherr and Cun Xiao", TITLE = "Minimizing Dependency on Class Structures with Adaptive Programs", BOOKTITLE = International Symposium on Object Technologies for Advanced Software, YEAR = "1993", ADDRESS = "Kanazawa, Japan", PAGES = "", EDITOR = "", PUBLISHER = "Springer Verlag" } % Adaptive @INPROCEEDINGS{linda:csm93, AUTHOR = "Linda Keszenheimer", TITLE = "Specifying and Adapting Object Behavior During System Evolution", BOOKTITLE = Conference on Software Maintenance, YEAR = "1993", ADDRESS = "Montreal, Canada", PAGES = "", EDITOR = "", PUBLISHER = "IEEE Press" } %Adaptive @INPROCEEDINGS{bh93:evolution, AUTHOR = "Paul L. Bergstein and Walter L. H{\"u}rsch", TITLE = "Maintaining Behavioral Consistency during Schema Evolution", BOOKTITLE = International Symposium on Object Technologies for Advanced Software, YEAR = 1993, MONTH = "November", EDITOR = "", ORGANIZATION = "", PUBLISHER = Springer Verlag, ADDRESS = "Kanazawa, Japan", PAGES = "", NOTE = "Accepted for publication" } =================================================== As a free ``continuing education service'' I would like to invite you to join the mailinglist "adaptive" which will give you from time to time useful information about adaptive object-oriented technology. You will hear the latest on how the Demeter technology developed at Northeastern evolves. Please check: http://www.ccs.neu.edu/research/demeter/archives/dem/