The fact that we’ve been able to teach this process, with only minimal changes, over an entire decade, with it remaining useful and relevant today, is made possible because our process is based on finding the answers to some fundamentally important questions about a system. These questions include the following:
-
Who are the users of the system (the actors), and what are they trying to do?
-
What are the “real world” (problem domain) objects and the associations among them?
-
What objects are needed for each use case?
-
How do the objects collaborating within each use case interact?
-
How will we handle real-time control issues?
-
How are we really going to build this system on a nuts-and-bolts level?