Explain different software development life cycles.
The System Development Life Cycle (SDLC) is the overall process of developing information systems through multi stage process systems from investigation of initial requirements through analysis, design, implementation & maintenance. Those days are gone when one COBOL programmer used to analyze, test and implement software systems. The Systems have become complex, a huge team members are involved, users, architects, analyst, programmers, testers etc. To manage these numbers of SDLC models have been created.
Following are the popular models which are listed below:-
- Waterfall Model.
- Spiral Model.
- Build and Fix model.
- Rapid prototyping Model.
- Incremental Model.
Water Fall Model:
This Water Fall Model is the oldest model. It has sequence of stages; output of one stage becomes the input of the other.
The following stages in the Waterfall model are as follows:-
1) System Requirement: - The System Requirement is the initial stage of the project where end user requirements are gathered and documented.
2) System Design: - In the System Design stage detail requirements, business rules, screen layout, process diagram, pseudo code and other documentations are prepared. This is the first step in the technical phase.
3) Implementation: - Depending on the design document the actual code is written here.
4) Integration and Testing: - All the pieces are brought together and tested. The Bugs are removed in this phase.
5) Acceptance, Installation and Deployment: - This is the final stage where software is put in production and runs actual business.
6) Maintenance: - This is the least glamorous phase which runs forever. The Code Changes, addition, correction etc are completed in this phase.
The Waterfall is suited for low risk in the areas of User Interface and performance requirements, but high risk in budget and schedule predictability and control. The Waterfall assumes that all requirements can be specified in advance. But unfortunately requirement grows & changes through various stages, so it requires feedback from one stage to another.
The Spiral Model eliminates the drawback of waterfall model, by providing emphasis to go back and repeat earlier stages a number of times as project progresses. On wider level it is a series of short waterfall cycles, each one producing an early prototype representing a part of the entire project. It also helps in demonstrating a Proof of Concept at early software life cycle.
Build and Fix Model:
This is the way free-lancers work Write some code & keep modifying it until the customer is happy. This approach can be quite risky and dangerous.
Rapid Prototyping Model:
This model is also known as Rapid Application Development. The first emphasis is on creating prototype which looks and acts like the desired product. The Prototype can be created by using tools that is different from those used for final product. Once the prototype is approved, its discarded & real software development is started from the scratch. The main problem with this model is that sometimes the prototype moves ahead to become the final live product that can be bad from design point of view. It is a very effective model but can have higher costing than other models as you need programmers during the initial phase of the software cycle.
In the Incremental model we divide products into builds, where parts of product are created and tested separately. Here errors are found in the requirement phase itself, user feedback is taken for every stage and code is tested after it is written.