Abstract
Self-adaptation ability is particularly desirable for mission critical software (MCS). This paper proposes a fuzzy control-based approach to provide a systematic, engineering, and intuitive way for programmers to achieve software self adaptation. This approach uses fuzzy logic to handle uncertainty in software, uses natural-language style to describe self-adaptation logic, and makes control visible in software. These greatly shorten the knowledge and semantics gap between control engineering and software engineering, and reduce the realization difficulty of software self-adaptation. We illustrate our approach through the development of an adaptive MCS application in process control systems.