Requirement engineering encompasses the tasks that go into identifying, determining and understanding the customer needs as well as the expectations from the proposed software system or an application, taking account of possibly conflicting requirements of various stakeholders. Requirement engineering, also referred to by names like requirement gathering or requirement analysis or requirement specification, is a well-defined stage in the software development life cycle. This stage is not only well defined but also very crucial to the success of software development.