Refactorings of software components (e.g., libraries and frameworks) can change the APIs of the components. To use the latest version of a component, applications that reuse those APIs need to be updated. Traditionally, this is done manually, which is error-prone, tedious, and disruptive. The problem is exacerbated for long-running applications (e.g., servers) that cannot be shut down, updated, and restarted. This paper presents a practical approach and our tool, dReAM, to automat-ically and safely update running Java applications without restarting them. At the core lies a formal representation of programs to validate the composition of refactorings and other API changes to both component and application. If dReAM finds that there are no c...
textBecause software systems are imperfect, developers are forced to fix bugs and add new features....
Frameworks and libraries change their APIs. Migrating an application to the new API is tedious and d...
This paper describes a tool we developed enabling the distribution of updated versions of Java class...
Recent research showed that the majority of compatibility-breaking changes in a component-based, obj...
Software developers like to reuse software components such as libraries or frameworks because it let...
The requirement for 24/7 availability of distributed applications complicates their maintenance and ...
ii iii This dissertation is about allowing existing applications to be updated while running. By com...
This work concerns with dynamic evolution of applications written in Java. It investigates existing ...
Software is changed frequently during its life cycle. New requirements come, and bugs must be \ufb01...
TDuring maintenance, systems are updated to correct faults, improve functionality, and adapt the s...
Dynamic code evolution is a technique to update a program while it is running. In an object-oriented...
Software development is an ongoing process which does not end when the first version of an applicati...
Software systems have become playing more and more important roles in human daily life. Even a tempo...
Object-oriented programming languages presently are the dominant paradigm of application development...
This paper presents Rubah, a new dynamic software up-dating (DSU) system for Java programs that work...
textBecause software systems are imperfect, developers are forced to fix bugs and add new features....
Frameworks and libraries change their APIs. Migrating an application to the new API is tedious and d...
This paper describes a tool we developed enabling the distribution of updated versions of Java class...
Recent research showed that the majority of compatibility-breaking changes in a component-based, obj...
Software developers like to reuse software components such as libraries or frameworks because it let...
The requirement for 24/7 availability of distributed applications complicates their maintenance and ...
ii iii This dissertation is about allowing existing applications to be updated while running. By com...
This work concerns with dynamic evolution of applications written in Java. It investigates existing ...
Software is changed frequently during its life cycle. New requirements come, and bugs must be \ufb01...
TDuring maintenance, systems are updated to correct faults, improve functionality, and adapt the s...
Dynamic code evolution is a technique to update a program while it is running. In an object-oriented...
Software development is an ongoing process which does not end when the first version of an applicati...
Software systems have become playing more and more important roles in human daily life. Even a tempo...
Object-oriented programming languages presently are the dominant paradigm of application development...
This paper presents Rubah, a new dynamic software up-dating (DSU) system for Java programs that work...
textBecause software systems are imperfect, developers are forced to fix bugs and add new features....
Frameworks and libraries change their APIs. Migrating an application to the new API is tedious and d...
This paper describes a tool we developed enabling the distribution of updated versions of Java class...