Extra notes - Use cases
A use case is a description of a set of sequences of actions, including variants, that a system performs to yield an observable result of value to an actor.
Graphically, a use case is rendered as an ellipse.
Sequences of actions: "I do this", "System does that", to and fro from actor and system. An actor is a user fulfilling a particular role. The "observable result" is something functional that needs to be done to achieve the goal of the use case. Note that it is typically a "set" of sequences, not just a single sequence of actions.
A use case is typically documented as a numbered list. Normal flow and exception flows form part the sets of sequences.
At some point, each use case will have a realisation. The realisaton will be an interaction between software objects. This can be represented by a class diagram or a sequence diagram (where messages get passed between instances).