Software Development through – Incremental Model

What is Incremental Model ?

The incremental model uses the “Linear and Parallel” process flow, uses linear sequential flow like waterfall model to develop working release of software.

Situation Where Incremental Model is Useful:

When customer needs limited set of features and functionalities quickly and then they want enhancement in functions in later releases of the software, then incremental model is useful.

Flow

Each linear sequence produces a deliverable “increment” of the software.
It should be noted that the process flow for any increment can uses the prototyping paradigm.
When incremental model is used, the first increment is often the core product (that is only basic requirements are implemented), the next increments are modifications of the core product.

Advantages:


This model is useful when staff required is unavailable.
This model is useful to handle technical risk.
Provide better support for process iteration.
Reduces rework in the software construction process.
Some decisions on requirements may be delayed.
Allow early delivery of parts of the system.
Support easier integration of sub-systems.
Risk of project failure is low.

Disadvantages:


Increments need be relatively small
Needs good planning and design.
Needs a clear and complete definition of the whole system before it can be broken down and built incrementally.
Mapping of requirements to increments may not be easy.
Total cost is higher than waterfall

Conclusion

This model provides better support for iteration and the phases in this model goes on linearly as well as parallelly but their may cause confusion in the output of the phases if proper and sorted planning is not done. As well as, the total cost of this model is also higher than the waterfall model so, if their is any confusion among the output of different phases it may lead to wastage of time as well as cost.

Software Development through – Waterfall Model

What is a Waterfall Model ?

It is also known as the “Classic Life Cycle” model, follows the “Systematic, Sequential “approach of software development.

Situation Where Waterfall Model is Useful:

-When customer wants enhancement or adaptation in already existing software which is well developed then we can use waterfall model.
-Ex. Changes in the Accounting software because of the changes in the rules by government.
-Waterfall Model is also used to develop new software when requirements are completely understood and stable (will not change in the future).

Phases

  1. Communication:

Heavy communication and collaboration with stakeholders-to gather information and requirement of software and to define features and functions of software.

2. Planning:

Defines – schedule of the project, role of each team member, estimation of cost, deadlines or delivery dates of the working modules, what technical task to be performed, risk that can be occurred, and priorities of each module.

3. Modeling:

Design model of software is created to understand the requirements, features and functions of the software.

4. Construction:

Combination of code generation and testing.

5. Deployment:

Software is delivered to the customer, On the basis of the feedback from the customer, software development team makes changes to the software for better quality.

Advantages

•Systematic and Organized approach provides clear separation between different phases of software development.
•This model is simple and easy to understand and use.
•It is easy to manage due to the rigidity of the model – each phase has specific deliverable and a review process.
•In this model phases are processed and completed one at a time. Phases do not overlap.

Disadvantages

•Real projects rarely follows the sequential flow that waterfall model suggests.
•All real projects follow iterative approach indirectly. As a result of this, it causes the confusion among team members when the proceeds.
•It is difficult for the customer to state all the requirements at the beginning of the project.
•A working version of the product is available only late.
•So if there any bug in the software it becomes visible at late which is very dangerous.
•Waterfall Model has a problem of “Blocking States” means some team members has to wait for other team members to complete their dependent work.

Conclusion

Waterfall model is a perspective process model and it’s basically a classic model in which each phase is very sorted and separate from each other so,no confusion occurs but it is not suitable for the changing needs of the Industry as their are tremendous trends coming in the software industry which requires an advanced process of software development with fully defined phases.So, it is suitable for the freshers but they have to adapt and switch to the newer software development techniques.