A small summary addressing weakness and strength of CBR:
Cosimo Anglano and Stefania Montani suggest a cased-based reasoning (CBR) approach for achieving self-healing autonomic software system (Anglano and Montani 2005). In their concept software systems are able to manage themselves in accordance with high-level guidance from humans. An Autonomic Computing System (ACS) is composed in two entities, the managed element and the manager which is, in the ideal case, full autonomic. The manager is composed of five interacting but self-containing modules. The knowledge element is building the base, learning systems must have a memory. As with our brain, the memory has to be created and changed by different processes. The processes in the ACS Manger can be found in the MAPE strategy, also called as autonomic cycle. MAPE stands for Monitor, Analyze, Plan and Execute which are the other four outstanding modules build around the knowledge. Newton, one of the founders of empiricism, separates the brain from the real world with which the brain interacts and continuously learns from observations. Newton also states that humans are born with pre knowledge. In a philosophical view the ACS is purely empirical approach exactly like Newton described it. However in autonomic computing systems should exhibit these four properties: self-healing, self-configuring, self-optimizing and self-protecting, but the paper of Anglano and Montani addresses only self-healing with the CBR approach. I think the self-healing approach is the most important, on top of that one can build the self-configuring and self-protecting. On top of the self-configuring one can build self-optimizing. This can be analyzed by the idea of a child which falls to the ground while learning how to walk. After the self-healing, in this example, getting up on the legs again, it needs to self-reconfigure and self-protect. After a while it can self-optimize and learn how to run. The ability of self-healing, to repair the managed element after a fault is described and approached with the CBR approach.
The CBR approach:
The Case-Based Reasoning approach is an approach to transform unformalized knowledge into formalized knowledge called cases. The cases describe a problem, its solution and the outcome, in self-healing autonomous systems. With the help of existing solved cases, new problem cases are solved. This approach can be compared to human experts’ analogical reasoning, my remembering solutions to similar problems adopted in the past, and adopting them to the current situation (Anglano and Montani 2005). By comparing the CBR approach to human reasoning the problems gets clear. Machines are not human and can not reason qualitative. This is why there are two strategies for implementing CBR:
1.Reasoning quantitative, a solution is applied of a similar problem with almost no adoption. This strategy called precedent Case-Based Reasoning
2.New or similar cases are solved with an adopted or new solution, although usually some user intervention is needed, because computers can not reason qualitative. This strategy is called Case-Based Problem solving. Cased-Based Problem solving is build on Case-Based Reasoning.
In CBR features and cases have to be created for the managed element. For example a system has some attributes that can cause a fault. These attributes are captured with possible values they can hold. A case is a problem scenario where some attributes have a one of their possible values and the solution to fix this problem. The core of CBR is an algorithm that compares a new case to the existing cases. The solution of the most similar case is used and evaluated. A known set of reconfiguration in the planning module can adopt the solution if not successful, or an intervention of a human can solve the case that is stored for future new problems.
Anglano and Montani (2005), “Achieving Self-Healing in Autonomic Software Systems: a Cased-Based Reasoning Approach”, Università del Piemonte Orientale, Italy