User, functional and data requirements