"Requirements are…a specification of what should be implemented. They are descriptions of how the system should behave, or of a system property or attribute. They may be a constraint on the development process of the system."This unfortunate definition comes from Ian Sommerville and Pete Sawyer.
Frequent readers of this blog know that I find this definition to be overly broad. After all "a specification of what should be implemented" could include a detailed design specification with UML class and collaboration diagrams. Wieger's favorite definition thus fails to provide any meaningful distinction between requirements and design.
A proper definition of requirement must clearly distinguish between requirements and design.