quartz/content/notes/requirements.md
2022-04-06 20:43:38 +12:00

151 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
sr-due: 2022-04-06
sr-interval: 15
sr-ease: 232
---
tags: #review
resources:
[article about requirements](https://sceweb.uhcl.edu/helm/RationalUnifiedProcess/process/workflow/requirem/co_req.htm#Reliability)
[IBIS](https://en.wikipedia.org/wiki/Issue-based_information_system)
[moscow method](https://en.wikipedia.org/wiki/MoSCoW_method)
---
## Review Questions
1. Name three properties of good requirements and for each property explain why it is a good property. (NUUCCC)
- understandable -> by users -> reduces misunderstandings
- un-ambiguous -> reduces midunderstandings
- complete -> nothing missing
- non-prescriptive -> say what the system should do, not how it should do it
- consistent => do not contradict each other
- correct -> as judged by user
2. What is the difference between functional and non-functional requirements?
- features vs contraints
3. What effects do poor quality requirements have on the subsequent development of the system?
- increased cost/time
- increase chance of failure
- more difficult maintenance
- not meeting needs of client
4. How are requirements elicited and managed using the three main agile methodologies presented in the lectures?
- scrum
- requirements owned and priotitised by the product owner
- XP
- based on user stories, continuous involvement of users
- UP
- requirements contructed in at the beginning
- functional req's implemented first then contrainst like security, performance etc
___
# Requirements
> “…descriptions of how the system should behave, application domain information, constraints on the systems operation, or specifications of a system property or attribute.” - Kotonya and Sommerville, 2001, p. 6
> “…a statement of need, something that some class of user or other stakeholder wants.” - Alexander and Stevens, 2002, p. 8
something the system should do or a contrainst the system should adhere to
## Requirements engineering
> “…to cover all of the activities involved in discovering, documenting, and maintaining a set of requirements for a computer-based system.” - Kotonya and Sommerville, 2001, p. 8
robust way to develop requirements
Key concepts
- discovery -> capture, elicitation, identification
- documenting -> specifying, modelling
- maintenance -> manging changes in env of sys
### Requirements document:
- services and function
- contraints
- overall properties
- systems env incl. related sys's
- application domain information
- constraints of development process
## requirements in agile methodologies
[[Agile Development#^e2bc0b|UP]]
- Requirements (based on use cases) mostly elicited, modelled, and refined during inception, elaboration, and construction phases.
- Functional requirements implemented before technical, performance, reliability requirements.
[[Agile Development#^e9fd09|XP]]
- Based on user stories rather than explicit individual requirements.
- Continuous involvement of users who can make business decisions about functionality and scope.
[[Agile Development#^4ddbdc|Scrum]]
- user stories (if mapped back to business process to create stucture to the product backlog)
- requirements owned and prioritised by the product owner
## how to specify requirements
published standards -> (e.g., ISO 9000, IEEE/ANSI 830-1993)
natural language text desciptions and scenarios
models
- function catalogue
- ERD's
- UML's
prototypes:
- evolutionary -> changes to existing prototype/idea
- revolutionary -> completely new
formal mathematical notation
## Good requirements
^df23e2
- understandable -> by users
- non prescriptive -> what not how
- correct -> as judged by user
- complete -> nothing missing from _individual_ requirements
-> nothing missing from _complete set_ of requirements
- consistent -> do not contradict each toher
- unambiguous -> one one possible interpretation
- also
- precise, concise, cohesive, feasible, relevant, up to date, testable, traceable
## Type of requirements
^c1a732
### Functional requirements
^9e1ad5
what should the system do
### Non-functional requirements
^ab5ecd
contraint -> how the system should do something
e.g., behaviour , constrainst , usability , reliability , performance , security
### FURPS
usually overkill
categories
- functional -> features
- usability -> UI and system availability
- reliablility
- performance
- supportability
furps + adds
- design
- implementation
- interface
- physical
**examples**
![[Pasted image 20220310162958.png|300]]
## Consequences of poor requirements
- Delays and extra costs
- failure to meets real needs of customer
- higher cost of maintenance
- unreliable/non functional system
## Causes of poor requirements
- problem not well understood (domain comlpexity)
- misunderstanding between parties
- [[stakeholders]] -> not trained, dont have authority, are not available/plentiful
- continually evolving requirements
- requirements are -> incomplete/abmiguous/inconsistent/overlapping/unimplementable