Here are the steps to these different life cycles and how they pertain to software development:
#1. Planning Stage - A significant process in creating a computer software application is getting the specifications or requirements analysis. Clients usually get a fuzzy concept of exactly what they would like as an end result and not really know what the software program needs to do. Skilled and knowledgeable computer software designers identify partial, unclear, or perhaps contradictory specifications at this stage. They go over with the client ideas and concepts that may help clarify in the clients mind what needs to be done. Often showing similar live examples may possibly help decrease the chance that the development may go in the wrong direction.
#2. Design Stage - The design stage is what comes after the planning stage. During the design stage, the developer will map out exactly what was discussed in the planning stage. It will be mapped out using diagrams and screen designs will take place. The back end code will also be organized and setup such that everything is in place to create the software. This section also deals with designing the screens, reports and any other function that is required by software based on the specifications outlined. Once the design phase is complete we then move into the implementation phase.
#3. Implementation Stage - This phase deals with installing the software on the clients computer and having them run it. During this phase the client may come back to you for adjustments to the program. There are often times that once the program is installed and running the developer will get an idea if there is anything that can be tweaked or made easier to use. It is when the customer starts to use the program live and provides feedback for adjustments. Once the feedback is given, the developer will make the changes and provide updates until it is work smoothly and user friendly. Once this done, the client should be able to use the program seamlessly and they should be good to go.
#4. Maintenance Stage - Now that the software is running smoothly on the client computer, we now enter the maintenance stage. During this stage the company will maintain, provide upgrades and additional installations when needed. After using the software for a while the client may want additional features or adjustments. This may be due to the changing requirements of their business. Another thing is that the client may want the software on a new computer on the network. This is also part of maintenance. A long term example of maintenance would be database maintenance. Once they have been using the software for a number of years the database may get large. When a database gets large there may be spots that cause the program to slow up a bit. At this time is when possible maintenance may be needed. Think of this as you would a car. Every 3000 miles you get an oil change. Well it may be no different here. Every so often you may need adjustments and changes. There are so many variables to consider in software design. Computers change, networks change and part of maintenance is making sure the software can still run on it.
After the maintenance stage, there is one more stage worth mentioning. That is the retirement stage. Eventually the computer hardware and software continues to advance to the point with technology where your software will not work anymore at all. At this point you will either need new software created using the current latest technology. This has happened before and will happen again.
As mentioned in other articles there are still many DOS programs out there however they are working less and less. The only reason that they are still being used is because the machine they are being used on supports them. Once the hardware breaks, they will be forced to buy a newer computer and chances are that software program may not work anymore. One can say the full average life span of a program can be around 20 years before it may possible need a full overhaul.
This is the way it is in technology and as things progress, software will need to progress with them.