Build Models & Prototypes to Represent the Requirements (20%) Flashcards
(30 cards)
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