Software Process Models
Software Process Models
Software Process Model also can be called as Life Cycle Model. Software Process Model can describe the sequence of entire product. It’s a representation of a Software process. There are different types of Life Cycles.
·
Waterfall Model
·
Incremental Model
·
Prototyping Model
·
Rapid Application
Development
·
Agile Model
·
Spiral Model
·
Dynamic System
Development Model (DSDM)
Waterfall Model
This
Model is the first process model which was introduced in Software engineering.
This is a linear sequential model. Cascade from one phase to another is the
nature of this process model.
Merits
·
This model is the model
which is simple and easy to understand and use
·
Easy to use for smaller
projects were requirements are very well understood
·
Phases do not overlap
·
In this model, each phase
has specific deliverables and a review process. It’s easy to manage
Demerits
·
One phase has to be
complete before moving onto the next phase
·
The customer must have
patience. A working version of the program will not be available until late in
the project time-span
·
Time consuming
·
Few business systems have
stable requirements
Process
Model Suitability
The
waterfall model is suitable for projects which have clear and stable
requirements
Incremental Model
This
model is based on the idea of developing system increments by following the
same Iterative. It is the main concept of this model.
Merits
·
The cost of accommodating
changing customer requirements is reduced.
·
It is easier to get
customer feedback on the development work that has been done.
·
Lower risk of overall
project failure
·
The highest priority
system services tend to receive the most testing
Demerits
·
The process is not
visible.
·
Needs good planning and
design
·
Total cost is higher than
waterfall model
·
Needs a clear and
complete definition of the whole system before it can be broken down and built
incrementally.
Process
model Suitability
The
incremental model is suitable for when the requirements of the complete system
are clearly defined and understood.
Prototyping Model
It
is very difficult for end-users to anticipate how they will use new software
systems to support their work. It is impossible to make this assessment before
the system is built and put into use if it is a large and complex system.
There are two types of Prototyping Model.
·
Throw-away Prototyping
This model is suitable if the
requirements are not clear but stable.
·
Exploratory Prototyping
In this method the prototyping will become
as the final system after enhancing by adding new features.
Merits
·
Faster than Waterfall
model
·
High level of user
involvement from the start
·
Technical or other
problems discovered early-risk reduced
·
A working system is
available early in the process
·
No misunderstandings
between software users and developers.
Demerits
·
Not a cost-effective
solution
·
Maintenance is therefore
likely to be difficult and costly.
·
Languages which are good
for prototyping not always best for final product
·
Impossible to tune the
prototype to meet non-functional requirements, such as performance, security,
robustness and reliability requirements which were ignored during prototype
development.
Process
model Suitability
Prototyping
model should be used when the desire system needs to have a lot of interaction
with the end users.
Rapid Application Development (RAD)
This model is an incremental software development process model that emphasized and extremely short development cycle. This model is helpful to create a ‘Fully functional system’ within a short period if requirements are well understood.
Stages of Rapid Application
Development (RAD)
i.
Business
Modeling
What information
drives the Business process, what info is generated, who generates it, where
dose the info goes and who process it are the points which highlight this
model. This is the model which identify the Business functions in this customer
environment.
ii.
Data
Modeling
Simply it
highlights the information flow of the system and identifying the attributes
and the relationships between the data objects.
iii.
Process
Modeling
In this Stage process
descriptions are created for adding, updating, deleting or selecting the data
object.
iv.
Application
Generation
To implement the
system 4th generation languages can be used.
E.g.: C#, Php
v.
Testing
and Turnover
All the components must
be tested and interfaces must be fully excessed
Merits
·
Low cost
·
Customer involvement
during the complete system
·
Increased reusability of
components
·
Promotes consumer
feedback
Demerits
·
Need human resources to
create right number of RAD teams
·
Need developers and
customers to get a system completed in a much abbreviated time frame
·
Technical risk is high.
Process model suitability
This model is suitable for projects which can be time
boxed and where the requirements are well defined.
Spiral Model
This model couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model. This is the model which provides a clear recognition for risk.
Merits
·
High amount of risk
analysis hence, avoidance of risk in enhanced
·
Good for large and
mission-critical projects
·
Strong approval
·
Documentation control
·
Additional functionality
can be added at a later date
·
Software is produced
early in the software life cycle
Demerits
·
It can be a costly model
to use
·
This risk analysis
requires specific expertise
·
Project’s success is
highly dependent on the risk analysis phase
·
It doesn’t work well for
smaller projects
Agile Model
This
software development is a group of software development methodologies based on
iterative and incremental development. It promotes adaptive planning using a
time boxed approach. They aim to cut down formalities and reduced documentation
that will probably never be used. Planning, requirement analysis, design,
coding, until testing and acceptance testing and includes in each iteration.
Dynamic System Development Methodology (DSDM)
This
development methodology is originally based on Rapid Application Development
(RAD) Methodology. The Dynamic System development method (DSDM) uses in
incremental prototyping. It is an iterative and incremental approach that
emphasis continuous user involvement. This method is useful for the system to
be developed in short time span. At the start of the application the
requirements cannot be frozen.
Good for learners like
ReplyDelete