What are the requirements and design constraints of an application? Please give a general answer that applies to all applications.