Sie sind auf Seite 1von 5

TMI 530 Software Engineering TEOFILO KISANJI UNIVERSITY Assignment Answer by KAHEMELA HAMZA (TEKU/BSC-MIS/101708)

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 lifecycle 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

By KAHEMLA HAMZA TEKU/BSc-MIS/101708

Page 1 of 5

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.

By KAHEMLA HAMZA TEKU/BSc-MIS/101708

Page 2 of 5

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;


Requirements analysis

System and software design:

Implementation and unit testing:

Integration and system testing:

Operation and maintenance:

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 the requirements 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 the inflexibility of the model. It is very simple in implementation and maintenance.

By KAHEMLA HAMZA TEKU/BSc-MIS/101708

Page 3 of 5

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 change after 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 to respond to changing customer requirements. 3. The requirements cannot be changed once completed. It is difficult to respond to changing 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.
By KAHEMLA HAMZA TEKU/BSc-MIS/101708 Page 4 of 5

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
By KAHEMLA HAMZA TEKU/BSc-MIS/101708 Page 5 of 5

TEOFILO KISANJI UNIVERSITY

Das könnte Ihnen auch gefallen