3 - Use Cases Flashcards
(23 cards)
How is the project description created?
Not by the customer.
It is written by the dev team, in conjunction with the customer
Not complete at start, more details added later
What documents are created at the start of the process?
Project description
Risk analysis
What are some examples of risks?
Lack of user acceptance. System must be easy for non-technical people (Requirements risk)
Some people designing the software are inexperienced (skills risk)
Handling database crashes (technical risk)
Might not get resources to complete project (political risk)
What is the system boundary?
Identifies components that need to be built (inside boundary) and things that already exist and don’t need to be built (outside the boundary)
Need to interface to those outside the boundary
How do we discover the system boundary?
Describing the actors and use cases
What is an Actor?
Objects outside the system, they initiate activities using the system (active) or respond to activities (passive)
Can be people, other software, hardware, databases or networks
What is an Actor Role?
Purpose of an actor rather than an individual person
One person might take on several roles so represented by several different actors
Several people might perform same role so represented by one actor
How is an Actor described?
Stick figure with label for role
Should also provide short description for an actor’s role in the system (a sentence is fine)
How do we find use cases?
Looking at actors and what activity they initiate
How do we record a use case?
An oval with a simple description
This is UML
How should a use case be recorded/described (best way)?
Short, doing one thing well, to make it unambiguous
How to do a use case/actor diagram?
Actors on left, separated from use cases by vertical line
Arrow from actor > use case means actor is active
Arrow from use case
How can use cases help the project description?
Refines project description as you know more about what system will and will not do
What is an Active actor?
They generate use cases
Think of a person sitting down at computer and using program
E.g. class director requesting teachers
What is a Passive actor?
They are contacted by a use case, and don’t initiate activities
E.g. user receiving an email list of staff
What is a Timed activity?
System will sometimes generate activities internally, will involve passive actors outside system
Some functionality is scheduled to run later, e.g. sending out automatic reminders to users/staff
Common way is to have a TIMER actor, which interacts with use cases in normal way
What are some problems defining system boundary?
Requirements being handled by actors
- Actors are outside system, can’t handle requirements, they only generate requirements
- Must redefine actor role and new use cases to handle these requirements
What if you find new requirements when identifying actors and use cases?
Ask questions:
- Are they necessary?
- Are they something system would do naturally?
- Can they be handled by an existing actor?
- How do they affect current risk analysis?
If we added several new requirements, need to step back and look at complete system again
Defining the scope of a project
Identifying actors and use cases goes a long way to defining project scope
Need to sometimes step back and look at what we have
Are system requirements all met by use cases?
Look back at project description to make sure everything is covered
If anything is missing, need to find more use cases or actors
Use case approach could generate more requirements, add to project description
What is a non functional requirement?
Requirement not met by defining a use case
What are some examples of non functional requirements?
Performance or security
Could apply to whole system or specific use cases
E.g. class director needs to give a weeks notice of teaching requirements to allow for recruitment (for single use case)
Info must be up to date and consistent at end of each day (system wide)
Why should we prioritise use cases?
Can’t do everything, make sure important things are done and no effort wasted on unimportant features
What is a typical priority scheme?
Must have
Should have
Could have
Would like to have
Must haves include core functionality and things that would be risky to exclude