Sunday 4 September 2011

Explain about the phases in Water fall model

4. Explain about the phases in Water fall model?

1.21          Iterative water fall model

PHASES IN WATERFALL MODEL:


The simplest, oldest and most widely used process model for software designing is the waterfall model. It was proposed by Royce in 1970.
The essence of this software paradigm is that the process of software designing consists of linear set of distinct phases.
These phases are:
Stage1: Feasibility Study
The goal of feasibility study is to evaluate alternative systems and to purpose the most feasible and desirable system for designing. Five types of feasibility are addressed in this study.
1. Technical feasibility
2. Economic Feasibility
3. Motivational Feasibility
4. Schedule Feasibility
5. Operational Feasibility
Stage2: Requirement Analysis and Specification
The goal of this phase is to understand the exact requirements of the customers and to document them properly. This activity is usually executed together with the customers, as the goal is to document all functions, performance and interfacing requirements for the software designing and management. The requirements describe “what” of a system. This phase produces a large document containing a description of what the system will do without describing how it will be done. This document is known as software requirement specification (SRS) document.

SRS DOCUMENTS:
  • This baseline are the references to the future level
  • Once the step is completed
  • Which can be performed
  • Change of people
  • We are not making is necessary
  • Civil engineering, different people are do different tasks same thing happens to the software also
  • Different steps can be followed
  • This document also plays a key role to the
  • Natural development
  • When the requirements are clearly defined this is the best System engineering step
·        Where u try to understand the overall problem identify which of the problem handled by the software
·        Its possible certain requirements may n
·        Certain requirements may need to be done manually, because  automation may not possible whereas other phases can be done automation(sw)
·        Main intention of this step is Understand the overall problem of the context then, identify the responsibilities

Analysis phase

·        We understand the problems in details we understands. Generally this phase is done by the Business Analysists(BA) or Analysists
·        What kind of information is involved, What kind of data is involved
·        What function need to be performed, what are the performances and information is required
·        This part is the analyst part: whose purpose is to identify the clearly defined the requirements which are to be performed to development of the software
·        Along with the analysist you also try to carry out project planning either the part of the same step or if it I s a large project the project planning step may be for separate step
·        And the ……is to identify , how to carry out the project
·        What are the different steps what are the deliverables and what would be the time framed, what would be the resources allocated that is what the project planning is
·        After the analysist is done this step leads to ‘SOFTWRE DESIGN ‘ phase

Software design:
  • in this step we translate the requirements into the software architecture
  •  and we prepare the database design and so on and this is primarily a technical step
  • you may have the Detailed Design document this document may specify individual units   different people will implemented
  • and this step the requirements are translated into a implementation framework which will be implemented in the next phase the CODING PHASE, in which the actual programming and implementation is done.
  • So you have a design and design is followed by a implementation infact as its notes
  • The design itself is divided into two stages (i) high level design and (ii)detailed design , again this would depend the complexity of the task
  • you may have the Detailed Design document this document may specify individual units   different people will implemented
  • After you have done the implementation
  • This work is documented and is known as Software Design Description (SDD document).
  • Design document is also very important for future maintenance
  • Next phase is coding phase

CODING PHASE
  • The information contained in SDD is sufficient to begin the coding Phase
  • The source is one of the important deliverable and deliverable which is an executable plan
  • at the end of the each step if you recall as I said every step ends with a validation and proper tested.
  • Similarly in the waterfall model when we move from one step to another there would be such reviews each step usually end with a review
  • These review reports are very important inputs for identifying whether the development proceeded as What are the short comings whether the defects will be detected or addressed so review reports basically a catalog of the how the development went through and its an important inputs to the development team as well as the management team.
  • So these are the different deliverables, many of them are very important of which SRS is the one of the baseline
  • The coding Phase of software designing involves translation of design specification into a machine readable form(i.e programs).
  •  If design is performed in a detailed manner, code generation can be finished easily. 
  • This phase is also known as the implementation phase. Here, each component of the design is implemented as a program module.
  • The individual units of software are ready
  • You get into the next phase

TESTING AND INTEGRATION PHASE
  • Each of these program modules is unit tested. The purpose of unit testing is to determine the correct working of individual modules.
  • In this all the individual pieces of software are tested and then whole software will put together
  • Here objective is to test first ‘the logic ‘ of the individual module
  • And then when we put all of them put together then we want to test the interfaces so that they work correctively in a manner on which they intended to work
  • So this is the testing and integration phase
  • This is followed the actual deployment of the software
  • Now the software is ready
  • Then the user take the software and take controlling
  • So the deployment takes place and we release the software to use people and
  • After the deployment there is a ongoing maintenance phase

MAINTENANCE PHASE

  • On the maintenance phase we have to make the necessary changes
  • If any errors are encountered we have to remove the errors
  • If the software is not meeting the performance requirements we may have to review the software and may have to go back to design whether the design have modified or is there any something else to be done in order to improve the performance
  • So this is the ongoing step which we generally we call the maintenance phase and this either the software enhanced or is perfected or to be ported new hardware, this is ongoing step which needs to done through the life of the software.

Advantages
1. Simple and easy to use
2. Easily manageable
3. The phase of the model are processed and completed one at a time.
4. Works very well for smaller software projects.
Disadvantages
1. It is often difficult for the customer to state all the requirements explicitly.
2. Real projects rarely follow the sequential flow that the software model proposes.
3. The customer must have patience, as the product is delivered very late in this software process.
4. The model is not suitable for long time software projects.

Now each of these steps are certain deliverables in waterfall Model. Let us talk the different deliverables come out in a given sequence when we perform the various steps
One of the important is the
    • Project plan and feasibility report:
    • We will be carrying out the project according to the plan
  • plan needs to be reviewed as we
The feasibility report defines the cost effectiveness of approach and the whole software project, whether we are investing good or not whether the software is cost effective means the software will give the benefits .
  • so the project plan is one deliverable and the feasibility is one deliverable
  • one of the important deliverable is the REQUIREMENT DOCUMENT which is also called the Software Requirement Specification(SRS)
  • SRS is very important baseline it defines the functions that the software will perform for us
  • Obviously this out put SRS will comes from the Analyst Step
  • And the next step is the design the document



  • The above figure shows the cost effect distribution as we run thru the different spects in the waterfall model . there are different steps are shown here
  • Some of the earlier steps I have smaller efforts costs than the subsequent steps
  • For example the detailed design , implementation are very effort intensive steps
  • The line here is the cumulative have seen its increases rapidly as we progress development
  • So accumulated cost increases dramatically as we go from initial steps . because as we move steps to along the time of the programmers , technical people , all these are cost effective factors
  • This effort distribution is important to understand because it clearly bringsout that we must take all efforts to remove errors as earlier possible in the life cycle
  • We must discover and fix this bugs as early as possible because fixing them subsequently is very costly operation
  • Suppose there is a misunderstanding or analysis phase have not clearly identified the functional requirement that if it is not detected at the Review phase by the analysists would be carried over into design, detailed design , implementation and if it is not possible that mistake during the operation time when the user have started using the software . Now inorder to make the corrections we will have to undo the code, deisign etc., go back right upto the analysis phase and identify what have the missed out what are the wrongly understood and carryout the design and implementation and testing again so . Its important such errors are captured as early as possible and they are not allowed to kept into subsequent steps
  • So in any software development approach its important to understand how the cost have distributed not only for project planning and emphasizing the error free activity in each step
  • Now there are some short coming to the Water Fall Model
  • One of the main criticism is for waterfall model is that it goes linearly
  • And it assumes all the requirements clearly defined during the analysist phase
  • There are many situation where Requirements may not be clearly known, this often      happen there is no manual counterpart for that the problem that we are solving if a manual counterpart exists that means the function business function is already been carried out manually and we are planning to automated that then in this case it  is easy to
  • Here is an example we know that the Railway Reservation is now is in online before that the manual system existed we knew what is the tasks or what are the goal are involved in railway reservation that you want to reserve a seat on a particular train you may want to cancel it , you may get wait listed , wait list have to be arranged and there is a method for arranging all those things were we already defined as functional activities and therefore one can say the is the railway reservation is concerned the manual system existed and therefore it is possible to clearly define the requirements in this case
But there can be other examples where there can be no manual part for example a Central Bank wants to build a knowledge management system it believes that there is so much knowledge that is available its


What is Waterfall model- advantages, disadvantages and when to use it?
The Waterfall Model was first Process Model to be introduced. It is also referred to as a linear-sequential life cycle model.  It is very simple to understand and use.  In a waterfall model, each phase must be completed fully before the next phase can begin. This type of model is basically used for the for the project which is small and there are no uncertain requirements. At the end of each phase, a review takes place to determine if the project is on the right path and whether or not to continue or discard the project. In this model the testing starts only after the development is complete. In waterfall model phases do not overlap.

DEPLOYMENT PHASE

In the real time applications(projects) we have different types of servers. They are:
  1. Development Server
  2. Integration Server
  3. QA Server (Quality Assurance)
  4. Production Server
Development Server: It is used by every developer(programmers) to perform unit testing. And every developer’s computer development server is installed.

Integration Server: it is used by all the developers of that project. This server is used to perform Integration testing between modules.

QA Server: is used by the tester to perform the quality check on the project.

Production Server: This is the server used to deploy the final project for customer. Generally this server is available in client’s location.

 

5. Explain about spiral model? 

1 comment:

  1. nice informative post. Thanks you for sharing.We are an experienced team in one of the Best software company and product specialist for software development and implementation.
    Waterfall Methodology

    ReplyDelete