Scenarios and UseCases
Scenarios and Use-Cases are an ideal place to start a project.
They must be expressed in terms that the user and client understands
and can (and should) avoid all technical jargon. The set of usecases
answer the questions:
A scenario describes a particular user getting something useful done. A usecase is a set of similar scenarios all with the same type of user and all ending when the user finds out that the process is complete. The user must begin a usecase and must know when it is complete. The user must be active entity - an actor - and communicates with the system to achieve the goal of the usecase.
A usecase is written out in a natural language like English. UML provides a notation for naming and classifying both actors and usecases. Here is a UML diagram that shows three usecases: "add class", "drop class", "get roster", and "submit work" and two actors: "Student" and "Teacher".
Notice the use of a "stick figure" to indicate a class of actors. The usecase is indicated by an oval. Communication is modeled as a simple link between an actor and an usecase.
It is also possible to use the UML generalization relationship between classes of actors: For example a Graduate Student might be a special kind of Student and so could share the Add Class Scenario. The generalisation link is also used between Usecases to indicate that one usecase is a special case of another one, or that one usecase makes use of another one.
The above diagram indicates the following sequence of events (inside our program):
The diagram above describes the following:
. . . . . . . . . ( end of section Interaction Diagrams) <<Contents | End>>
State Transition Diagrams
State transition diagrams have been a part of computer science and computer
programming since the 1940's. David Harel in the middle 1980's reinvented
the state transition diagram in a form that has become popular in many
different notations and methods. UML incorporates Harel's StateCharts
as a way to work out, document and verify the gross patterns of behavior
of an object in a class.
The basic rules are easy to state.
Here are a pair of examples showing the life of an idealized Student.
You will notice that in the above pair of diagrams the bottom one has the name of a state in the upper diagram. This means that the the state has been refined. It is also possible to redraw the two diagrams as a single diagram with the refinement replacing the unrefined state.
. . . . . . . . . ( end of section Dynamic Models) <<Contents | End>>
Glossary
Note. In this glossary a definition is written like this
defined_term::=what_the_term_means.When there are several alternative meanings they are separated by a vertical bar symbol: "|". This is an informal extension of the notation John Backus and Pete Naur developed in 1960. [ BNF in glossary ] [ BNF in comp.text.Meta ] [ algol60.syntax.html ]