studies of complex software systems have shown that more than 80%
of the total cost of software development is devoted to software
maintenance. This is mainly due to the need for software systems
to evolve in the face of changing requirements. In some cases, software
evolution may need to be dynamic, with changes being performed on
Despite the importance of software evolution, techniques and technologies
that offer support for software evolution are far from ideal. In
particular, unanticipated requirement changes are not well supported,
although they account for most of the technical complications and
related costs of evolving software.
By definition, unanticipated software evolution (USE) is not something
for which we can prepare during the design of a software system.
Therefore, support for such evolution in programming languages,
and component models and related runtime infrastructures becomes
a key issue. Without it, unanticipated changes often force software
engineers to perform extensive invasive modification of existing
designs and code.
This one-day workshop will address the issues inherent in static
and dynamic evolution of object-oriented and component based systems.
The goal of the workshop is to discuss new approaches and technologies
for building large-scale evolvable software systems.