Thursday 22 March 2012

water model in software engineering


Waterfall model in software engineering' is a highly popular topic among software engineering students as well as others. Here is some information about the role of the waterfall model in SDLC (software development life cycle).
Waterfall Model in Software Engineering

The waterfall model is probably the oldest and the best-known model as far as software developement process models are concerned. The role of the waterfall model in software engineering is as important as its role in software testing. Of course, over the years, there are a number of other software process models which have been designed and implemented, but what is true is that a lot of them are based (in some way or the other) on the fundamental principle of the waterfall model. On that note, let us examine the waterfall model in detail.Waterfall Model in Software Engineering
The waterfall model is so named because it employs a 'top down' approach regardless of whether it is a waterfall model in testing, or a waterfall model in
SDLC. Now I won't sit and draw an artistic waterfall model diagram, but what I will do, is illustrate and explain the different waterfall model phases and the overall waterfall model life cycle.Phases of the Waterfall Model in Software Engineering
To put it in my own words, the waterfall model is nothing but common sense. Assuming that writing a piece of code for a small project is your objective, what the waterfall model suggests, is nothing but what one would do in real life (using his or her common sense).

First and foremost, you need to completely analyze the problem definition and all the various project requirements. This phase is commonly referred to as 
'Requirement Analysis'. Once you have thoroughly and exhaustively identified and understood all the project requirements, they are to be properly documented, after which you move onto the next phase, which is known as 'System Design'. This involves specifying and designing the project's hardware and software requirements, and their inter-relation. The entire software aspect of the project is broken down into different logical modules or blocks which are identified and systematically documented. 'System Implementation' is the next phase which involves nothing but writing software code and actually implementing the programming ideas and algorithms which have been designed or decided upon in the 'System Design' phase. Once the coding and implementation phase has been completed, it is now time to test the code. This is precisely what happens in the next phase which is known as 'System Testing'. The code that has been written is subjected to a series of tests and test cases to detect and determine whether there are any bugs, errors or software failures. Once all the repair work, i.e. correcting and re-writing every piece of erroneous or flawed code is completed, you then move to the next and last phase titled 'System Deployment and Maintenance'. As the name suggests, the last phase is nothing but handing over the completed project to the client or customer, and subsequently performing maintenance activities on a periodic basis.Waterfall Model Advantages and Disadvantages
Let us now examine the pros and cons of the waterfall model in software engineering as well as in software testing.
Pros
  • It is the simplest software process model in terms of complexity and ease of implementation. As I said before, it is nothing but common sense.
  • This model is extremely easy to understand and therefore, is implemented at various project management levels and in a number of fields (not just software development).
  • It employs a systematic, orthodox method of project development and delivery.
Cons
  • Since it is not an iterative model, it has its fair share of shortcomings and drawbacks.
  • Being a strictly sequential model, jumping back and forth between two or more phases is not possible. The next phase can be reached only after the previous one has been completed.
  • Due to this, bugs and errors in the code cannot be discovered until and unless the testing phase is reached. This can lead to a lot of wastage of time and other precious resources.
  • This process model is not suitable for projects wherein the project requirements are dynamic or constantly changing.
Well, this was a short overview of the role of the waterfall model in software engineering. I hope it has managed to enhance your software engineering knowledge.

No comments:

Post a Comment