The authors describe a software tool they developed to include adaptive behavior in C++ programs, namely, to make a C++ program capable of modifying its behavior at runtime in response to changes in the environment. The authors build on a similar tool they already developed for the Java language; this work describes the similarities and differences between the two tools, as well as the process that led from the Java tool to the C++ one.
They begin by framing the problem of adding adaptive behavior in software applications and discuss its present relevance, due, for example, to the rise of mobile applications; they explain that the main problem consists of introducing adaptive behavior in languages with little or no support for dynamic adaptation. They then describe the adaptive message-handling protocol they developed in the Java version of their tool. They go on to explain how they extended dynamic adaptation to C++, and how structural differences between the two languages gave rise to two radically different tools. This is the core of the paper, with each feature described in detail, supported by diagrams and excerpts of code. In the last section of the paper, the authors apply their tool to a browser system that streams text over a transmission control protocol (TCP) socket. In this way, they are able to monitor socket activity.
This is a technical paper; it is very detailed, and covers all major aspects and issues of dynamic adaptation. The authors are clearly leaders in this field; their writing is authoritative yet clear, and key concepts are marked by references to previous research conducted by them, as well as by other groups. All references are then grouped together at the end of the paper in a very detailed bibliography. Figures and excerpts of code also help explain core concepts.
The main audience for this paper is professional software developers; a strong competence not only in programming, but also in this particular field is recommended to gain full advantage from this paper.