SHAGE: a framework for self-managed robot software

Behavioral, situational and environmental changes in complex software, such as robot software, cannot be completely captured in software design. To handle this dynamism, self-managed software enables its services dynamically adapted to various situations by reconfiguring its software architecture during run-time. We have developed a practical framework, called SHAGE (Self-Healing, Adaptive, and Growing SoftwarE), to support self-managed software for intelligent service robots. The SHAGE framework is composed of six main elements: a situation monitor to identify internal and external conditions of a software system, ontology-based models to describe architecture and components, brokers to find appropriate architectural reconfiguration patterns and components for a situation, a reconfigurator to actually change the architecture based on the selected reconfiguration pattern and components, a decision maker/learner to find the optimal solution of reconfiguring software architecture for a situation, and repositories to effectively manage and share architectural reconfiguration patterns, components, and problem solving strategies. We conducted an experiment of applying the framework to an infotainment robot. The result of the experiment shows the practicality and usefulness of the framework for the intelligent service robots.