Functional and non-functional requirements