SOFTWARE DEVELOPMENT AND PROCESS MODEL
BY
MUHAMMAD MAHAB
SHEIKH MUHAMMAD AFFAN
HANAN KHALID
Software Development and Process Model
It is a process used by software industry to design develop and test high quality software that meets
customer expectation reaches completion with-in time and cost estimated.
Any software process must include the following four activities:
Software specification
Software design and implementation
Software verification and validation
Software evolution (software maintenance)
SDLC
3
Software Development and Process Model
There are various software development life cycle models defines and designed which are
followed during the software development process. following are software development and
process models.
1. Big-Bang model
2. Code-and-fix model
3. Waterfall model
4. Incremental model
5. RAD model
6. Agile model
7. Iterative model
8. Spiral model
9. Prototype model
Big-Bang model
Big-Bang is the SDLC(Software Development Life cycle) model in which no
particular process is followed.
Generally this model is used for small projects in which the development
teams are small. It is specially useful in academic projects.
This model is needs a little planning and does not follow formal
development.
The development of this model begins with the required money and efforts
as an input.
The output of this model is developed software, that may or may not be
according to the requirements of the customer.
Big-Bang model
Advantages of Big-Bang model
Big-Bang model is a simple model.
It needs little planning.
It is simple to manage. It needs just a few resources to
be developed.
It is useful for students and new comers.
Disadvantages of Big-Bang model
It is a very high risk model.
This model is not suitable for object oriented and
complex projects.
Big-Bang is poor model for lengthy and in-progress
projects.
Code-and-fix Model
Code and fix model is one step ahead from the Big-Bang model. It
identifies the product that must be tested before release.
The testing team find the bugs then sends the software back for
fixing.
To deliver the fixes developers complete some coding and send the
software again for testing. This process is repeated till the bugs are
found in it, at an acceptable level.
Code-and-fix Model
Advantages of Code-and-fix model
This model is suitable for small projects.
It needs less project planning
Disadvantages of Code-and-fix model
It is difficult to accommodate changes.
It is not clear what will be delivered and when.
It is difficult to assess quality.
Waterfall Model
The waterfall model is the classic model or oldest model and is known as mother of
all the model. It is widely used in government projects and many vital projects in
company.
The waterfall model is also called as 'Linear sequential model' or 'Classic life
cycle model'.
In this model, each phase is executed completely before the beginning of the next
phase. Hence the phases do not overlap in waterfall model.
This model is used for small projects.
In this model, feedback is taken after each phase to ensure that the project is on the
right path.
Testing part starts only after the development is completed.
Waterfall Model
.
Advantages of Waterfall model
The waterfall model is simple and easy to understand, to implement, and
use.
All the requirements are known at the beginning of the project, hence it
is easy to manage.
It avoids overlapping of phases because each phase is completed at once.
This model works for small projects where the requirements are easily
understood.
This model is preferred for those projects where the quality is more
important as compared to the cost of the project.
Disadvantages of Waterfall model
This model is not good for complex and object oriented
projects.
In this model, the changes are not permitted so it is not fit for
moderate to high risk changes in project.
It is a poor model for long duration projects.
The problems with this model are uncovered, until the software
testing.
The amount of risk is high.
Incremental Model
The incremental model combines the elements of waterfall model and they
are applied in an iterative fashion.
The first increment in this model is generally a core product.
Each increment builds the product and submits it to the customer for
suggesting any modifications.
The next increment implements the customer's suggestions and add
additional requirements in the previous increment.
This process is repeated until the product is completed.
For example, the word-processing software is developed using the
incremental model.
Incremental Model
Advantages of Incremental model
This model is flexible because the cost of development is low
and initial product delivery is faster.
It is easier to test and debug in the smaller iteration.
The working software is generated quickly in the software life
cycle.
The customers can respond to its functionalities after every
increment.
Disadvantages of the incremental model
The cost of the final product may cross the cost initially
estimated.
This model requires a very clear and complete planning.
The planning of design is required before the whole system is
broken into smaller increments.
The demands of customer for the additional functionalities
after every increment causes problem in the system
architecture.
RAD Model
RAD is a Rapid Application Development model.
Using the RAD model, software product is developed in a short
period of time.
The initial activity starts with the communication between customer
and developer.
Planning depends upon the initial requirements and then the
requirements are divided into groups.
Planning is more important to work together on different modules.
RAD Model
Advantages of RAD Model
The process of application development and delivery are
fast.
This model is flexible, if any changes are required.
Reviews are taken from the clients at the staring of the
development hence there are lesser chances to miss the
requirements.
Disadvantages of RAD Model
The feedback from the user is required at every
development phase.
This model is not a good choice for long term and large
projects.
Agile Model
Agile model is a combination of incremental and iterative process models.
This model focuses on the users satisfaction which can be achieved with quick delivery
of the working software product.
Agile model breaks the product into individual iterations.
Every iteration includes cross functional teams working on different areas such as
planning, requirements, analysis, design, coding, unit testing and acceptance testing.
At the end of an iteration working product shows to the users.
With every increment, features are incremented and the final increment hold all the
features needed by the customers.
The iterations in agile process are shorter in duration which can vary from 2 weeks to 2
months.
Agile Model
Advantages of Agile model
Customers are satisfied because of quick and continuous
delivery of useful software.
Regular delivery of working software.
Face to face interaction between the customers, developers and
testers and it is best form of communication.
Even the late changes in the requirement can be incorporated
in the software.
Disadvantages of Agile model
It is totally depends on customer interaction. If the customer is not
clear with their requirements, the development team can go in the
wrong direction.
Documentation is less, so the transfer of technology to the new
team members is challenging.
Iterative Model
In Iterative model, the large application of software development is
divided into smaller chunks and smaller parts of software which can
be reviewed to recognize further requirements are implemented. This
process is repeated to generate a new version of the software in each
cycle of a model.
With every iteration, development module goes through the phases
i.e. requirement, design, implementation and testing. These phases are
repeated in iterative model in a sequence.
Iterative Model
Advantages of an Iterative Model
Produces working software rapidly and early in the
software life cycle.
This model is easy to test and debug in a smaller
iteration.
It is less costly to change scope and requirements.
Disadvantages of an Iterative Model
The system architecture is costly.
This model is not suitable for smaller projects.
Prototype Model
Prototype is defined as first or preliminary form using which
other forms are copied or derived.
Prototype model is a set of general objectives for software.
It does not identify the requirements like detailed input, output.
It is software working model of limited functionality.
In this model, working programs are quickly produced.
Prototype Model
Advantages of Prototyping Model
In the development process of this model users are actively
involved.
The development process is the best platform to understand the
system by the user.
Earlier error detection takes place in this model.
It gives quick user feedback for better solutions.
It identifies the missing functionality easily. It also identifies
the confusing or difficult functions.
Disadvantages of Prototyping Model
The client involvement is more and it is not always considered
by the developer.
It is a slow process because it takes more time for
development.
Many changes can disturb the rhythm of the development
team.
It is a throw away prototype when the users are confused with
it.
Spiral model
It is a combination of prototype and waterfall model.
Every phase in the Spiral model is start with a design goal and ends
with the client review.
The development team in this model begins with a small set of
requirements and for the set of requirements team goes through each
development phase.
The development team adds the functionality in every spiral till the
application is ready.
Spiral Model:
Advantages of Spiral Model
It reduces high amount of risk.
It is good for large and critical projects.
It gives strong approval and documentation control.
In spiral model, the software is produced early in the life
cycle process.
Disadvantages of Spiral Model
It can be costly to develop a software model.
It is not used for small projects.