Software Development refers to all the processes that software developers have to go through to develop a program. Whichever method a developer chooses to use to develop a program, it should support maintenance and upgrading of the software program. Most software development institutions support certain predefined software development processes which often include the following stages:
Before a software product can be made, the developer must have a clear understanding of what the finished program should be able to do. While defining what a software product is supposed to do might seem obvious and easy, it often requires experience and a certain skillset in software engineering to note ambiguous, contradictory and sometimes incomplete software requirements. The engineer seeks out more information to make sure every detail needed to start the development process is available and clearly understood.
At the design stage, the developer uses the information gathered at the requirements analysis stage to precisely describe the software program that will be written. The software engineer does this in the most mathematically rigorous manner possible. He also creates an abstract representation of the software system he intends to build.
The reason for this is to ensure that the software program meets every requirement that had been laid out for it to achieve at the first stage of development. Furthermore, he makes sure that the software system will be able to handle any requirements that may arise in the future.
This involves changing the software design from requirements and design on paper to code.
The software engineer tests the software to make sure every part of the code works as intended, including parts of the code that may have been created by different programmers.
As software starts being used in real life situations, new problems and fault lines in the code are discovered and new requirements added. Therefore, it becomes necessary for the software engineer to look into these things and formulate a plan to make changes to the code to accommodate new requirements and solve the newly discovered problems. This is a big part of software engineering – makes up around 60% of all the development work.