A set of functional and non-functional requirements that a piece of designed software needs to fulfil, may include a set of use cases.