The process of conceiving, defining, designing, programming, documenting, testing, and bug-fixing that goes into building and maintaining applications, frameworks, or other software components is known as software development. Program development comprises all activities from the conception of the desired software through to the ultimate manifestation of the software, often in a planned and organised process. It also involves authoring and maintaining the source code. Research, new development, prototyping, modification, reuse, re-engineering, maintenance, and any other activities that lead to software products are also considered to be a part of software development