- Concept Formation - This is the first step in the Linear / Waterfall model software development. This is the stage that a company identifies that they need an information system to manage their business or to solve a business problem. This starts after they identifies their problems, so they have a good idea about the problems they want to solve.
- Problem Definition - this is the process of documenting their problems. In this stage, the system analyst have to use his experience and knowledge to assist better to help the management to better describe problems.
- Feasibility Study - In this stage, the analyst with the support of project manager and engineers will carry out an investigation to identify the best method to solve above identified problems. They need to identify what kind of technology has to be used and whether the technology is available. This is called technology feasibility. Also they need to analyze the cost, human resources, time and other related factors. After analyzing all the factors, if the project is feasible, the project will be moved to the next stage. The outcome of this stage is the feasibility report document.
- System analysis and specification - This is the system analysis phase.In this stage the system analyst will study all the aspects of the current system (if any), business process and suggest feasible solutions by considering problem definition and feasibility report. The outcome of this stage is the system specification document.
- System Development - In this stage, the system architect will design a model of the new system according to the system specification. He will design databases, flow charts, and various diagrams and pseudo codes (non program language that defines functions and procedures in natural way), etc. Generally there are two kind of system designs;
- Broad Design - Scratch design of the system without much details. This will help the system architect to validate the new system with the customer before start the actual development process.
- Detailed Design - With clearing any problems with the broad design, the system architect will design a detailed system that will actually use by the programers and software engineers to code the system.
- System Development - This is the phase that the new system design will be converted into a software system. Programmers, Software Engineers and Database Administrators will use the detailed system design to develop the system. There are two stages in this phase.
- Development - System will be code into a software application.
- Implementation - System will be deployed in a test environment.
- System Testing - System will be test using test data and strategies to identify any errors (bugs) and to make sure the system is working according to the given constrains.
- Maintenance - Once the system is deployed in the real business environment, time to time it need to upgrade and maintain such as taking backups, troubleshooting, re-installation, etc.
- This model is simple and easy to understand because stages are clearly defined.
- Information are documented and maintained well. A complete documentation is available for later reference.
- The progress of the system can be clearly monitor as milestones for both the software company and the client.
- The time wastage and failure rate is minimal because the full system design will be done before writing a single line of code.
- The quality of the system will be higher, because the system design by considering the expectations of the customer and after getting approval form the customer.
- Well defined system testing constrains could be applied and test the system for the highest accuracy.
- Less human resources are needed. Because of the linear nature, all the stages can be even carried out by a one person.
Those are the advantages of waterfall model software development. Now what are the disadvantages of waterfall model?
- Waterfall model start a stage only after finishing it's prior stage. Therefore this model takes comparatively more time to complete.
- Stages can not be start in middle, has to wait until the prior stage is completed and documented.
- Only suitable for systems that can be clearly defined its all aspects of requirements. In the real world these type of systems are very rare. Customers can't identify their real problems until part of the system is being developed or used.
- The feasibility of the system may different in the real world than in the paper. Because of the vast time it requires to analyze and design the system, the feasibility of the system may become outdated.
- Waterfall model defines different roles of human resources such as system analyst, system architect, programmer, etc. In the real world software companies, these positions are not affordable or not available.
- Making changes during the middle of the process is very difficult and costly.
Now you have a good idea about the waterfall model. This model is almost outdated and not used as it is in the practical world. These stages most of the time collapse in the practical situations. But if you are an individual software engineer and want to manage a small scale project, this will be the ideal model to follow. For large projects we need more practical models such as RAD or Prototype Models.
ReplyDeleteIts like you read my mind! You appear to know a lot about this, like you wrote the book in it or something. I think that you could do with some pics to drive the message home a bit, but instead of that, this is great blog. An excellent read. I'll definitely be back. aol.com mail login
Thank you Oskar, I just wanted to update more information on this blog, but as usual getting busy at the workplace. I will definitely update more information on the blog.
ReplyDelete