next up previous
Next: References Up: The Behavior-Oriented Design of Previous: BOD and Code Reuse

Conclusions

Excellent software engineering is key to developing complete, complex agents. The advances of the last fifteen years in CCA due to the reactive and behavior-based movements come primarily from two engineering-related sources:

  1. the trade-off of slow or unreliable on-line processes of search and learning for the one-time cost of development, and
  2. the use of modularity.
Of course, the techniques of learning and planning cannot and should not be abandoned: some things can only be determined by an agent at run time. However, constraining learning with specialized representations and constraining planning searches to likely solution spaces greatly increases the probability that an agent can reliably perform successfully. Providing these representations and solution spaces is the job of software engineers, and as such should exploit the progress made in the art of software engineering.

In this chapter I have described the recent state-of-the-art in CCA design, and then described an improvement, the Behavior-Oriented Design methodology. This methodology brings CCA development closer to conventional software engineering, particularly OOD, but with the addition of a collection of organizational idioms and development heuristics that are uniquely important to developing AI.


next up previous
Next: References Up: The Behavior-Oriented Design of Previous: BOD and Code Reuse
Joanna J. Bryson 2005-07-08