The whole process of designing, specifying, programming, testing, documenting, and bug fixing that is involved while creating or maintaining a software application is known as software development. This basically includes the creation and maintenance of the source code that is used for a specific purpose by the users. Software development means developing and maintain the software in such an effective manner that the final customer faces no bugs or problems while using it. It involves developing, prototyping, re-using, re-engineering, and maintaining software.