Monday, 20 June 2011

Software Development Models

Water Fall model


After completing one Phase then next phase is implemented . Water fall model can  
waterfall model strength 
  • Easy to understand and easy to use
  • work well when quality is more important than cost or schedule
  • milestones are well understand
Drawbacks:
  • All requirement must be Known upfront
  • can give false impression of progress
  • Technology must understand
The waterfall model
The waterfall model derives its name due to the cascading effect from one phase
to the other as is illustrated in Figure1.1. In this model each phase well defined
starting and ending point, with identifiable deliveries to the next phase.
Note that this model is sometimes referred to as the linear sequential model or
the software life cycle.


The model consist of six distinct stages, namely:
1. In the requirements analysis phase
(a) The problem is specified along with the desired service objectives
(goals)
(b) The constraints are identified

2. In the specification phase the system specification is produced from the
detailed definitions of (a) and (b) above. This document should clearly
define the product function.
Note that in some text, the requirements analysis and specifications
phases are combined and represented as a single phase.

3. In the system and software design phase, the system specifications are
translated into a software representation. The software engineer at this
stage is concerned with:
  • Data structure
  • Software architecture
  • Algorithmic detail and
  • Interface representations
The hardware requirements are also determined at this stage along with a
picture of the overall system architecture. By the end of this stage the
software engineer should be able to identify the relationship between the
hardware, software and the associated interfaces. Any faults in the
specification should ideally not be passed ‘down stream’

4. In the implementation and testing phase stage the designs are translated
into the software domain
  • Detailed documentation from the design phase can significantly reduce the coding effort
  • Testing at this stage focuses on making sure that any errors are
identified and that the software meets its required specification.

5. In the integration and system testing phase all the program units are
integrated and tested to ensure that the complete system meets the
software requirements. After this stage the software is delivered to the
customer [Deliverable – The software product is delivered to the
client for acceptance testing.

6. The maintenance phase the usually the longest stage of the software. In this
phase the software is updated to:
Meet the changing customer needs
  • Adapted to accommodate changes in the external environment
  • Correct errors and oversights previously undetected in the testing phases
  • Enhancing the efficiency of the software
Observe that feed back loops allow for corrections to be incorporated into the
model. For example a problem/update in the design phase requires a ‘revisit’ to
the specifications phase. When changes are made at any phase, the relevant
documentation should be updated to reflect that change.
Advantages
Testing is inherent to every phase of the waterfall model
  • It is an enforced disciplined approach
  • It is documentation driven, that is, documentation is produced at every stage
Disadvantages
The waterfall model is the oldest and the most widely used paradigm.
However, many projects rarely follow its sequential flow. This is due to the
inherent problems associated with its rigid format. Namely:

1)  It only incorporates iteration indirectly, thus changes may cause
considerable confusion as the project progresses.

2)  As The client usually only has a vague idea of exactly what is required
from the software product, this WM has difficulty accommodating the
natural uncertainty that exists at the beginning of the project.

3)  The customer only sees a working version of the product after it has been
coded. This may result in disaster if any undetected problems are
precipitated to this stage.

No comments:

Post a Comment

Testing Types

Black-box Testing:   A test technique that focuses on testing the functionality of the program component or application against its sp...