A model-based approach to self-adaptive software

G. Karsai, J. Sztipanovits
<span title="">1999</span> <i title="Institute of Electrical and Electronics Engineers (IEEE)"> <a target="_blank" rel="noopener" href="https://fatcat.wiki/container/i6odselg2vhytkiryfsdh6fpjy" style="color: black;">IEEE Intelligent Systems and their Applications</a> </i> &nbsp;
IRONICALLY, THE TREMENDOUS success of software-based solutions has gradually made their fundamental lure-flexibility-less and less achievable. The rapid increase in software system functionality, particularly in real-time, embedded applications, has made software more and more complex. This has complicated their design process, increased expenses, and made applications more rigid. There is ample evidence to suggest the downside of this trend. Software systems have been suffocated by unmanaged
more &raquo; ... mplexity. Testing and retesting of safety-critical systems are expensive. Excessive modification costs are a major impediment to system upgrades. The need to regain flexibility and adaptability in complex software systems is clear, and has become a fundamental challenge of modern software engineering. Self-adaptive software is a technology that brings back flexibility and adaptability in information systems. Embedded information systems in particular show a clear need for self-adaptive behavior. Such systems must be fault-tolerant, autonomous, and highly adaptive to react to environmental changes while still providing acceptable performance. A common challenge in embedded systems is the unpredictable number and kind of environmental events that fundamentally impact the software architecture. In manipulator position control, for example, the controller receives the manipulator's measured position and speed, and calculates a control signal. 1 If one of the sensors breaks down, control can still be maintained, but the controller architecture must be changed. This change impacts the signal flow and computational complexity, which in turn requires changes in controller's software architecture. Current software technology cannot meet such challenges. The state of the art is to prepare the software for all foreseeable operation-mode changes and verify the software exhaustively. The simplest method to implement this limited adaptability in software is to use alternative control paths and runtime decisions. This solution quickly leads to an unmanageable software structure that is difficult to design and impossible to debug. Equally serious is the fact that preparing the software for all possible circumstances leads to overdesign, performance compromises, and design errors. Adaptive systems provide another solution: a feedback loop that monitors system performance and changes the structure accordingly. Here we describe our model-based approach to building self-adaptive software systems. This work is part of our research in Model-Integrated Computing (MIC) and structurally adaptive signal processing 2 and control systems. In our model-based approach, domain-specific, multiple-view models 3 represent the computer application, its environment,
<span class="external-identifiers"> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1109/5254.769884">doi:10.1109/5254.769884</a> <a target="_blank" rel="external noopener" href="https://fatcat.wiki/release/icwll5aeqjeyha5gwpuhflthyq">fatcat:icwll5aeqjeyha5gwpuhflthyq</a> </span>
<a target="_blank" rel="noopener" href="https://web.archive.org/web/20170812002439/http://ivizlab.sfu.ca/arya/Papers/IEEE/Intelligent%20Systems/Model-Based%20Self-Adaptive%20Software.pdf" title="fulltext PDF download" data-goatcounter-click="serp-fulltext" data-goatcounter-title="serp-fulltext"> <button class="ui simple right pointing dropdown compact black labeled icon button serp-button"> <i class="icon ia-icon"></i> Web Archive [PDF] <div class="menu fulltext-thumbnail"> <img src="https://blobs.fatcat.wiki/thumbnail/pdf/19/fe/19febce7d1c90f991d0a2ab9a4f9578a3c8e49ab.180px.jpg" alt="fulltext thumbnail" loading="lazy"> </div> </button> </a> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1109/5254.769884"> <button class="ui left aligned compact blue labeled icon button serp-button"> <i class="external alternate icon"></i> ieee.com </button> </a>