Actors interact with the system by using use cases (actors initiate execution of use case) and by being used by use cases (actors provide functionality for the execution of the use case). Actors represent roles that users / systems adopt.
Specific users can adopt and set aside multiple roles simultaneously.
Actors are not part of the system / they are outside of system boundaries.
graph { label="role of the users of the system" A [shape=star label="" xlabel="A"]}
Use cases describe the functionality expected from the system under development, it provides tangible benefit for one or more actors that communicate with this use case. It is derived from the customer’s wishesw
graph { label="unit of functionality of the system" A}
Associations connect Actors and use cases via solid lines. Every actor must communicate with at least one use case. An association is always binary and multiplicities may be specified.
graph { nodesep=0.8 subgraph cluster0 { label = "Laboratory Assignment" c [label="Conduct oral exam"] } c--a c--s [label="1..3"] a [shape=star label="" xlabel="Assistant"] s [shape=star label="" xlabel="Student"]}
Generalisation shows inheritance relationships between actors or use cases.
Multiple inheritance is permitted, abstract actors are possible.
Sub-actors can access all of their use cases plus those of the super-actor.
The include relationship, ⟨⟨include⟩⟩, is where the behaviour of one use case (included use case) is integrated in the behaviour of another use case (base use case).
The extend relationship, ⟨⟨extend⟩⟩, is where the behaviour of one use case (extending use case) may be integrated in the behaviour of another use case (base use case) but does not have to. Both use cases may be executed independently of each other.
A decides if B is executed.
Extension points define at which point the behaviour is integrated.
Conditions define under which circumstances the behaviour is integrated.
Multiple extension points may be specified.
Extension points are written directly on the use case.