Sei sulla pagina 1di 5

CAPE COMPUTER SCIENCE

UNIT 2
Alternative Software Process Models

FOUNTAIN MODEL

The Fountain model is a logical improvement to the Waterfall model. The steps are still there, in the same sequence,
however at any step there can be a fallback to an earlier step. Moving through a number of steps and falling back
one or more steps, performed repeatedly, is far more flexible than the Waterfall model.

 Based on the waterfall model

 But observes that the sequence always contains cycles

 Reflects the fact that some phases cannot begin before others

 ...and that some phases are poorly delineated

 A mental image to help visualize what actually happens in many real software development projects
The advantages of this are :

- Not having to freeze the requirements too soon

- Many more interactions between design and requirements

- Able to start the coding earlier

Analysis:

Its strengths are that it supports iteration within phases, allows parallelism between phases (overlapped
activities), and it is an incremental development. And its weakness is that it may degraded into code-a-bit
test-a-bit which requires frequent iterations and refinements. However in OO models such as fountain
model, overlapped between activities reduces maintenance effort.

Application
The Fountain Model is a better model to use in the industry. Though it would be a bit inappropriate for small projects.
It has the flexibility to fall back on any phase if some problems arise in between any of the previous phases. Also
practically the requirements keep on changing quite frequently. Even if there is an error in the understanding of the
client requirements, those can be easily rectified without much loss of project time for not very huge systems. Also a
combination of a fountain and a spiral model would be more effective as the Spiral model could be used at the
beginning in the requirements definition phase to minimize the risks involved in the project. This will also lead to a
reuse of the components developed in the earlier phases.

FORMAL TRANSFORMATION

Start with a software requirements specification. The software requirements specification is refined into a detailed
(formal) mathematical specification (i.e. expressed in a mathematical notation). The mathematical specification is
passed through a series of transformation (resulting in a number of different representations) to finally appear as an
executable
Program Transformations are ‘correctness-preserving’ so it is straightforward to show that the program conforms to
its specification

Problems
 Need for specialised skills and training to apply the technique
 Difficult to formally specify some aspects of the system such as the user interface (which is a large part of
the development process for most software systems!)
Applicability

 Critical systems especially those where a safety or security case must be made before the system is put into
operation
Use

 Outside specialised areas this process is not wide used

RAPID-PROTOTYPING

Rapid prototyping is described as a computer-based method which aims to reduce the iterative development cycle.
Interactive prototypes are developed which can be quickly replaced or changed in line with design feedback. This
feedback may be derived from colleagues or from the experiences of users as they work with the prototype to
accomplish set tasks.

Benefits
 Permits the swift development of interactive software prototypes.
 Prototypes created by this method have a high fidelity with the final product.

 The prototypes created under this method support metric-based evaluations.

 Reduces risk of incorrect user requirements


 Good where requirements are changing / uncommitted

 Regular visible process aids management

 Supports early product marketing

Limitations
 An unstable/badly implemented prototype often becomes the final product.
 Although rapid, the method is more time consuming than other approaches.

 The resources required are greater due to the need for software and hardware rather than paper and pens.

 Difficult to know how long the project will last.

 Easy to fall back into code and fix without proper requirements analysis, design, customer evaluation and
feedback.

Software Prototyping Pros and Cons

Software prototyping is used in typical cases and the decision should be taken very carefully so that the efforts spent
in building the prototype add considerable value to the final software developed. The model has its own pros and
cons discussed as below.

Following table lists out the pros and cons of Big Bang Model:

Pros Cons

Increased user involvement in the product even Risk of insufficient requirement analysis owing to too
before implementation much dependency on prototype

Since a working model of the system is Users may get confused in the prototypes and actual
displayed, the users get a better understanding systems.
of the system being developed.
Practically, this methodology may increase the
Reduces time and cost as the defects can be complexity of the system as scope of the system may
detected much earlier. expand beyond original plans.

Quicker user feedback is available leading to Developers may try to reuse the existing prototypes to
better solutions. build the actual system, even when its not technically
feasible
Missing functionality can be identified easily
The effort invested in building prototypes may be too
Confusing or difficult functions can be identified much if not monitored properly

DESIGN STRATEGIES

The functional design process involves identifying data transformations, decomposing functions into sub-functions
and describing these in detail. It is a style that uses the definition and application of functions as essential concepts.
In this approach, variables play the same role as in mathematics: they are the symbolic representation of values and,
in particular, serve as the parameters of functions. The fundamental syntactic idea is that of an expression, and we
define functions, starting from expressions, by using variables as parameters.

An object-oriented design focuses on the entities in the system rather than the data processing activities while a
functional oriented design relies on identifying functions which transform inputs to outputs.

Potrebbero piacerti anche