Object oriented analysis and design (OOAD) methodologies are well established, offering a plethora of methodologies depending on the needs of the project and the skills of the development team; e.g., eXtreme Programming, Domain Driven Design, Agile Modeling, and Crystal Clear.  (Scrum is omitted as it lacks adequate direction for OOAD; albeit, it’s a terrific project management methodology.)  Indeed, a pivotal element of any successful software development endeavor is the careful selection of a methodology for defining project requirements and designing the solution.  A challenge with applying traditional OOAD methodology to robot and multi-agent control systems is the traditional methodologies’ bias towards defining the structure and properties of objects and applying behaviors to those objects as a secondary concern.  But in the world of robotics, the emphasis needs to be squarely placed on behavior as the centerpiece of design.  This does not imply that the methodology will result in a behavior-based, subsumption architecture, but instead that the robot’s goal-driven and event-driven behavior is at the very core of what is being modeled.  Accordingly, a number of agent-oriented analysis and design (AOAD) methodologies have emerged over the years in response to this disconnect between traditional OOAD methodologies and the needs of agent-oriented systems.

What follows is a brief listing of a few notable AOAD methodologies representing a wide cross-section of approaches:

  • Australian AI Institute (AAII) (now defunct) developed a methodology for designing Procedural Reasoning Systems (PRS) built on a belief-desire-intention, logic paradigm.  This methodology is concisely described in Michael Wooldrige’s Introduction to MultiAgent Systems.  AAII’s methodology is strongly rooted in OOAD with extensions for agent-based design.
  • The Tropos methodology is a full project life-cycle methodology based on actors, goals, plans, resources, dependencies, capabilities, and beliefs.  A Tropos project begins by defining the actor and dependency models which reflect “who” is involved and the dependencies between the actors.  Project design continues by defining a goal model and a respective plan model for describing “canned plans” for achieving the goals.
  • Lightly defined methodologies for the design of reactive/behavioral systems (those that Brooks likes) are defined in Introduction to AI Robotics by Robin Murphy (pg. 163) and in Behavior-Based Robotics by Ronald Arkin (pg. 155).
  • The 4D/RCS methodology describes a comprehensive methodology for the design of systems built upon the guidance of the 4D/RCS reference architecture.  Incidentally, although intended for 4D/RCS projects, the methodology itself is quite compatible with other layered architectures, such as 3T and other hybrid architectural solutions.
  • Although more of an architectural model than a methodology, Jörg Müller’s The Design of Intelligent Agents includes a couple of case studies on defining requirements for various layers of an InteRRaP architectural solution.  These complement any methodology you may pick as further examples of taking an agent-oriented approach to requirements definition.
  • Other notable methodologies, still frequently used, include Gaia, Prometheus, and MaSE.

If you’d like to learn more about other agent-oriented methodologies, an almost comprehensive survey of options, with a good introduction to each, has been put together by the University of British Columbia in Analysis and Design of Agent-Oriented Information Systems (AOIS); or, if you’re willing to shell out some cash, see Federico Bergenti’s Methodologies and Software Engineering for Agent Systems.

In the next post, we’ll examine some of the architectural constraints of our project and determine which AOAD methodology will be right.

Billy McCafferty

This post is one in a series for the commercial development of a multi-agent, robotic, bell pepper picking team with scalable planning, supporting unstructured, outdoor horticulture.  If you’d like to follow along, be sure to subscribe to SharpRobotica.com.  In addition to commenting on posts, feel free to contact me anytime if you would like to discuss collaboration or funding prospects.