Software engineering water fall model.docx

Embed Size (px)

Citation preview

  • 7/29/2019 Software engineering water fall model.docx

    1/5

    By KAHEMLA HAMZA TEKU/BSc-MIS/101708 Page 1 of5 TEOFILO KISANJI UNIVERSITY

    Question:

    Describe the waterfall model of software development. What are three advantages and three

    disadvantages? What alternatives exist?

    Answer:

    The waterfall model of software development is also referred as a linear-sequential life cycle

    model. It represents an experience-based refinement of the classical sequential software life-

    cycle model. It separates the distinct phases of specification and development in the software

    life-cycle. It is quite simple and easy to understand and use. In a waterfall model one

    development stage should be completed before the next begins. 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.

    Waterfall model is a sequential design process, often used in software development processes,

    in which progress is seen as flowing steadily downwards (like a waterfall) through the phases

    of:-

    1. Requirements analysis and definition:Software specification is the process of establishing what services are required and the

    constraints on the systems operation and development. They are then defined in detail

    and served as a system specification. This is also known as feasibility study. In this

    phase, the development team visits the customer and studies their system. They

    investigate the need for possible software automation in the given system. By the end of

    the feasibility study, the team furnishes a document that holds the different specific

    recommendations for the candidate system. It also includes the personnel assignments,

    costs, project schedule, and target dates.

    2. System and software design:In this phase, the software development process the softwares overall structure and its

    nuances are defined. In this phase there is the establishment of the overall system

    architecture. For example in terms of the client/server technology, the number of tiers

    TMI 530Software Engineering TEOFILO KISANJI UNIVERSITY

    Assignment Answer by KAHEMELA HAMZA (TEKU/BSC-MIS/101708)

  • 7/29/2019 Software engineering water fall model.docx

    2/5

    By KAHEMLA HAMZA TEKU/BSc-MIS/101708 Page 2 of5 TEOFILO KISANJI UNIVERSITY

    needed for the package architecture the database design the data structure design etc. are

    all defined in this phase.The logical system of the product is developed in this phase.

    3. Implementation and unit testing:In this stage the designed parameters are now taken into actions and each individual

    component of the system is tested from errors and or bugs. In this phase the design is

    realized as a set of programs or program units. The design must be translated into a

    machine-readable form. The code generation process is involved in this phase to translate

    the designed software into machine (computer) readable form.If the design is performed

    in a detailed manner code generation can be accomplished without much complication.

    Once the code is generated, the software program testing begins. Different testing

    methodologies are available to unravel the bugs that were committed during the previous

    phases. The unity testing is the testing of each and every unity making the system or

    software before it becomes into system integration and system testing phase.

    4. Integration and system testing:In this phase the different individual units are integrated and the overall system is tested.

    Integration and testing is performed after the units testing of the components. System

    testing is very important before deploying it to customers or the client as the very small

    bug in the system will be viewed by the client and customers as the failure of the whole

    system.This is also the stage at which product documentation, such as a user manual, is

    prepared, reviewed and published.

    5. Operation and maintenance:This phase involves preparing the system or product for installation and use at the client

    and customer place. Software will definitely undergo change once it is delivered to the

    customer. There are many reasons for the change. Change could happen because of some

    unexpected input values into the system. In addition, the changes in the system could

    directly affect the software operations. The software should be developed to

    accommodate changes that could happen during the post implementation period.

  • 7/29/2019 Software engineering water fall model.docx

    3/5

    By KAHEMLA HAMZA TEKU/BSc-MIS/101708 Page 3 of5 TEOFILO KISANJI UNIVERSITY

    Modifications and other maintenance activities will follow after installation or and

    operation process to satisfy customers needs.

    The above phases are as illustrated below;

    Fig1: Water Fall model life cycle.

    Advantages:Following are three of the advantage of the Water Fall Model:

    1. Documentation is produced at each phase helping stakeholders (customers and clients)understand what is done or going on about the system being developed. Verification and

    Validation is performed before completing each stage.

    2. It fits with other engineering process models. Thus it should only be used when therequirements are well understood, well for smaller projects and unlikely to change

    radically during system development.

    3. Waterfall Model is very simple and easy to use, thus making it easy to manage due to theinflexibility of the model.It is very simple in implementation and maintenance.

    Requirements analysis

    System and software design:

    Im lementation and unit testin :

    Integration and system testing:

    Operation and maintenance:

  • 7/29/2019 Software engineering water fall model.docx

    4/5

    By KAHEMLA HAMZA TEKU/BSc-MIS/101708 Page 4 of5 TEOFILO KISANJI UNIVERSITY

    Disadvantages

    The following are three of the disadvantages of water-fall model

    1. The main drawback of the waterfall model is the difficulty of accommodating changeafter the process is underway. One phase has to be complete before moving onto the next

    phase.

    2. Commitments must be made at an early stage in the process, which makes it difficult torespond to changing customer requirements.

    3. The requirements cannot be changed once completed. It is difficult to respond tochanging customer requirements.

    To conclude, software processes based on this approach are still used for software development,

    particularly when the software project is part of a lager systems engineering project. Not

    appropriate for complex and object-oriented projects.

    Alternatives to water- fall model

    There other several models apart from water fall model some of them are;

    1. Evolutionary development:It is based on the idea of developing an initial implementation, exposing this to user

    comment and refining it through many versions until an adequate system has been

    developed. Specification, development and validation activities are interleaved rather

    than separate, with rapid feedback across activities. The evolutionary model is also

    called prototyping or simulation model.

    2. Prototyping or iterative model:Iterative process models describe the software process as a cycle of activities of software

    processes.The key idea behind this model is to solve problems through the iterations.

    On each iteration identify some problems and to solve these problems. The

    development in this model begins by specifying and implementing part of the software

    instead to start with the full specification of requirements. The process in this model is

    repeated and producing a new version of the software for each cycle of the model.

  • 7/29/2019 Software engineering water fall model.docx

    5/5

    By KAHEMLA HAMZA TEKU/BSc-MIS/101708 Page 5 of5 TEOFILO KISANJI UNIVERSITY

    3. Incremental Model:The incremental model is a perceptive approach to the waterfall model. Multiple

    development cycles take place here, making the life cycle a multi-waterfall cycle.

    Cycles are divided up into smaller, more easily managed iterations. Each iteration passes

    through the requirements, design, implementation and testing phases.

    4. Spiral Model:The spiral model is similar to the incremental model, with more emphases placed on risk

    analysis. In spiral development Process is represented as a spiral rather than as a

    sequence of activities with backtracking and each loop in the spiral represents a phase in

    the process there are no fixed phases such as specification or design loops in the spiral

    are chosen depending on what is required Risks are explicitly assessed and resolved in

    this model.

    5. Prototype Model:The prototype model is start by developing a small prototype than and followed by a

    mini-waterfall process, primarily to gather requirements. Then, the first prototype is

    reviewed in subsequent loops. The project team performs further requirements, design,

    implementation and review. The first thing to do before embarking on each new loop is

    risk analysis. The maintenance is simply a type of on-going development throughout the

    process.

    Those are just some of the alternatives as there are many others than those briefly explained.

    Bibliography

    Sommerville, I; Software Engineering: 8th edition. China

    For more reading you can visit the following link(s) (sites)

    http://www.buzzle.com/articles/waterfall-model-in-software-engineering.html

    http://www.buzzle.com/articles/waterfall-model-in-software-engineering.htmlhttp://www.buzzle.com/articles/waterfall-model-in-software-engineering.htmlhttp://www.buzzle.com/articles/waterfall-model-in-software-engineering.html