Information Reuse and Stochastic Search

2021 ◽  
Vol 15 (1) ◽  
pp. 1-36
Author(s):  
Cody Kinneer ◽  
David Garlan ◽  
Claire Le Goues

Many software systems operate in environments of change and uncertainty. Techniques for self-adaptation allow these systems to automatically respond to environmental changes, yet they do not handle changes to the adaptive system itself, such as the addition or removal of adaptation tactics. Instead, changes in a self-adaptive system often require a human planner to redo an expensive planning process to allow the system to continue satisfying its quality requirements under different conditions; automated techniques must replan from scratch. We propose to address this problem by reusing prior planning knowledge to adapt to unexpected situations. We present a planner based on genetic programming that reuses existing plans and evaluate this planner on two case-study systems: a cloud-based web server and a team of autonomous aircraft. While reusing material in genetic algorithms has been recently applied successfully in the area of automated program repair, we find that naively reusing existing plans for self- * planning can actually result in a utility loss. Furthermore, we propose a series of techniques to lower the costs of reuse, allowing genetic techniques to leverage existing information to improve utility when replanning for unexpected changes, and we find that coarsely shaped search-spaces present profitable opportunities for reuse.

2021 ◽  
Vol 20 (4) ◽  
pp. 18-34
Author(s):  
Md Rakibul Islam ◽  
Minhaz F. Zibran

A deep understanding of the common patterns of bug-fixing changes is useful in several ways: (a) such knowledge can help developers in proactively avoiding coding patterns that lead to bugs and (b) bug-fixing patterns are exploited in devising techniques for automatic bug localization and program repair. This work includes an in-depth quantitative and qualitative analysis over 4,653 buggy revisions of five software systems. Our study identifies 38 bug-fixing edit patterns and discovers 37 new patterns of nested code structures, which frequently host the bug-fixing edits. While some of the edit patterns were reported in earlier studies, these nesting patterns are new and were never targeted before.


2007 ◽  
Vol 4 (2) ◽  
pp. 116-130 ◽  
Author(s):  
Ján Kollár ◽  
Jaroslav Porubän ◽  
Peter Václavík ◽  
Jana Bandáková ◽  
Michal Forgác

From the viewpoint of adaptability, we classify software systems as being nonreflexive, introspective and adaptive. Introducing a simple example of LL(1) languages for expressions, we present its nonreflexive and adaptive implementation using Haskell functional language. Multiple metalevel concepts are an essential demand for a systematic language approach, to build up adaptable software systems dynamically, i.e. to evolve them. A feedback reflection loop from data to code through metalevel data is the basic implementation requirement and the proposition for semi-automatic evolution of software systems. In this sense, practical experiment introduced in this paper is related to the base level of language, but it illustrates the ability for extensions primarily in horizontal but also in vertical direction of an adaptive system.


Author(s):  
Andreas Metzger ◽  
Elisabetta Di Nitto

This chapter sets out to introduce relevant foundations concerning evolution and adaptation of service-oriented systems. It starts by sketching the historical development of software systems from monolithic and mostly static applications to highly-dynamic, service-oriented systems. Then, it provides an overview and more thorough explanation of the various kinds of changes that may need to be faced by service-oriented systems. To understand how such changes could be addressed, the chapter introduces a reference service life-cycle model which distinguishes between evolution, viz. the manual modification of the specification and implementation of the system during design-time, and (self-)adaptation, viz. the autonomous modification of a service-oriented system during operation. Based on the discussion of the key activities prescribed by that life-cycle, the chapter elaborates on the need for agility in both adaptation and evolution of service-oriented systems.


2021 ◽  
pp. 159-165
Author(s):  
Giovani Guizzo ◽  
Aymeric Blot ◽  
James Callan ◽  
Justyna Petke ◽  
Federica Sarro

Sign in / Sign up

Export Citation Format

Share Document