Results 1 -
2 of
2
Practical Dynamic Software Updating
, 2008
"... This dissertation makes the case that programs can be updated while they run, with modest programmer effort, while providing certain update safety guarantees, and without imposing a significant performance overhead. Few systems are designed with on-the-fly updating in mind. Those systems that permit ..."
Abstract
-
Cited by 55 (20 self)
- Add to MetaCart
This dissertation makes the case that programs can be updated while they run, with modest programmer effort, while providing certain update safety guarantees, and without imposing a significant performance overhead. Few systems are designed with on-the-fly updating in mind. Those systems that permit it support only a very limited class of updates, and generally provide no guarantees that following the update, the system will behave as intended. We tackle the on-the-fly updating problem using a compiler-based approach called dynamic software updating (DSU), in which a program is patched with new code and data while it runs. The challenge is in making DSU practical: it should support changes to programs as they occur in practice, yet be safe, easy to use, and not impose a large overhead. This dissertation makes both theoretical contributions—formalisms for reasoning about, and ensuring update safety—and practical contributions—Ginseng, a DSU implementation for C. Ginseng supports a broad range of changes to C programs, and performs a suite of safety analyses to ensure certain update safety
Towards Seamless and Ubiquitous Availability of Dynamic Information in IDEs ∗
"... Software developers faced with unfamiliar objectoriented code need to build a mental model of the system to understand its dynamic flow. Development environments typically provide static views of the source code (e.g., classes and methods), but do not explicitly represent dynamic collaborations. The ..."
Abstract
- Add to MetaCart
Software developers faced with unfamiliar objectoriented code need to build a mental model of the system to understand its dynamic flow. Development environments typically provide static views of the source code (e.g., classes and methods), but do not explicitly represent dynamic collaborations. The task of revealing how static source artifacts interact at runtime is thus challenging.To address this we have developed several techniques to represent dynamic behavior at various levels of granularity directly in the IDE. In this paper we outline these various techniques towards a seamless integration of dynamic information in the IDE. We elaborate on user feedback we have gathered and on our empirical experiments to validate our work. We derive several ideas and visions of further potential representations of dynamic behavior from this analysis of our approach. The missing representations we identify serve to enrich our proposed IDE, so as to provide the developer from within the IDE with a readily available and complete picture of a software’s dynamics.

