History of Behavior Engineering

Behavior Engineering and the concepts for its application in systems and software engineering were originally developed by Prof Geoff Dromey at Griffith University in Australia. Early publications on this work used the terms “genetic software engineering” and “genetic design” to describe the application of behavior trees. The reason for originally using the word genetic was because sets of genes, sets of jigsaw puzzle pieces and sets of requirements represented as behavior trees all appeared to share several key properties:

  • they contained enough information as a set to allow them to be composed – with behavior trees this allows a system to be built out of its requirements
  • the order in which the pieces were put together was not important – with requirements this aids coping with complexity
  • when all the members of the set were put together the resulting integrated entity exhibited a set of important emergent properties.
  • For behavior trees important emergent properties include
  • the integrated behavior of the system implied by the requirements
  • the coherent behavior of each component referred to in the requirements.

These genetic parallels, in another context, were originally spelled by Woolfson, (A. Woolfson, Living Without Genes, Flamingo, 2000)
Further weight for use of the term genetic came from eighteenth century thinker Giambattista Vico, who said, “To understand something, and not merely be able to describe it, or analyse it into its component parts, is to understand how it came into being – its genesis, its growth … true understanding is always genetic”. Despite these legitimate genetic parallels it was felt that this emphasis led to confusion with the concept of genetic algorithms. As a result the term Behavior Engineering was introduced to describe the processes that exploit behavior trees to construct systems. The term “behavior engineering” has previously been used in a specialized area of Artificial Intelligence – robotics research. The present use embraces a much broader rigorous formalization and integration of large sets of behavioral and compositional requirements needed to model large-scale systems.

Since the Behavior Tree Notation was originally conceived a number of people from the DCCS (Dependable Complex Computer-based Systems Group – a joint University of Queensland, Griffith University research group) have made important contributions to the evolution and refinement of the notation and to the use of Behavior Trees. Members of this group include: David Carrington, Rob Colvin, Geoff Dromey, Lars Grunske, Ian Hayes, Diana Kirk, Peter Lindsay, Toby Myers, Dan Powell, John Seagrott, Cameron Smith, Larry Wen, Nisansala Yatapanage, Kirsten Winter, Saad Zafar, Forest Zheng.

Probabilistic Timed Behavior Trees have recently been developed by Colvin, Grunske and Winter so that reliability, performance and other dependability properties can be expressed.