software requirements for