Adaptive Software: 93/94 Research Report
Karl Lieberherr
The research group of Prof. Lieberherr, known as the Demeter team,
is working on a new technique to develop a new kind of software,
called adaptive software.
Definition of
: A program is called adaptive if it changes its behavior
according to its context.
This is a high level definition which has to be taken with a grain of salt.
Different kinds of adaptiveness can be achieved depending on what we view
as context. We have focussed on data structures or class structures
or data models to be context.
Instead of viewing a data structure as an integral part of an algorithm
(as is done traditionally),
we view it as context which can be changed significantly
without modifying the program.
A number of other artifacts can be
viewed as context to a program. For example, we could view the inputs
to a program as being context. Then every program becomes adaptive.
Other, more interesting contexts would be:
-
run-time environment
Depending on the other processes with which the program runs,
the program will optimize a parameter to achieve better performance.
-
concurrency properties
Instead of viewing the concurrency related part of a program
as being hardwired to the program, we view it as context which can
be changed. The same program can then work with many concurrency schemes.
-
distribution properties
Instead of hardwiring object migration into the program, we view it
as context. The same program can then be used together with
different object migration strategies.
-
software architecture
Instead of hardwiring the connection between software components
into the program, we view it as context which can be changed.
The same program can then work with a class of software architectures.
-
computational resources (printers, displays, name servers, etc.)
Instead of hardwiring information about computational resources
into a program, we view it as context. The same program
can then work with a family of computational resources.
-
exceptions, failures
Instead of hardwiring exceptions
into a program, we view them as context.
The same program can then work with a family of failure handling schemes.
How can we achieve adaptiveness? A generic mechanism to achieve
adaptiveness is to use collaborating views which are loosely
coupled.
Adaptive software, as currently implemented,
is specified by complementary, collaborating views, each one
addressing a different concern of the application (structure and behavior).
The main goal of
adaptive programming is to minimize dependencies between the
complementary views, so that a large class of modifications in one view
has a minimum impact on the other views.
The complementary views approach has the advantage
that programs become
more flexible, understandable and shorter, without loss of
run-time efficiency.
One aspect which has been well studied recently is to
treat class structures as context.
In this context, an adaptive program, instead of
being written for a specific data model, is written for a generic data model
restricted by a set of structural constraints.
The work of the Demeter Team opens a new research field on
adaptive software.
The Team has bearly scratched the surface of this field with
the publications below.
This research is particularly exciting since it might change the
direction of the software industry.
- 1.
- Paul Bergstein,
``Managing the Evolution of Object-Oriented Systems'', Ph.D. thesis 1994.
- 2.
- Ignacio Silva-Lepe,
``Techniques for Reverse-Engineering and Re-engineering into the
Object-Oriented Paradigm'', Ph.D. thesis 1994.
- 3.
- Cun Xiao,
``Adaptive Software: Automatic Navigation Through Partially Specified
Data Structures'', Ph.D. thesis 1994.
- 4.
- Karl J. Lieberherr and Cun Xiao,
``Customizing Adaptive Software to Object-Oriented Software Using Grammars'',
International Journal of Foundations of Computer Science,
accepted for publication Sep. 1994, World Scientific Publishing Company.
- 5.
- Ling Liu and Roberto Zicari and Walter Hürsch and Karl Lieberherr,
``Polymorphic Reuse Mechanisms for Object-Oriented Database Specifications'',
International Conference on Data Engineering, Houston, Texas,
IEEE, 1993.
- 6.
- Linda Keszenheimer,
``Utilizing Behavioral Abstractions to Facilitate Maintenance
during Class Evolution'',
Proceedings of the 6th Conference on Advanced
Information Systems Engineering,
Utrecht, Netherlands, June 1994, Springer Verlag
Lecture Notes
in Computer Science.
- 7.
- Cristina Videira Lopes and Karl Lieberherr,
``Abstracting Process-to-Function Relations in
Concurrent Object-Oriented Applications'',
European Conference on Object-Oriented Programming,
Bologna, Italy, July 1994, Springer Verlag Lecture Notes
in Computer Science, editors Remo Pareschi and Mario Tokoro.
- 8.
- Walter L. Hürsch, ``Should Superclasses be Abstract?'',
European Conference on Object-Oriented Programming",
Bologna, Italy, July 1994, Springer Verlag Lecture Notes
in Computer Science, editors Remo Pareschi and Mario Tokoro.
- 9.
- Ignacio Silva-Lepe,
``Abstracting Graph-Based Specifications of Object-Oriented Programs'',
ACM Computer Science Conference, Symposium on Applied Computing,
Feb. 1994, Phoenix, Arizona, ACM Press.
- 10.
- Linda Keszenheimer,
``Specifying and Adapting Object Behavior During System Evolution'',
Conference on Software Maintenance,
pages 254-261
Montreal, Canada, September 1993, IEEE Press.
- 11.
- Ignacio Silva-Lepe,
``An Empirical Method for Identifying Objects and their
Responsibilities in a Procedural Program'',
TOOLS Europe, Technology of Object-Oriented Languages and Systems,
Versailles, France, 1993, pages 136-149, Prentice Hall.
- 12.
- Ignacio Silva-Lepe,
``A Model for Migrating Procedural Programs into Object-Oriented Programs'',
TOOLS Pacific, Technology of Object-Oriented Languages and Systems,
Melbourne, Australia, 1993, Prentice Hall.
- 13.
- Paul Bergstein and Walter Hürsch,
``Maintaining Behavioral Consistency during Schema Evolution'',
International Symposium on Object Technologies for Advanced Software,
pages 176-193,
Kanazawa, Japan, Springer Verlag, 1993.
- 14.
- Karl J. Lieberherr and Cun Xiao,
``Formal foundations for object-oriented data modeling'',
IEEE Transactions on Knowledge and Data Engineering, 1993,
Vol. 5, No. 3, pages 462-478, June 1993.
- 15.
- Walter Hürsch, Karl J. Lieberherr and Cun Xiao,
``Object-Extending Class Transformations'',
Formal Aspects of Computing, July 1994, Springer Verlag.
- 16.
- Karl J. Lieberherr and Cun Xiao, ``Evolution of object-oriented software'',
IEEE Transactions on Software Engineering, Vol. 19, No. 4,
pages 313-343, April 1993.
- 17.
- Walter Hürsch, Karl J. Lieberherr and Sougata Mukherjea
``Object-Oriented Schema Extension and Abstraction'',
ACM Computer Science Conference, Symposium on Applied Computing,
Feb. 1993, Indianapolis, Indiana, ACM Press.
- 18.
- Karl J. Lieberherr and Cun Xiao,
``Minimizing Dependency on Class Structures with Adaptive Programs'',
International Symposium on Object Technologies for Advanced Software,
Kanazawa, Japan, Springer Verlag, 1993.
- 19.
- Karl J. Lieberherr, Ignacio Silva-Lepe and Cun Xiao,
``Adaptive Object-Oriented Programming using Graph-Based Customization'',
Communications of the ACM, Vol. 37, No. 5, pages 94-101, May 1994.
- 20.
- Karl J. Lieberherr,
``The Art of Growing Adaptive Object-Oriented Software'',
Book to be published by PWS Publishing Company, 1995, 550 pages.
- 21.
- Ignacio Silva-Lepe, Walter Hürsch and Greg Sullivan,
``A Demeter/C++ Report'',
C++ Report, SIGS Publications, February 1994.
- 1.
- Karl J. Lieberherr and Cun Xiao,
``Minimizing Dependency on Class Structures with Adaptive Programs'',
International Symposium on Object Technologies for Advanced Software,
Kanazawa, Japan, Springer Verlag, 1993 [Given by Walter Hürsch].
- 2.
- Walter Hürsch, Karl J. Lieberherr and Cun Xiao
``Object-Oriented Schema Extension and Abstraction'',
ACM Computer Science Conference, Symposium on Applied Computing,
Feb. 1993, Indianapolis, Indiana, ACM Press, [Given by Walter Hürsch].
- 3.
- Linda Keszenheimer,
``Specifying and Adapting Object Behavior During System Evolution'',
Conference on Software Maintenance,
Montreal, Canada, September 1993, IEEE Press.
- 4.
- Ignacio Silva-Lepe,
``An Empirical Method for Identifying Objects and their
Responsibilities in a Procedural Program'',
TOOLS Europe, Technology of Object-Oriented Languages and Systems,
Versailles, France, 1993, Prentice Hall.
- 5.
- Ignacio Silva-Lepe,
``A Model for Migrating Procedural Programs into Object-Oriented Programs'',
TOOLS Pacific, Technology of Object-Oriented Languages and Systems,
Melbourne, Australia, 1993, Prentice Hall.
- 6.
- Paul Bergstein and Walter Hürsch,
``Maintaining Behavioral Consistency during Schema Evolution'',
International Symposium on Object Technologies for Advanced Software,
Kanazawa, Japan, Springer Verlag, 1993, [Given by Walter Hürsch].
- 7.
- Karl J. Lieberherr, Cristina Lopes, Walter Huersch,
Tutorial presentation on Adaptive Software at ECOOP '94
(half-day).
- 8.
- Karl J. Lieberherr,
invited one hour presentation at Object World Germany, Sept. 1994.
- 9.
- Karl J. Lieberherr,
invited one hour presentation at CRIM, Montreal, Sept. 1994.
- 10.
- Professor Lieberherr gave presentations on adaptive software
at the following companies:
CIBA Geigy, Basel, Switzerland
Kent State University, Cleveland, OH
Raytheon, Bedford, MA.
- 11.
- Karl J. Lieberherr,
Invited presentation at LogOn Technology Transfer Symposium on
Object-Oriented Software, Frankfurt, April 1993.
- 12.
- Karl J. Lieberherr,
invited participation at the ARPA principal investigator
workshop on software composition, Charleston, SC, May 1994.
- 13.
- Karl J. Lieberherr,
invited presentation at the RICOT Symposium in the Netherlands,
June 1994.
-
Natalya Friedman and Karl Lieberherr,
Reuse of Adaptive Software through Opportunistic Parameterization,
NU-CCS-94-17.
-
NSF-ARPA grant CCR-9402486, Engineering Adaptive Software,
July 1, 1994 - June 30, 1997, $ 240000 (NSF part only).
- Graduate student support from Mettler-Toledo for Walter Hürsch,
academic year 93/94.
email: lieberherr@CCS.neu.EDU
Karl Lieberherr
College of Computer Science ftp: ftp.ccs.neu.edu
Cullinane Hall pub/people/lieber
Boston, MA 02115-9959 pub/research/demeter
--------------------------------------------------------
World-Wide Web: Type the command:
xmosaic http://www.ccs.neu.edu/home/lieber
--------------------------------------------------------
To learn more on adaptive software, send the message
subscribe adaptive
to majordomo@ccs.neu.edu
---
Regarding the John Wiley journal "Theory and Practice of Object Systems"
of which I am the editor in chief with Roberto Zicari, send the message
subscribe tapos
to majordomo@ccs.neu.edu
This document was generated using the
LaTeX2HTML translator Version 97.1 (release) (July 13th, 1997)
Copyright © 1993, 1994, 1995, 1996, 1997,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
The command line arguments were:
latex2html -split 2 93-94-report.tex.
The translation was initiated by Karl Lieberherr on 10/29/1998
Subsections
Karl Lieberherr
10/29/1998