steering-issta2004 - Improving the Adaptability of...

Info iconThis preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Improving the Adaptability of Multi-mode Systems via Program Steering Lee Lin Michael D. Ernst MIT Computer Science & Artificial Intelligence Lab Cambridge, MA 02139 USA { leelin,mernst } @csail.mit.edu Abstract A multi-mode software system contains several distinct modes of operation and a controller for deciding when to switch between modes. Even when developers rigorously test a multi-mode sys- tem before deployment, they cannot foresee and test for every pos- sible usage scenario. As a result, unexpected situations in which the program fails or underperforms (for example, by choosing a non-optimal mode) may arise. This research aims to mitigate such problems by creating a new mode selector that examines the cur- rent situation, then chooses a mode that has been successful in the past, in situations like the current one. The technique, called pro- gram steering, creates a new mode selector via machine learning from good behavior in testing or in successful operation. Such a strategy, which generalizes the knowledge that a programmer has built into the system, may select an appropriate mode even when the original controller cannot. We have performed experiments on robot control programs written in a month-long programming competition. Augmenting these programs via our program steering technique had a substantial positive effect on their performance in new environments. Categories & Subject Descriptors: D.2.2 [Software Engineer- ing]: Design Tools and Techniques; D.2.4 [Software Engineering]: Software/Program Verification General Terms: performance, design, reliability, experimentation Keywords: program steering, mode selection, multi-mode sys- tems, adaptability 1. INTRODUCTION Software failures often result from the use of software in unex- pected or untested situations, in which it does not behave as in- tended or desired [18]. Software cannot be tested in every situation in which it might be used. Even if exhaustive testing were possi- ble, it is impossible to foresee every situation to test. This research takes a step toward enabling software systems to react appropriately to unanticipated circumstances. Our research focuses on multi-mode software systems. A multi- mode system contains multiple distinct behaviors or inputoutput relationships, and the program operates in different modes depend- Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee....
View Full Document

This note was uploaded on 02/24/2012 for the course CSE 503 taught by Professor Davidnotikin during the Spring '11 term at University of Washington.

Page1 / 11

steering-issta2004 - Improving the Adaptability of...

This preview shows document pages 1 - 2. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online