SOFTWARE DEVELOPMENT MODELS
Software development is a layered technology which is based on its commitment to quality at bottom line. Software process is the way; the software is produced as a product. It uses tools and techniques to give high quality software product. Evolution of software development can be studied with the help of different software development models such as waterfall model, spiral model, prototyping and many more. Most of them are based on structured methodology such as SDLC and some are having totally different approach such as object oriented model.
WATERFALL MODEL :
In waterfall model the process is structured as a cascade of phases, where the output
of one phase is the input to the next one. Each phase in turn is structured as a set of
activities that might be executed by different people concurrently. As waterfall model
prescribes a sequential linear flow among phases, output each phase must be produced
using standards. If output of any phase is wrong, it may affect the subsequent phases.
Waterfall model is also useful to measure the progress of the project.
5] Implementation:- The process is repeated till both the user and developer find that all the necessary features are fulfilled and there is no benefit in further repeating the steps. Once both are convinced then only prototype becomes ready for implementation.
1. Preliminary investigation: - Preliminary investigation is done to find out the root cause
of the problem for which the system is supposed to be developed.
2. Requirement analysis:- Requirement of both system and software is documented
and reviewed with the customer.
3. System design: - It is multistep process which focuses on attributes such as
i] Data structure
ii] Software architecture
iii] Interface representation
vi ]Procedural details
4. System coding: - At this step the logical aspect of the design is converted into
machine readable form. Special focus of this step is on logical internals.
5.System testing: - This step of the waterfall model is to uncover the errors and ensure
that the defined input can generate expected results.
6. Implementation: - In implementation phase proper schedule of the following aspects
is done and then it is implemented.
I. Procurement of hardware
II. Installation of software
III. Recruitment of human ware
IV. Educating & Training the staff
V. Conversion of data structure into required format
VI. Finally operational implementation of the system.
7. Maintenance: - Maintenance step of waterfall model takes care by implementing all
types of maintenance of the system such as
I. Corrective maintenance for removal of residual errors.
II. Adaptive maintenance for hardware.
III. Perfective maintenance to enhance the quality of the software.
SPIRAL MODEL
When development of the project starts, it may be possible that the work may be
stopped due to any reason whatever hurdles are there in future work must be studied
initially and steps must be taken to solve such problems. The spiral model is useful in
such situations, which guides the risk in the project. Risks are concerned with future.
The spiral model is useful for identifying and eliminating high risk problems by careful
process design.
The model represented by spiral (cycle) contains four stages and each stage is
represented by one quadrant of the Cartesian diagram. The radius of the spiral represents
the cost incurred so far in the process.
The four major activities are
i) Planning:- In this stage identification of the objectives, alternatives and constraints
of the portion of the product under consideration is done.
ii) Risk Analysis:- The alternatives are evaluated and potential risks areas are identified
and efforts are made to resolve the risks.
iii) Engineering:- Development and verification of the next level product is done using
the activities like prototyping or simulation.
iv) Customer evaluation:- The customer evaluates the engineering work and makes
suggestion for modification.
The spiral model is an evolutionary model having most realistic approach to the
development of the large system. This model enables the developer to apply the
prototyping approach & customer evaluation is done after that. So whatever the final
product is made it is as per customer specifications.
PROTOTYPING
Prototyping is the system development methodology which enables the developer to
construct a working model of the final system. Prototype gives just the idea about the
final system and it does not contain all the features or perform all the necessary functions. Customer or user evaluates the prototype and they suggest, what is to be added or
modified. Prototyping is an iterative process as it is revised to satisfy the needs of the
customer until the satisfactory design is evolved.
Need of prototyping;- It is useful when
The requirements are difficult to specify in advance.
If there is possibility of changing the requirements significantly
during the development.
A totally novel system is proposed.
1] Requirement gathering & Refinement:- Both developer (system analyst & customer
( user ) work together and define the overall objectives for the software and identify
the requirements to be satisfied.
2] Develop working model:- Developer and user jointly identify the data that are needed
in the system and specify the output that the application must produce. Analyst
estimates a prototyping cost and give idea to management about the expenditure
that are incurred. Prototypes are prepared to represent input screens format and
output formats.
3] Customer evaluation of prototype:- User works on prototype to evaluate its features
and operations.
4] Review prototype:- The prototype is reviewed after getting information from user to
check their likes and dislikes. Developer should understand the need of the customer
properly for making modifications in the prototype.
5] Implementation:- The process is repeated till both the user and developer find that all the necessary features are fulfilled and there is no benefit in further repeating the steps. Once both are convinced then only prototype becomes ready for implementation.
BENEFITS OF PROTOTYPING:-
Saves time in system development.
Encourages the development team through ongoing
communication with the user.
Missing user services and nonuser friendly services may be
identified.
Helps to build the system as per customer’s satisfaction and avoid
wrong system delivery.
If proper tools are used, low cost is required for development of
prototype. This cost is affordable as compared to reworking when
customer rejects the work.
System can be delivered in time and delays are minimized.