Software systems steadily tend to be bigger and more complex, making it more difficult to change them, especially during runtime. Several types of runtime software adaptation approaches were proposed to increase the adaptation capability of applications and turn them into an evolution software. Many of these approaches (using software architectural models for example) are implemented during the design phase of software development life cycle, making them ineffective or difficult to use in case of already existing applications. Moreover, the overhead caused by the use of these approaches has not been determined in many cases. In this paper author presents the taxonomy of high- and low-level approaches to runtime software adaptation and then introduces a lightweight prototype programming tool used to add runtime code modification capability (via function hotswapping) to existing applications written in C++ and run under Linux. The tool also enables to replace a defective function by its older or corrected version at runtime. Several tests were prepared to compare traditional C++ applications with the same applications developed with the aforementioned programming tool. Applications were compared in terms of execution time, size of executable code and memory usage. Different size and number of functions have been considered. The paper also researches the constant overhead caused by the programming tool regardless of the target application. The paper ends with the summary of presented approaches and their characteristics, including effects on the targeted systems, capabilities, ease of use, level of abstraction etc.
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.