Professional Documents
Culture Documents
It gives me great pleasure & satisfaction to present seminar report entitled The waterfall model the completion of any task is not only the reward to the person activity involved in accomplishing it , but also the person involved in inspiring & guide lining . I am highly indebted to my seminar guide Mr. Vijay Gulsan Pandey for his invaluable support and guidance throughout the work. I extended my great thanks to my seminar in charge Mr. Vijay Gulsan Pandey for his support without which the work would have never been realized. Last but not the least I would like to thanks all friends who directly or indirectly helped me in completion of work with in this short span of time.
CONTENTS
1. Introduction to software development life cycle (SDLC)....3 1.1. Planning..3 1.2. implementation, testing and documenting.4 1.3. deployment and maintenance.4 2. Waterfall model6 2.1. History....6 2.2. About the model.7 2.3. Types of waterfall model8 3. Classical waterfall model.8 3.1. Introduction ...8 3.2. Phases of the classical waterfall model..8 3.2.1. Feasibility study...9 3.2.2. Requirement analysis and specification..10 3.2.3. Design.11 3.2.4. Coding and unit testing ..11 3.2.5. System and integration testing12 3.2.6. Maintenance12 3.3. Advantage of classical waterfall model...13 3.4. Disadvantage of classical waterfall model...13 4. Iterative waterfall model.15 4.1. Advantage of iterative waterfall model....16 4.2. Disadvantage of iterative waterfall model...16 5. References..17
1.1. PLANNING
An important task in creating a software program is extracting the requirements or requirements analysis. Customers typically have an abstract idea of what they want as an end result, but not what software should do. Skilled and experienced software engineers recognize incomplete, ambiguous, or even contradictory requirements at this point. Frequently demonstrating live code may help reduce the risk that the
3
requirements are incorrect. Once the general requirements are gathered from the client, an analysis of the scope of the development should be determined and clearly stated. This is often called a scope document. Certain functionality may be out of scope of the project as a function of cost or as a result of unclear requirements at the start of development. If the development is done externally, this document can be considered a legal document so that if there are ever disputes, any ambiguity of what was promised to the client can be clarified.
outlining how the software will be born, raised and eventually be retired from its function. Although some of the models dont explicitly say how the program will be folded, its already common knowledge that software will eventually have its ending in a never ending world of change web, software and programming technology. Software development life cycle model is a descriptive and diagrammatic representation of the software life cycle. A software lifecycle model is a standardized format for planning organizing, and running a new development project. Hundreds of different kinds of models are known and used. There are so many kinds of different lifecycle models some of them are listed below: Waterfall model. Code-and-fix model Spiral model Prototyping model Incremental or evolutionary model By changing the lifecycle model, we can improve: Development speed (time to market) Product quality Project visibility Administrative overhead Risk exposure Customer relations etc.
2. WATERFALL MODEL
2.1. HISTORY
In 1970 Royce proposed what is presently referred to as the waterfall model as an initial concept, a model which he argued was flawed (Royce 1970). His paper explored how the initial model could be developed into an iterative model, with feedback from each phase influencing subsequent phases. It is only the initial model that received notice his own criticism of this initial model has been largely ignored. The phrase "waterfall model" quickly came to refer not to Royce's final, iterative design, but rather to his purely sequentially ordered model. This article uses the popular meaning of the phrase "waterfall model". For an iterative model similar to Royce's final vision, see the spiral model. Despite Royce's intentions for the waterfall model to be modified into an iterative model, use of the waterfall model as a purely sequential process is still popular, and, for some, the phrase "waterfall model" has since come to refer to any approach to software creation which is seen as inflexible and non-iterative. Those who use the phrase "waterfall model" pejoratively for non-iterative models that they dislike usually see the waterfall model itself as naive and unsuitable for an iterative process. The unmodified "waterfall model" Progress flows from the top to the bottom, like a waterfall. In Royce's original waterfall model, the following phases are followed in order: Requirements specification Design Construction (implementation or coding) Integration Testing and debugging (validation) Installation Maintenance
To follow the waterfall model, one proceeds from one phase to the next in a purely sequential manner. For example, one first completes requirements specification which is set in stone. When the requirements are fully completed, one proceeds to design. The software in question is designed and a blueprint is drawn for implementers (coders) to follow this design should be a plan for implementing the requirements given. When the design is fully completed, an implementation of
6
that design is made by coders. Towards the later stages of this implementation phase, disparate software components produced by different teams are integrated. After the implementation and integration phases are complete, the software product is tested and debugged; any faults introduced in earlier phases are removed here. Then the software product is installed, and later maintained to introduce new functionality and remove bugs. Thus the waterfall model maintains that one should move to a phase only when it preceding phase is completed and perfected. Phases of development in the waterfall model are discrete, and there is no jumping back and forth or overlap between them. However, there are various modified waterfall models (including Royce's final model) that may include slight or major variations upon this process.
After they have an overall understanding of the problem they investigate the
different solutions that are possible. Then they examine each of the solutions in terms of what kind of resources required, what would be the cost of development and what would be the development time for each solution. Based on this analysis they pick the best solution and determine whether the solution is feasible financially and technically. They check whether the customer budget would meet the cost of the product and whether they have sufficient technical expertise in the area of development.
this document are functional requirements, the nonfunctional requirements, and the goals of implementation.
3.2.3 DESIGN
The goal of the design phase is to transform the requirements specified in the SRS document into a structure that is suitable for implementation in some programming language. In technical terms, during the design phase the software architecture is derived from the SRS document. Two distinctly different approaches are available: the traditional design approach and the object-oriented design approach. Traditional design approach Traditional design consists of two different activities; first a structured analysis of the requirements specification is carried out where the detailed structure of the problem is examined. This is followed by a structured design activity. During structured design, the results of structured analysis are transformed into the software design. Structured analysis involves specified in the SRS document into sub decomposition of the functional requirements functions & the data flow among these sub functions is analyzed. Structured design transforms the structured analysis into software design. Two main activities involved are: architectural design & detailed design. Object-oriented design approach In this technique, various objects that occur in the problem domain and the solution domain are first identified, and the different relationships that exist among these objects are identified. The object structure is further refined to obtain the detailed design
The purpose of this section of software development is to translate the software design into source code. Design is implemented into a workable solution. Each component of the design is implemented as a program module. For a good quality programs every software development organization formulates its own coding standards that suits itself. Coding standard addresses different issues. After coding is complete each module is unit tested. It involves various testing each module in isolation from other modules. The main aim of this testing is to determine the correct working of the individual modules
3.2.6 MAINTENANCE
Maintenance of a typical software product requires much more than the effort necessary to develop the product itself. Many studies carried out in the past confirm this and indicate that the relative effort of development of a typical software product to its maintenance effort is roughly in the 40:60 ratios. Maintenance involves performing any one or more of the following three kinds of activities:
12
Correcting errors that were not discovered during the product development phase. This is called corrective maintenance. Improving the implementation of the system, and enhancing the functionalities of the system according to the customers requirements. This is called perfective maintenance. Porting the software to work in a new environment. For example, porting may be required to get the software to work on a new computer platform or with a new operating system. This is called adaptive maintenance.
and redo some of the work done during that phase and the subsequent phases to correct the defect and its effect on the later phases. Therefore, in any practical software development work, it is not possible to strictly follow the classical waterfall model. There are many disadvantages to the model as well. Lets have a look at those, Many software projects are dependent upon external factors; out of which the client for which the software is being designed is the biggest factor. It happens a lot of times, that the client changes the requirement of the project, thereby influencing an alteration in the normal plan of construction and hence the functionality as well. The Waterfall Model doesnt work well in a situation like this as it assumes no alteration to occur once the process has started according to plan. If, for instance, this happens in a Waterfall Model, then a number of steps would go to waste, and there would arise a need to start everything all over again. Of course this also brings about the aspect of time and money which will all go to waste. Therefore this method will not at all prove to be cost effective. It is not even easy to take out the cost estimate of each step, as each of the phases is quite big. There are many other software developmental models which include many of the same aspects of the Waterfall model. But unlike the Waterfall model, these methods are not largely affected by the outside sources. In the waterfall model, there are many different people working in the different phases of the project like the designers and builders and each carries his own opinion regarding his area of expertise. The design, therefore, is bound to be influenced; however in the Waterfall model, there is no room for that. The other negative aspect of this model is that a huge amount of time is also wasted. For example if we study any software development process, we know that Phase II cannot be executed until Phase I has been successfully completed; so while the designers are still designing the software, time of the builders is completely wasted. Another disadvantage of this method is that the testing period comes quite late in the developmental process; whereas in various other developmental programs the designs would be tested a lot sooner to find the flaw at a time when a lot of time and money has not been wasted.
14
Elaborate documentation during the Waterfall method has its advantages, but it is not without the disadvantages as well. It takes a lot of effort and time, which is why it is not suitable for smaller projects.
15
5. REFERENCES
Information is taken in whole, or in part, from Wikipedia, The Free Encyclopedia www.google.com R. S. Pressman, Software Engineering: A Practitioners Approach, McGraw Hill Rajib Mall, Fundamentals of Software Engineering, PHI Publication. K. K. Aggarwal and Yogesh Singh, Software Engineering, New Age International Publishers.
17