Monitoring deployed software using software tomography
Proceedings of the 2002 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Leveraging field data for impact analysis and regression testing
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Mutatis mutandis: safe and predictable dynamic software updating
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Towards a unified formal model for supporting mechanisms of dynamic component update
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
A component-based approach to online software evolution: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice
Practical dynamic software updating for C
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Dynamic updates: another middleware service?
MAI '07 Proceedings of the 1st workshop on Middleware-application interaction: in conjunction with Euro-Sys 2007
POLUS: A POwerful Live Updating System
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Mutatis Mutandis: Safe and predictable dynamic software updating
ACM Transactions on Programming Languages and Systems (TOPLAS)
Towards dynamic plug-in replacement in Eclipse plug-in development
Proceedings of the 2007 OOPSLA workshop on eclipse technology eXchange
Reboots are for hardware: challenges and solutions to updating an operating system on the fly
ATC'07 2007 USENIX Annual Technical Conference on Proceedings of the USENIX Annual Technical Conference
Towards modelling and analysis of a coordination protocol for dynamic software adaptation
CSTST '08 Proceedings of the 5th international conference on Soft computing as transdisciplinary science and technology
Overcoming JVM HotSwap constraints via binary rewriting
Proceedings of the 1st International Workshop on Hot Topics in Software Upgrades
Dynamic update of Java applications—balancing change flexibility vs programming transparency
Journal of Software Maintenance and Evolution: Research and Practice - Special Issue on the 12th Conference on Software Maintenance and Reengineering (CSMR 2008)
Dynamic software updates: a VM-centric approach
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Dynamic Software Updates for Accelerating Scientific Discovery
ICCS '09 Proceedings of the 9th International Conference on Computational Science: Part I
Towards a dynamic-update-enabled JVM
Proceedings of the Workshop on AOP and Meta-Data for Software Evolution
Proceedings of the 2006 conference on New Trends in Software Methodologies, Tools and Techniques: Proceedings of the fifth SoMeT_06
Flexible and Efficient In-Vivo Enhancement for Grid Applications
CCGRID '09 Proceedings of the 2009 9th IEEE/ACM International Symposium on Cluster Computing and the Grid
Enhancing source-level programming tools with an awareness of transparent program transformations
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Dynamic Classes: Modular Asynchronous Evolution of Distributed Concurrent Objects
FM '09 Proceedings of the 2nd World Congress on Formal Methods
Dynamic code evolution for Java
Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java
Aspect-based dynamic software updating: a model and its empirical evaluation
Proceedings of the tenth international conference on Aspect-oriented software development
Evolutionary repair of faulty software
Applied Soft Computing
Run-time phenomena in dynamic software updating: causes and effects
Proceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution
Safe and atomic run-time code evolution for Java and its application to dynamic AOP
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Improving user experience by infusing web technologies into desktops
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
A dynamic update framework for OSGi applications
HPCA'09 Proceedings of the Second international conference on High Performance Computing and Applications
A dynamic class construct for asynchronous concurrent objects
FMOODS'05 Proceedings of the 7th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
Using first-class contexts to realize dynamic software updates
Proceedings of the International Workshop on Smalltalk Technologies
Type-Safe runtime class upgrades in creol
FMOODS'06 Proceedings of the 8th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
Incremental dynamic updates with first-class contexts
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
Unrestricted and safe dynamic code evolution for Java
Science of Computer Programming
Hi-index | 0.00 |
During maintenance, systems are updated to correctfaults, improve functionality, and adapt the software tochanges in its execution environment. The typical software updateprocess consists of stopping the system to be updated,performing the update of the code, and restartingthe system. For systems such as banking and telecommunicationsoftware, however, the cost of downtime can be prohibitive.The situation is even worse for systems such asair-traffic controllers and life-support software, for whicha shut-down is in general not an option. In those cases,the use of some form of on-the-fly program modification isrequired. In this paper, we present a new technique for dynamicupdating of Java software. Our technique is basedon the use of proxy classes and requires no support fromthe runtime system. The technique allows for updating arunning Java program by substituting, adding, and deletingclasses. We also present DUSC (Dynamic Updating throughSwapping of Classes), a tool that we developed and that implementsour technique. Finally, we describe an empiricalstudy that we performed to validate the technique on a realJava subject. The results of the study show that our techniquecan be effectively applied to Java software with onlylittle overhead in both execution time and program size.