To do a good job of requirements engineering we must understand the different types and levels of requirements. It requires an understanding of the benefits of having good requirements so that adequate resources and time are dedicated to the requirements engineering process throughout the software development life cycle. Doing requirements engineering correctly requires an interdisciplinary approach