Software systems suffer one basic problem: They are frequently adapted and updated due to changes in requirements and new bugs surfacing. The result of these adaptations is lower availability and missing state of the program. In addition, applying these adaptations requires professional developers which inflict high costs on the organization. In this article, we introduce several methods for adapting programs at run-time without disrupting program execution. This increases system availability. Also, in order to reduce the need for professionals for program modification, some methods that simplify the implementation of new or changed requirements will be offered. As an example, an application written in Java 1.6 has been produced in which both simplification of requirements implementation and hot-swapping (adapting programs at run-time) have been integrated. In this application, we do hot-swapping by using "Java Platform Debugger Architecture API" and attain simplification of presenting new requirements by using "XML-based languages".