In product development and process optimization, a requirement is a singular documented physical and functional need that a particular product or process must be able to perform. It is most commonly used in a formal sense in systems engineering, software engineering, or enterprise engineering.