Next: References
Up: The Behavior-Oriented Design of
Previous: BOD and Code Reuse
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:
- the trade-off of slow or unreliable on-line processes of
search and learning for the one-time cost of development, and
- 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: References
Up: The Behavior-Oriented Design of
Previous: BOD and Code Reuse
Joanna J. Bryson
2005-07-08