Software Process Models (Cont)

7:09 PM / Posted by Alagan /

3.3      Prototyping Model

 ·         A prototype is a working model that is functionally equivalent to a component of the product.

·         In many instances the client only has a general view of what is expected from the software product.

·         In such a scenario where there is an absence of detailed information regarding the input to the system, the processing needs and the output requirements, the prototyping model may be employed.

·         This model reflects an attempt to increase the flexibility of the development process by allowing the client to interact and experiment with a working representation of the product.

·         The developmental process only continues once the client is satisfied with the functioning of the prototype.

·         At that stage the developer determines the specifications of the client’s real needs.

·         A prototype is an initial version of a software system which is used to demonstrate concepts, try out design options, and generally, to find out more about the problem and its possible solutions.

·         It is based on the idea of developing an initial implementation, exposing this to user comment and refining this through many versions until an adequate system has been developed.

·         There are two type of prototyping approaches:

o        Evolutionary Prototyping

o        ‘Throw-Away’ Prototyping


·         This approach extends the requirements analysis process with the intention of reducing overall life-cycle costs.

·         The principal function of the prototype is to clarify requirements and provide additional information for managers to assess process risks.

·         After evaluation, the prototype is thrown-away.

·         It is not used as a basis for further system development.

 3.4      Incremental Model

 ·         The waterfall model requires users to commit to a set of requirements and designers to commit to       particular design strategies.

·         Changes to the requirements during development require rework of the requirements, design and implementation.

·         However, the advantages of the waterfall model are that it is a simple management model and its separation of design and implementation should lead to robust systems which are amenable to change.

·         The prototyping approach to development allows requirements and design decisions to be delayed but also leads to software which may be poorly structured, difficult to understand and maintain.

·         Incremental development is an in-between approach which combines the advantages of both of these models.

·         Incremental approach to development is a mean of reducing rework in the development process and giving users some opportunities to delay decisions on their detailed requirements until they had some experience with the system.

·         The first increment is usually the core product which addresses the basic requirements of the system.

·         This maybe either be used by the client or subjected to detailed review to develop a plan for the next increment.

·         This plan addresses the modification of the core product to better meet the needs of the customer, and the delivery of additionally functionality.

·         More specifically, at each stage:

o        The client assigns a value to each build not yet implemented

o        The developer estimates cost of developing each build

o        The resulting value-to-cost ratio is the criterion used for selecting which build is delivered next

·         Essentially the build with the highest value-to-cost ratio is the one that provides the client with the most functionality (value) for the least cost.

·         Using this method the client has a usable product at all of the development stages.

·         When the services in an increment have a well-defined specification, a waterfall model may be used. If the specification is unclear, prototyping can be used.

·         Advantages:


Customers do not have to wait until the entire system is delivered until they gain value from it. The first increment satisfies their most critical requirements so the software can be immediately used.


Customers can use the early increments as a form of prototype and gain experience which informs the requirements for later system increments


There is a lower risk of overall project failure. Although problems may be encountered in some increments, it is likely that some will be successfully delivered to the customer


As the highest priority services are delivered first and later increments are integrated with them, it is inevitable that the most important system services receive the most testing. This means that customers are less likely to encounter software failures in the most important parts of the system


·         Problems


Increments should be relatively small and each increment should deliver some system functionality. It may be therefore be difficult to map the customer’s requirements onto increments of the right size.


Most system require a set of basic facilities which are used by different parts of the system. As requirements are not defined in detail until an increment is to be implemented, it is difficult to identify common facilities that all increments require

3.5      Spiral Model


·         Originally proposed by Boehm (1988)

·         The software process is represented as a spiral.

·         Each loop in the spiral represents a phase of the software process. E.g. the innermost loop might be concerned with system feasibility, the next loop with system requirements definition, the next loop with system design and so on.

·         The evolutionary process begins at the centre position and moves in a clockwise direction.

·         Each traversal of the spiral typically results in a deliverable.

·         An important distinction between the spiral model and other software models is the explicit consideration of risk.

·         There are no fixed phases such as specification or design phases in the model and it encompasses other process models.

Each loop in the spiral is split into 4 sectors



Post a Comment