Thursday, 23 January 2014

Waterfall model

Waterfall model 

It is a traditional model

It is a sequential design process, often used in SDLC, in which the progress is seen as flowing steadily downwards (like a waterfall), through the different phases as shown in the figure,



Requirements Collection :-
- done by Business Analysts and Product Analysts
- gathering requirements
- translates business language into software language

For ex, - A banking software.

Feasibility Study :-
- done by software team consisting of project managers, business analysts, architects, finance, HR, developers but not testers
- architect – is the person who tells whether the product can be developed and if yes, then which technology is best suited to develop it.
- here we check for,
                                 - technical feasibility
                                 - financial feasibility
                                 - resource feasibility
Design :-
There are 2 stages in design,
  •  HLD – High Level Design
  •  LLD – Low Level Design


HLD – gives the architecture of the software product to be developed and is done by architects and senior developers

LLD – done by senior developers. It describes how each and every feature in the product should work and how every component should work. Here, only the design will be there and not the code.

For ex, let us consider the example of building a house.

Coding / Programming :-
- done by all developers – seniors, juniors, freshers
- this is the process where we start building the software and start writing the code for the product.

Testing :-
- done by test engineers
- it is the process of checking for all defects and rectifying it.

Installation :-
- done by installation engineers
- to install the product at a client’s place for using after the software has been developed and tested.

For ex, consider the example of a software to be developed and installed at Reliance petrol bunk.

Maintenance:-
- here as the customer uses the product, he finds certain bugs and defects and sends the product back for error correction and bug fixing.
- bug fixing takes place
- minor changes like adding, deleting or modifying any small feature in the software product
100 % testing is not possible – because, the way testers test the product is different from the way customers use the product.



Service – based companies and Product – based companies

Service – based companies: -
They provide service and develop software for other companies
They provide software which is and specified as per the client company’s requirement and never keep the code of the developed product and does not provide the software to any other company other than the client company.
Ex – Wipro, Infosys, TCS, Accenture

Product – based companies :-
The develop software products and sell it to many companies which may need the software and make profits for themselves
They are the sole owners of the product they develop and the code used and sell it to other companies which may need the software.
Ex – Oracle, Microsoft

Drawbacks of Waterfall Model :-
In waterfall model, backtracking is not possible i.e, we cannot back and change requirements once the design stage is reached. Change in requirements – leads to change in design – thus bugs enter the design – which leads to change in code which results in more bugs. Thus the requirements are freezed once the design of the product is started.
Drawback of requirements freezing – the customer may not be satisfied if the changes he requires is not incorporated in the product. The end result of waterfall model is not a flexible product.
Major drawback of waterfall model – testing is a small phase which is done after coding. Requirement is not tested, design is not tested, if there is a bug in the requirement, it goes on till the end and leads to lot of re-work.

Advantages of waterfall model – requirements do not change nor does design and code, so we get a stable product.

Applications of waterfall model :-
Used in – developing a simple application
              - for short term projects
              - whenever we are sure that the requirements will not change


For ex, waterfall model can be used in developing a simple calculator as the functions of addition, subtraction etc and the numbers will not change for a long time.


0 comments:

Post a Comment