Role playing is a surprisingly widely accepted and recommended technique for analyzing the behavior of a proposed software system. As the name implies, it's a group activity that serves to both to discover and partition required functionality as well as enlighten the paticipants about the nuances of the system.

Each member of the group is assigned a role that is of interest to the system. As the exercise evolves, and new roles are discovered, more participants are brought into play.

Roles are users, the system itself, other systems, and sometimes entities that are maintained by the system. The group then walks through how the system is used.

The key activity of role playing is the discussion about who is responsible for what. Definitely take notes on the responsibilities of each role. Having developers and analysts play the part of the user or customer helps gain real insights into the problem domain.

Role playing can be formal: You could, for example, perform scripted walkthroughs of how the system is used. If you have full or partial Use Cases, you can use them as a basis for the script. The walkthrough can also be performed at a business level, using the Business Use Cases as a basis for the script.