29 research outputs found
Online Search in Behavioral Programming Models
Abstract-We present a model based approach to Search Based Software Engineering (SBSE). The approach is based on the Behavioral Programming (BP) paradigm where independent aspects of behavior are woven at run time using a simple interaction protocol. We propose to extend the behavioral programming execution mechanism with on-line heuristic search in program state space that allows programmers to develop non-deterministic programs while relying on a "smart" event selection mechanism to resolve non-determinism in a way that maximizes a specified heuristic function. The paper presents a new library that we have developed in Java and in JavaScript, using Rhino, to facilitate the proposed modeling approach and programming style. We give examples, in the context of a StarCraft game bot built with the library, that demonstrate how the proposed programming idioms can simplify the code and help build robust reactive systems. I. MOTIVATION AND BACKGROUND Search Based Software Engineering (SBSE) is an emerging field of research which aims to cope with the increased demand for functionality, scalability, and robustness of computer programs (and of reactive robotic systems in particular) using heuristic search mechanisms Despite the research activity in the area, search methods are practically used only in specific domains. Harman [2] reports, for example, that 54% of SBSE tools are used for testing purposes, an additional 11% for maintenance, and another 10% for project management. It seems that the main barrier that delays further adaptation of the technique is shortage in models for online search The goal of this this paper is to explore how SBSE can be made accessible to modelers and programmers of reactive systems, such as robotic applications and interactive game bots, as idioms that integrate with standard constructs in common modeling and programming languages. This allows for natural, powerful derivation from modeling languages (such as LSC 3) If unsatisfied with the execution's choices, extend the model by formalizing more refined requirements. 4) Repeat steps 2 and 3 until the behavior is satisfactory. The behavioral programming (BP) paradigm that we focus on in this paper is described in detail in Section II. BP extends and generalizes scenario-based programming which was introduced with the language of live sequence charts (LSC) The idea of "smart" execution of scenario based specifications started in II. BEHAVIORAL PROGRAMMING PRINCIPLES As presented in As shown i