Page 37 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 37
Unit 2: Software Processes and Models
Assessment: The prototype is presented to the customer for review. Comments and suggestions Notes
are collected from the customer.
Prototype Refinement: Information collected from the customer is digested and the prototype
is refined. The developer revises the prototype to make it more effective and efficient.
System Implementation: In most cases, the system is rewritten once requirements are understood.
Sometimes, the iterative process eventually produces a working system that can be the cornerstone
for the fully functional system.
Prototyping does not eliminate the need for front-end analysis. It cannot help
if the situation is not amenable to instructional design.
2.4.1 Problems/challenges Associated with the Prototyping Model
Criticisms of the Prototyping Model generally fall into the following categories:
Prototyping Can Lead To False Expectations: Prototyping often creates a situation where the
customer mistakenly believes that the system is finished” when in fact it is not. More specifically,
when using the Prototyping Model, the pre-implementation versions of a system are really
nothing more than one-dimensional structures. The necessary, behind the-scenes work such as
database normalization, documentation, testing, and reviews for efficiency have not been done.
Thus the necessary underpinnings for the system are not in place.
Prototyping Can Lead to Poorly Designed Systems: Because the primary goal of Prototyping is
rapid development, the design of the system can sometimes suffer because the system is built
in a series of “layers” without a global consideration of the integration of all other components.
While initial software development is often built to be a throwaway,” attempting to retroactively
produce a solid system design can sometimes be problematic.
2.4.2 Variation of the Prototyping Model
A popular variation of the Prototyping Model is called Rapid Application Development (RAD).
The RAD introduces strict time limits on each development phase and relies heavily on rapid
application tools which allow for quick development.
Prototyping may lead to premature commitment to a design if it is not
remembered that a design is only a hypothesis.
2.5 Iterative Model
The iterative development process model counters the third and fourth limits of the waterfall
model and tries to unite the reimbursement of both prototyping and the waterfall model. The
basic idea is that the software should be urbanized in increments, each increment addition some
practical capability to the system until the full system is implemented.
The iterative enhancement model is an example of this approach. In the first step of this model, a
simple initial implementation is done for a subset of the overall problem. This subset is one that
contains some of the key aspects of the problem that are easy to understand and implement and
which form a useful and usable system. A project control list is created that contains, in order,
all the tasks that must be performed to obtain the final implementation. This project control list
gives an idea of how far along the project is at any given step from the final system.
Each step consists of removing the next task from the list, designing the implementation for the
selected task, coding and testing the implementation, performing an analysis of the partial system
obtained after this step, and updating the list as a result of the analysis. These three phases are
called the design phase, implementation phase, and analysis phase. The process is iterated until
LOVELY PROFESSIONAL UNIVERSITY 31