Requirements Modelling Flashcards
Breifly describe use case modelling
Why do we do it?
User-centric approach. Identify typical users and the tasks they typically perform to capture functional requirements incrementally.
Idea is that it’s hard to specify all system reqs top-down, but is easier to identify what single users expect to be able to do. Structure the requirements model gradually, identifying obvious event flows first, and filling gaps with alternative event flows.
What is use case modelling good at? What is it bas at?
Good at capturing what a system does
Not good at expressing control logic
What is an Actor?
Type of external user interacting with the system; not the individual but the role they play
Not necessarily a person, eg external computer system
What is a Use Case?
sequence of related transactions between an actor and a system that yields a result of measurable value.
Use cases are restricted to a particular size
related collection of evetn flows
Accomplish a single business objective
How do we identify use cases?
Interviews: identify main actors, main use cases, secondary actors, and extra use cases
Documenting: use usa case diagram to link actors to use cases
UML Syntax: how do we draw use cases?
labelled ellipse
verb expressions to label each use case
within or outside the version boundary
UML Syntax: how do we draw actors?
labelled stick figure
name each actor according to role played
UML Syntax: how do we draw associations
Line not quite touching each end
link actors to use cases
Why and How do we document use cases?
Why: to describe the funcitonality in detail.
How: want to collect scenarios incrementally. Document main success scenario first (normal flow), document extensions later (divergences from normal flow, variant flows)
Write as a sequence of events, in style of a dialogue
3 different levels of formality for writing use cases
Brief: v short description; fit in spreadsheet cell
Casual: several paragraphs in natural language
Fully dressed: written according to structured template
What are the required sections for writing a “fully dressed use case”
Name; purpose; enabling condition; flow of events; success condition
What is an optional extension, when looking at use cases?
optional inserted behaviour that is sometimes executed; then normal flow is resumed
What is an alternative extension, when looking at use cases?
A second successful path through the use case; that may resume normal flow or end flow independently
What is a failure extension, when looking at use cases?
An exception that causes the use case to fail without reaching its objective, a failure condition must be stated
What sections are required for documenting a use case extension?
Name, extension point, enabling condition, flow of events, success/failure condition