to solve the software crisis where software is delivered late, with faults, and over budget. Software engineering aims to deliver fault free software, on time and within budget, meeting the requirements and needs of the client. The software is developed keeping in mind the future maintenance that is involved.