6.3.2.3. Design
6.3.2.4. Implementation
6.3.2.5. Integration and Deployment
6.3.2.6. Maintenance
6.3.3. Advantages of an Incremental Method
6.3.4. Disadvantages of an Incremental Model
7. CONCLUSION
8. RECOMMENDATIONS
9. REFERENCES
10. BIBLIOGRAPHY
11. APPENDIX
Figures and Illustrations
- Diagram 1: Incremental Method Diagram
- Diagram 2: Waterfall method Diagram
Terms of Reference
The aim of this report is to compare two contrasting system life cycles. This report contains diagrams of the two system lifecycles as well as the stages of the life cycles with a description of each one.
This report also contains the main advantages and disadvantages of 2 system life cycles as well as a comparison between them and recommendations of how they are suited to different types and sizes of projects. The advantages and disadvantages is what makes a use decide which system life cycle to use depending on what sort of project they are about to carry out.
Comparison of system life cycles
The waterfall Method
This is a traditional approach to systems development, where each stage of the software development lifecycle is completed in turn. The waterfall model is one of the oldest models available and is still thought to be one of the most widely used process models in software development. The waterfall approach, which is the most well known lifecycle model, it also forms the basis for other model variations.
Diagram of the Waterfall Life Cycle
See 4.2 diagram 2: Waterfall Method Diagram
Stages of the waterfall method
Feasibility
The feasibility study is used to determine if the project should get the go-ahead. If the project is to proceed the feasibility study will produce a project plan and budget estimates for the development.
Analysis
This stage includes a detailed study of the business needs of the organisation and it produces a specification of the new system. Options for changing the business process may be considered
Design
Here the solution proposed by the analyst is developed into a complete technical specification that the programmers will use as a blueprint for their work. Hardware and software are included in the system design.
Implementation
Hardware and software is purchased and installed. The development staff is trained in the use of new hardware and software so that developments can proceed. This stage is typically the most time consuming of all in the Waterfall model.
Test
After the programs are written the system is tested. First individual programs are tested in what is called unit testing. After each program is working properly the programs are tested together.
Integration and Deployment
The deployment phase is a staged roll out of the new application. This involves installation and initial training and may involve hardware and network upgrades.
Integration can be done in different ways, it can be integrated gradually so the users get used to working with the system gradually or implemented all at once which is quicker but takes time for the users to learn how to use it.
Maintain
Once the system is in place it may need to be changed due to changes in technology and problems with the system. Maintenance tasks include any modifications to an existing program it includes defect removal and enhancements to the program and correction of errors that were not discovered earlier on in the development process
Advantages of the Waterfall Life Cycle
- There is testing in every stage.
- Continuously as well as at end of stages.
- Stages are shown clearly.
- Progress though out the project can be easily seen.
- Because each stage is self contained this enables people to specialise in a specific stage
Disadvantages of the Waterfall Life Cycle
- Assumes feasibility before implementation
- Works best when you know what you are doing
- When requirements are stable and a problem is well known
- It can be time consuming
- Very hard to specify all the objectives in detail until the project has been explored
The Incremental Model
With the incremental model Software is constructed in a step-by-step manner, in the same way that a building is constructed. While a software product is being developed, each step adds to what has already been completed. One day the design is extended; the next day another module is coded. The construction of a complete product proceeds incrementally until it is completed.
Diagram of Incremental Life Cycle
See 4.1 diagram 1: Incremental Method Diagram
Stages of a Incremental method
Requirement analysis
Requirement Analysis phase is to identify and document the user requirements for a proposed system. In addition existing systems, processes, documents, and procedures are reviewed and included as appropriate
Specification
The objective of the Specifications phase is to sort out the requirements into the functions and features the new system will have, to describe and prototype the functions and features as a user would actually see them
Design
Here the solution proposed by the analyst is developed into a complete technical specification that the programmers will use as a blueprint for their work. Hardware and software are included in the system design.
Implementation
The production of the code that will result in a system that will work correctly.
Hardware and software is purchased and installed. The development staff is trained in the use of new hardware and software so that developments can proceed.
Integration and Deployment
The deployment phase is a staged roll out of the new application. This involves installation and initial training and may involve hardware and network upgrades.
Integration can be done in different ways, it can be integrated gradually so the users get used to working with the system gradually or implemented all at once which is quicker but takes time for the users to learn how to use it.
Maintenance
Once the system is in place it may need to be changed due to changes in technology and problems with the system. Maintenance tasks include any modifications to an existing program it includes defect removal and enhancements to the program and correction of errors that were not discovered earlier on in the development process
Advantages of an Incremental Method
- Maximise early return on investment.
- Product might be available within weeks.
- Changes and adaptation are natural in this method.
- Can stop the development at any time.
Disadvantages of an Incremental Model
- Requires more careful design, which payoff comes in the maintenance phase
- Each additional build has to be incorporated into the existing structure.
- Requires open architecture
- There is a risk of the builds not fitting together
Conclusion
After going through the stages of the waterfall lifecycle and the incremental life cycles and analysing the advantages and disadvantages for both life cycles. I have noticed that each life cycle can be used in opposite ways.
With the incremental model software is constructed in a step-by-step manner, in the same way that a building is constructed. While a software product is being developed, each step adds to what has already been completed. One day the design is extended, the next day another module is coded. The construction of a complete product proceeds incrementally until it is completed. At each stage of the incremental life cycle a new build is coded and integrated into the structure that is tested as a whole. Because of the large amount of testing done in this life cycle the end product should in theory have less errors and require less maintenance.
The incremental method is best used for high risk and complex projects because changes in the requirements of the project are easily accommodated for unlike the waterfall life cycle where changes are strongly controlled. The incremental life cycle method can be used for much more complex projects where the user's requirements are not fully understood because at the end of each increment we can see a functional unit of the system. Any changes or errors can be corrected in the initial stage itself instead of having to correct them at the end or in the testing stage.
The waterfall life cycle is the most well known life cycle the whole process progresses through an orderly sequence of stages. A review is made at the end of each stage to determine whether the project can advance to the next stage. If the review gives a negative result, the stage has to be worked on for longer until it is complete, this slows down production time and unlike the incremental life cycle this can cause delays for other stages.
The waterfall life cycle method is best used for projects that are not very risky and not very complicated unlike the incremental which high risk and complexity is suited for. Because requirement changes are strongly controlled in the waterfall life cycle, it is very difficult to make any further changes in the requirements.
In the waterfall life cycle method, the testing is done at the end of the project, so it will become very difficult to track any problems that are found in the later stages of development. This could cause delays due to vast amounts of time spent on testing and also time spent on maintenance to fix and upgrade the system.
Recommendations
The incremental life cycle is best suited for medium sized projects that are high risk and very complex. Because the incremental life cycle is faster than most system life cycles a medium sized project could done within the same time as a small project being done on a slower system life cycle like a waterfall life cycle or spiral life cycle.
If a company wanted a piece of software but where not very specific about the specifications of the system required they would be able to add requirements as they went along due to the incremental life cycles flexibility. It would also be use full for a business that required a system that had to work correct immediately without any errors, and because testing is done at every stage of the incremental life cycle the chance of bugs and errors are less likely to appear is lowered. So I would choose this life cycle if I were doing a medium sized highly complex and risky projects
The waterfall life cycle is best used for small projects that are low risk and low complexity. Because each stage follows on from the previous one the project is less likely to go over budget and schedule. If a large system was needed the waterfall life cycles lack of flexibility would be its downfall. In a large project there are more problems that can occur. This would hold up the project and whilst time was being spent on these problems other tasks will be rushed to meet the deadlines. Because some tasks will be rushed the system would have more defects and errors which would increase the maintenance time and costs. So I would adopt this life cycle only for small, less risky projects with low complexity.