Blogs

PMP Assignment 3 - Waterfall Model

Remember when we are in school days, when thought about being Engineer, Lawyer, Doctor, Teacher, Police etc., answers we got is first we need to complete our schooling then college after that we need to pursue our goals. Why I am talking about schooling and college here, there is a reason behind this today. Yes, Waterfall model, one of the oldest model, earlier this model was found by H.D. Bennington, in 1956, later it is found to be useful in Software Engineering.

Photo Credit: Jason Miles


When I went to this temple, it was a densely forest area, when we are nearing to this place, I saw the small tributaries, around the mountain. When I saw it is small and interesting, Tributaries started growing big, until I saw the huge waterfall which contributed by the small tributaries. Later I had this interesting wallpaper in my desktop, water fall of Georgia, which was soothing our eyes, gives serene feeling. You can compare that waterfall, which falling by layer by layer, in the same-way process too falling by layer to layer.

Water-fall in SDLC

Waterfall in SDLC widely accepted, because of its linear sequential life-cycle model. There will be no overlapping between the phases, each phase should be completed to achieve the next level. There are around 5-6 phase in SDLC (Software Development Life Cycle)



Requirement Phase:
Here, the requirements will be gathered, if an application or app were developed, first we need to understand, why we are doing this, what will be the benefit, value or profit we are going to gain? Who are the architects, stake holders, programmers, developers to code the software, QA analysts, what could be the time frame? these are the questions will be asked & documented in this phase. Then it will be moved to next phase.

System Design:
Once we got the requirements, this is where architects and designers pitch in and look out the possibilities to make the requirements successful. They will analyze the requirements and provide the plan for hardware and software requirements. Basically, Servers, OS, Database, Storage, Network, Middle-ware & other application requirements, software requirements, etc., Also architects and designers are think tank of how should software have to work, they give the bird eye view to the developers.

Implementation:
Here comes our programmers and code developers, once they got the system design, they will do the coding to create the design as expected by the architects. Initially they create the small programs it was called as units, with the units, they will integrate into the application to work. Once they integrated the units into the application, it is ready to move to the next phase.

Testing:
Once units of small programs are created into the application, rigorous testing will be taken place. Remember there is a difference between Quality Assurance and Quality Testing, Quality Assurance is removing all possibility of bugs from the program, Quality Testing is putting ourselves in Customer shoes and testing to find the possibility of errors. Post integration test will find out all the possibility of errors and faults.

Deployment:
Once the functional and non-functional testing carried over, then application will be released to the market.

Maintenance:
Once application released to the market, there might be an issues with the client environment and their platforms, frequent updates, fixes and patches will help application to work with the client environment smoothly.

Pros:
Clear defined stages, easy to understand
Process and results are documented

Cons:
Cannot accommodate in changing environments
Each phase are silos, where integration between teams are highly impossible.
Difficult to measure the progress within the stages.
Post a Comment