I've been asked 2 questions:

  1. Why is an argument supplied to the r->l function if there is only 1 agent in the file?
  2. Why are behaviors nested within an agent and not in actual use cases?

These 2 questions are closely related.  Both of them can be answered with a single demonstration.

  1. Begin by opening Agent-01 in Rational Rose.
  2. Display Agent-01's Use Case Diagram in the model browser.
  3. Select the *Agent-01* actor and Export it...
  4. Be sure to save the Petal file somewhere you can find it later...
  5. Open Agent-02 in Rational Rose.
  6. Select the *Agent-02* actor and Export it...
  7. Open Agent-03 in Rational Rose.
  8. Import *Agent-01* and *Agent-02*...
  9. Establish the relationship between *Agent-01* and the "Rotate to Follow Agent" Use Case...
  10. Establish the relationships between *Agent-02* and the "Rotate to Follow Agent" and "Assess Range" Use Cases...
  11. Add the "Find Out of Range" Use Case used by *Agent-02* and relate it to "Assess Range" and "Strafe to Target"...
  12. Use the "Format > Layout Diagram" menu choice to "clean up" the Use Case Diagram.
  13. Save the file under a new name (Agents-01-03.mdl is as good a filename as any)...

This file can now be considered the definition source of *Agent-01*, *Agent-02*, and *Agent-03*.