Build Models & Prototypes to Represent the Requirements (20%) Flashcards
Why do we model requirements?
- Clarify understanding
- Unambiguous communication
- Generating questions
- Cross checking for consistency & completeness (CRUD)
- Defining Business rules
What is an example of a functional model?
Use case diagram
What is a use case?
describe a piece of system functionality that delivers value to the actor
focuses on the ‘what’ not the ‘how’
What naming convention is applied to use cases?
Verb noun i.e. make payment / cancel ticket
Why are use cases useful?
Use Case Diagrams summarise functional requirements for the IT/Business system. They represent the user perspective and needs
What are the levels in a use case diagram?
Rectangle - System boundary (part/whole)
Stick figures - System Actors (/user roles) interacting with the system (their goals)
Circles with verb noun - system functionality
Association - shows how the interaction between actors and the system
Examples of actors in a use case model
Human i.e user
Non-human i.e. another system/time
2 relationship types of use cases
- «Include» (ALWAYS) e.g. after given bill , take payment
- Dotted arrow with head pointing towards second piece of functionality - «Extend» (IF) e.g. customer order food «extend» order wine (IF the customer wants to order wine)
- Dotted arrow with head pointing towards first piece of functionality (functionality it is dependant on)
What can be used to support a use case diagram?
Use case description
What are the main elements of a use case description?
Pre conditions (i.e. customer must have an account)
Step by step narrative between the system & the user
Post conditions (i.e. view what they have access to)
Should also include: Name/ID/Description/Actors/Pre-conditions/Main scenario + Alternative flows/Post-conditions
What can a use case description be supported by?
A process flow diagram (rather than step by step)
What does a use case not capture/consider?
Information needed / data
Why model data?
To understand the meaning and the structure
Determines the data requirements of the system
It provides a common understanding of the data
It is the basis of the technical implementation
Controls redundancy and supports data integrity
Examples of data models
(Entity) Relationship Diagram (ERD) & Class Diagrams
What is a class diagram?
Conceptual model of the data that needs to be held
What are the elements of a class diagram?
CALM
- Classes (datagroups)
- Things/Events/Places/People & Organisaions - Attributes (information to be held of the classes)
- Logical Associations (between classes)
- Multiplicities (How many instances one class can be associated with in another class
- Read “Each ‘class’ is associated with #..’ of the ‘other class’”
(5. operations)
How should multiplicities be read?
At the end of the association
What does a class model not consider?
Technology/Processes/Constraints (i.e time)
It is conceptual
How is a class represented in a class model?
A simple rectangle with the name of the class in the top compartment
Always written as a noun phrase i.e. Customer / BankAccount (Camel case)
What does an association represent in a class model?
A logical/meaningful correspondence between classes
e.g. Customer MAKES booking
Passenger TRAVELS on train
How is an association represented in a class model?
A line between classes with an arrow showing how it should be read with multiplicities. It may be labelled with a meaningful description i.e. Owns vs Owned by
How can multiplicities be documented?
0..2 = 0,1,2
0..* = 0 or/to many = no need to have an instance
1..* = 1 or/to many = at least one instance
What does the CRUD Matrix help with?
Cross checking for consistency and completeness
Errors & Omissions
What 2 elements are on the CRUD matrix?
- Use case
- Class
What is prototyping and why is it useful?
Creating a ‘demonstration system’ to help clarify vague requirements
Advantages of prototyping
Helps the user to really determine the requirements
– Especially user interface, performance, navigation paths
Validates requirements (req we’re putting forward for validation are correct/clarified)
Reduces risk of “getting it wrong”
Shows our requirements in action
Disadvantages of prototyping
Can run out of control/scope creep
Can raise unrealistic expectations
Can lead user to overestimate progress
Tendency to begin designing the solution
Types of prototypes
- Paper
- UI (Wireframes etc)
- Full prototype
It’s better it the prototype is not too realistic
Examples of errors and omissions identified from CRUD
Use case for creating customer but nothing about deleting, is there an omission here?
A class may not have any elements of crud against use cases, is this required.?
What do use cases do to classes within CRUD
Manipulate the data