D886 Northeastern University Purdue University 50,000 Karl Lieberherr College of Computer Science Cullinane Hall Boston MA 02115 (617) 373 2077 (617) 373 5121 lieber@ccs.neu.edu Evolution of Software Via Adaptive Programming http://www.ccs.neu.edu/research/demeter/projects/darpa2/ Improve the capability of software developers to evolve and maintain programs by splitting the programs into several architectural aspects, including behavior, structure, coordination and remote invocation. Leverage existing commercial technology such as Java, and the Unified Modeling Language. Adaptive Programming (AP) works by splitting an object-oriented program into at least two aspects: the behavior and the object containment structure (class graph). A new modeling mechanism, called a succinct traversal specification allows the behavior part of the program to automatically adapt to a large number of changes in the class graph. This effectively loosens the object model enough that makes many maintenance and evolution tasks for OO programs become simpler when using AP.

AP directly supports evolutionary design: it becomes easier to change objects and to make the software work again. It becomes easier to reuse programs since adaptive programs commit to less object structure than traditional programs. We developed traversal strategies which are a new modeling tool for succinct traversal specifications. Our measurements show that a large percentage (in some cases 90 %) of the execution time of object-oriented applications is spent during object traversal. Traversals are ubiquitous and this insight justifies the development of traversal strategies as well as efficient implementations of them. The new contribution of traversal strategies is that traversals are now modeled as general graphs while before they were only line graphs or trees. We also developed a significantly better compilation algorithm for the general case which outperforms our earlier algorithms for the special cases.

Our technology has been used by several companies. They include HP (using a traversal-visitor style to implement their printer installation software), a Wall Street company (SUN Microsystem got a porting contract from this company to port a Demeter application from HP to Solaris; SUN requested the source code for Demeter/C++), and Tendril Software Inc. (they use traversals as an integral concept of Structure Builder). At the Jet Propulsion Laboratory they have used the Law of Demeter (which was the source for Adaptive Programming) for several years with success. See: http://www.ccs.neu.edu/research/demeter/ demeter-method/LawOfDemeter/Smyth/

The language D has been developed in collaboration with Xerox PARC by Cristina Lopes whose Ph.D. thesis is planned to be completed by Sep. 1997. The committee consists of Karl Lieberherr, advisor; Gregor Kiczales, co-advisor; Boaz Patt-Shamir and Mitchell Wand. D is an application of aspect-oriented programming to distributed object-oriented programming and it supports the synchronization aspect and the remote invocation aspect. Both aspects are integrated into Demeter/Java at Northeastern and at Xerox PARC D is implemented directly for Java without AP.

Our Demeter/Java system attracts significant attention. Although it is in alpha testing. Several users have already down-loaded it for experimentation.

Our paper on context objects was published at SIGSOFT 1996. The journal version was accepted by IEEE Transactions on Software Engineering after the first review. http://www.ccs.neu.edu/research/demeter/biblio/context.html A paper on traversal strategies has been almost completed and will be submitted to ACM TOPLAS. ftp://ftp.ccs.neu.edu/pub/people/lieber/strategies.ps An automata based compiler for adaptive programs has been implemented and will be published in the journal Science of Computer Programming. ftp://ftp.ccs.neu.edu/pub/people/lieber/compile-adapt-2.ps

Release a beta version of Demeter/Java during Fall 1997. Several companies have expressed interest to use this product in pilot studies. The beta version will include traversal strategies with the new compilation algorithm.

Release a beta version of AP Studio, a GUI for developing Demeter/Java programs. This tool enables visual programming for AP and makes it easier for users to write and debug adaptive programs.

Add the coordination aspect and the remote invocation aspect to Demeter/Java. Enables efficient use of AP for distributed applications. Systems available for dissemination:

Demeter/C++ Purpose: Makes adaptive programming available to the C++ community. Environment requirements: Unix (SUNOS, IBM RS 6000, Linux). email: lieber@ccs.neu.edu

Demeter/Java Purpose: Makes adaptive programming available to the Java community. Environment requirements: Java. email: dem@ccs.neu.edu

Demeter/CLOS and Demeter/Perl are also available but have been implemented externally. See Demeter home page.

How are results of this work exploited by others? Some use our papers/book which convince them of the advantages of the adaptive approach and they implement their own tools for there favorite programming languages. Examples: BBN in Cambridge (Demeter/CLOS), researchers in Japan (a version of Demeter/C++ in 97 lines of Perl code) and Danemark (Demeter/Perl). Others use our papers/book to learn about the traversal/visitor style of programming and they use it in conventional environments (example: HP installation software). Others use our tools in combination with our papers/book. Example: Wall Street company (name not yet revealed to us) and American Kybernetik. We maintain our popular WWW site (over 12000 hits per month to all pages combined): http://www.ccs.neu.edu/research/demeter