An essential use case is a nontechnical view of how your system will work with its users. Its goal is to describe various aspects or operations, as well as who might perform these operations, be responsible for their input, or interested in their output. When you identify the actors of a system or create use case diagrams, you are performing essential use case modeling.
Figure 10-1 shows a simple use case diagram for our registration example. Note that it does not attempt to indicate a particular sequence or flow (such as a sequence diagram or flowchart would) but instead provides a graphic representation of the actors for our system along with their primary interaction with the system.
The people in Figure 10-1 are used to represent the actors themselves , and the large rectangle identifies our system. Inside the rectangle, text appears within ovals to identify particular tasks or needs for the actors. The arrows identify the initiation or start of the processes. Thus, we can deduce the following from our diagram (in no particular order):
A student enrolls in a course.
The registrar accepts the enrollment request and processes it.
An instructor receives a roster.
An instructor assigns grades for the course.
The registrar distributes the grades for the course.
Note that we don t identify the details of the tasks. Does the registrar send an e-mail or regular mail to the student? If e-mail, is it sent via SMTP or an internal Lotus Notes mail system? What sort of database are the grades stored in? We can t tell from this diagram, and we shouldn t be able to.
The purpose of the use case diagram is simply to identify the use of the system, not its technical details.
Use case diagrams are accompanied by documentation that describes the actor(s) and the task(s) involved. At the very least, you should document the following items:
The use case name
A paragraph summarizing the diagram
Prerequisites that must be met before a use case takes effect (for example, is the student eligible?)
Results of the use case (for example, the student received her grade)
The basic path that the use case takes (such as the numbered list just mentioned)
References to business rules where applicable (described next )
An example of the documentation for an essential use case might be as follows :
Name : StudentRegister
Description : The student attempts to register, and if the registration is valid, he is registered for the class.
Prerequisites : The student must have no outstanding bills, not already be enrolled in the class, and be in good academic standing.
Student requests registration.
Registrar approves registration and places data into system.
System accepts or declines registration, and notifies registrar.
Registrar notifies student of registration result via e-mail.
Results : The student is either registered in class or is not. The student is sent e-mail notification of the end result either way.