Requirements Flashcards
What is the core software engineering process?
Specification
- Designing what the customer wants
Development
- Production of software system
Validation
- Checking that the software is what the customer wants
Evolution/Maintenance
- Changing code in response to new requirements
(silly developers value money)
Why are requirements important?
It is the most common cause of over-budgeting and unclear requirements can lead to project failure
What is stakeholder analysis?
Determining all the people that will use a system
What do we identify from stakeholder analysis?
Primary, secondary and tertiary stakeholders
What is a persona?
Represents a real type of user from stakeholders which are used to develop scenarios
What is a use case diagram?
Identities tasks each stakeholder/persona (actors) will do
What is a user story?
A single sentence to represent a single requirement
What is the structure of a user story?
As a <persona>, I want <use> so that I can <motivation></motivation></use></persona>
What are the advantages of doing user stories?
- Creates clear requirements checklist
- Breaks project down into chunks
- Can rank for importance
- Little maintenance
What are the disadvantages of user stories?
- Difficult to use in big projects
- Loose detail and formality
What is the difference between requirements and specifications?
Requirements are what a stakeholder must be able to do
Specifications is what the software must be able to do to meet requirements
How can we easily identify if something is a requirement or a specification?
Specifications typically start with a “the system shall”
Requirements typically start with a “the user wants”
What are the different types of requirements we can have?
Functional
- What the user should be able to do
Non functional
- Constraints on what the user needs to do and how well the system performs
How can we easily tell if something is a functional or non-functional requirement?
Functional
- “a user should”
Non-functional
- A description of what system does in a scenario
Give examples of functional and non-functional requirements?
Functional
- Allow user to log in, allow user to provide account creation, allow user to change password
Non-Functional
- Security, number of concurrent users
What are the three sub-genres of non-functional requirements?
Product requirements
- Generally to do with performance, when a job will happen, security etc.
Organisational requirements
- Regulations to do with the organisation the product is made for (login using unis authentication service, GDPR, budget constraints)
External requirements
- Third party requirements like disability support, web accessibility guidelines, paypal, environmental
What are some different investigation techniques?
- Surveys
- Interviews and focus groups
- Technology tours
- Ethnography