0% found this document useful (0 votes)
6 views

Process Models

The document outlines various software development models including the Waterfall, RAD, Spiral, Incremental, and Agile models, detailing their phases, advantages, and disadvantages. Each model is suited for specific project circumstances, such as project size, complexity, and requirement stability. The document serves as a guide for selecting the appropriate software development life cycle (SDLC) model based on project needs.

Uploaded by

aryankamal906
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Process Models

The document outlines various software development models including the Waterfall, RAD, Spiral, Incremental, and Agile models, detailing their phases, advantages, and disadvantages. Each model is suited for specific project circumstances, such as project size, complexity, and requirement stability. The document serves as a guide for selecting the appropriate software development life cycle (SDLC) model based on project needs.

Uploaded by

aryankamal906
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Software Engineering

BCA - 4003
Waterfall Model
• Winston Royce introduced the Waterfall Model in 1970.
• This model has five phases:
- Requirements analysis and specification
- Design
- Implementation & Unit testing
- Integration & System testing
- Operation & Maintenance
• The steps always follow in this order and do not overlap.
• The developer must complete every phase before the next
phase begins.
• This model is named "Waterfall Model", because its
diagrammatic representation resembles a cascade of
waterfalls.
Waterfall Model
1. Requirements analysis and specification phase:
• The aim of this phase is to understand the exact requirements of the customer and to document them
properly.
• Both the customer and the software developer work together so as to document all the functions,
performance, and interfacing requirement of the software.
• It describes the "what" of the system to be produced and not "how.“
• In this phase, a large document called Software Requirement Specification (SRS) document is created
which contained a detailed description of what the system will do in the common language.
2. Design Phase:
• This phase aims to transform the requirements gathered in the SRS into a suitable form which permits
further coding in a programming language. It defines the overall software architecture together with high
level and detailed design. All this work is documented as a Software Design Document (SDD).
3. Implementation and unit testing:
• During this phase, design is implemented. If the SDD is complete, the implementation or coding phase
proceeds smoothly, because all the information needed by software developers is contained in the SDD.
Waterfall Model
4. Integration and System Testing: This phase is highly crucial as the quality of the end product is
determined by the effectiveness of the testing carried out. The better output will lead to satisfied
customers, lower maintenance costs, and accurate results. Unit testing determines the efficiency of
individual modules. However, in this phase, the modules are tested for their interactions with each other
and with the system.
5. Operation and maintenance phase: Maintenance is the task performed by every user once the software
has been delivered to the customer, installed, and operational.

When to use SDLC Waterfall Model ?


Some Circumstances where the use of the Waterfall model is most suited are:
• When the requirements are constant and not changed regularly.
• A project is short
• The situation is calm
• Where the tools and technology used is consistent and is not changing
• When resources are well prepared and are available to use.
Waterfall Model
Advantage Disadvantage
• This model is simple to implement also the • In this model, the risk factor is higher, so this
number of resources that are required for it is model is not suitable for more significant and
minimal. complex projects.
• The requirements are simple and explicitly • This model cannot accept the changes in
declared; they remain unchanged during the requirements during development.
entire project development.
• It becomes tough to go back to the phase. For
• The start and end points for each phase is example, if the application has now shifted to
fixed, which makes it easy to cover progress. the coding phase, and there is a change in
• The release date for the complete product, as requirement, It becomes tough to go back
well as its final cost, can be determined and change it.
before development. • Since the testing done at a later stage, it does
• It gives easy to control and clarity for the not allow identifying the challenges and risks
customer due to a strict reporting system. in the earlier phase, so the risk reduction
strategy is difficult to prepare.
RAD (Rapid Application Development) Model
• RAD is a linear sequential software development process Module - 1 Module - 2
model that emphasizes a concise development cycle using
Business Business
an element based construction approach. If the
Modelling Modelling
requirements are well understood and described, and the
project scope is a constraint, the RAD process enables a
development team to create a fully functional system within Data Data
a concise time period. Modelling Modelling
• RAD (Rapid Application Development) is a concept that
products can be developed faster and of higher quality Process Process
through: Modelling Modelling
- Gathering requirements using workshops or focus groups
- Prototyping and early, reiterative user testing of designs Application Application
Generation Generation
- The re-use of software components
- A rigidly paced schedule that refers design improvements to
the next product version Testing & Testing &
Turnover Turnover
- Less formality in reviews and other team communication
Various Phases of RAD
1. Business Modelling: The information flow among business functions is defined by answering
questions like what data drives the business process, what data is generated, who generates it,
where does the information go, who process it and so on.
2. Data Modelling: The data collected from business modeling is refined into a set of data objects
(entities) that are needed to support the business. The attributes (character of each entity) are
identified, and the relation between these data objects (entities) is defined.
3. Process Modelling: The information object defined in the data modeling phase are transformed to
achieve the data flow necessary to implement a business function. Processing descriptions are
created for adding, modifying, deleting, or retrieving a data object.
4. Application Generation: Automated tools are used to facilitate construction of the software; even
they use the 4th GL techniques.
5. Testing & Turnover: Many of the programming components have already been tested since RAD
emphasis reuse. This reduces the overall testing time. But the new part must be tested, and all
interfaces must be fully exercised.
When to use RAD Model ?
• When the system should need to create the project that modularizes in a short span time
(2-3 months).
• When the requirements are well-known.
• When the technical risk is limited.
• When there's a necessity to make a system, which modularized in 2-3 months of period.
• It should be used only if the budget allows the use of automatic code generating tools.
RAD (Rapid Application Development) Model
Advantage Disadvantage
• This model is flexible for change. • It required highly skilled
designers.
• In this model, changes are
adoptable. • All application is not compatible
with RAD.
• Each phase in RAD brings highest
• For smaller projects, we cannot
priority functionality to the use the RAD model.
customer.
• On the high technical risk, it's
• It reduced development time. not suitable.
• It increases the reusability of • Required user involvement.
features.
Spiral Model
• The spiral model, initially proposed by
Boehm, is an evolutionary software process
model that couples the iterative feature of
prototyping with the controlled and
systematic aspects of the linear sequential
model. It implements the potential for rapid
development of new versions of the
software. Using the spiral model, the
software is developed in a series of
incremental releases. During the early
iterations, the additional release may be a
paper model or prototype. During later
iterations, more and more complete
versions of the engineered system are
produced.
Spiral Model
Each cycle in the spiral is divided into four parts:
• Objective setting: Each cycle in the spiral starts with the identification of purpose for that cycle, the
various alternatives that are possible for achieving the targets, and the constraints that exists.
• Risk Assessment and reduction: The next phase in the cycle is to calculate these various alternatives
based on the goals and constraints. The focus of evaluation in this stage is located on the risk
perception for the project.
• Development and validation: The next phase is to develop strategies that resolve uncertainties and
risks. This process may include activities such as benchmarking, simulation, and prototyping.
• Planning: Finally, the next step is planned. The project is reviewed, and a choice made whether to
continue with a further period of the spiral. If it is determined to keep, plans are drawn up for the next
step of the project.
The risk-driven feature of the spiral model allows it to accommodate any mixture of a specification-
oriented, prototype-oriented, simulation-oriented, or another type of approach. An essential element of
the model is that each period of the spiral is completed by a review that includes all the products
developed during that cycle, including plans for the next cycle. The spiral model works for development
as well as enhancement projects.
When to use Spiral Model ?
• When deliverance is required to be frequent.
• When the project is large
• When requirements are unclear and complex
• When changes may require at any time
• Large and high budget projects
Advantage Disadvantage

• High amount of risk analysis • Can be a costly model to use.


• Useful for large and mission-critical • Risk analysis needed highly particular
projects. expertise
• Doesn't work well for smaller
projects.
Incremental - Model
• Incremental Model is a process of software development where requirements divided into multiple
standalone modules of the software development cycle. In this model, each module goes through the
requirements, design, implementation and testing phases. Every subsequent release of the module
adds function to the previous release. The process continues until the complete system achieved.
Various Phases of Incremental Model
1. Requirement analysis: In the first phase of the incremental model, the product analysis expertise
identifies the requirements. And the system functional requirements are understood by the
requirement analysis team. To develop the software under the incremental model, this phase
performs a crucial role.
2. Design & Development: In this phase of the Incremental model of SDLC, the design of the system
functionality and the development method are finished with success. When software develops
new practicality, the incremental model uses style and development phase.
3. Testing: In the incremental model, the testing phase checks the performance of each existing
function as well as additional functionality. In the testing phase, the various methods are used to
test the behavior of each task.
4. Implementation: Implementation phase enables the coding phase of the development system. It
involves the final coding that design in the designing and development phase and tests the
functionality in the testing phase. After completion of this phase, the number of the product
working is enhanced and upgraded up to the final system product.
When to use the Incremental Model ?
• When the requirements are superior.
• A project has a lengthy development schedule.
• When Software team are not very well skilled or trained.
• When the customer demands a quick release of the product.
• You can develop prioritized requirements first.

Advantage Disadvantage
• Errors are easy to be recognized. • Need for good planning
• Easier to test and debug • Total Cost is high.
• More flexible. • Well defined module interfaces are needed.
• Simple to manage risk because it handled
during its iteration.
• The Client gets important functionality early.
Agile Model
• The meaning of Agile is swift or versatile.
• "Agile process model" refers to a software
development approach based on iterative
development.
• Agile methods break tasks into smaller iterations, or
parts do not directly involve long term planning. The
project scope and requirements are laid down at the
beginning of the development process.
• Plans regarding the number of iterations, the duration
and the scope of each iteration are clearly defined in
advance.
• Each iteration is considered as a short time "frame" in
the Agile process model, which typically lasts from
one to four weeks.
Agile Model
The division of the entire project into smaller parts helps to minimize the project risk and to reduce
the overall project delivery time requirements. Each iteration involves a team working through a full
software development life cycle including planning, requirements analysis, design, coding, and
testing before a working product is demonstrated to the client.

Various Phases of Agile Model


Following are the phases in the Agile model are as follows:

1. Requirements gathering
2. Design the requirements
3. Construction/ iteration
4. Testing/ Quality assurance
5. Deployment
6. Feedback
Agile Model
1. Requirements gathering: In this phase, you must define the requirements. You should explain
business opportunities and plan the time and effort needed to build the project. Based on this
information, you can evaluate technical and economic feasibility.
2. Design the requirements: When you have identified the project, work with stakeholders to define
requirements. You can use the user flow diagram or the high-level UML diagram to show the work
of new features and show how it will apply to your existing system.
3. Construction/ iteration: When the team defines the requirements, the work begins. Designers and
developers start working on their project, which aims to deploy a working product. The product will
undergo various stages of improvement, so it includes simple, minimal functionality.
4. Testing: In this phase, the Quality Assurance team examines the product's performance and looks
for the bug.
5. Deployment: In this phase, the team issues a product for the user's work environment.
6. Feedback: After releasing the product, the last step is feedback. In this, the team receives feedback
about the product and works through the feedback.
When to use Agile Model ?
• When frequent changes are required.
• When a highly qualified and experienced team is available.
• When a customer is ready to have a meeting with a software team all the time.
• When project size is small.

Advantage Disadvantage
• Frequent Delivery • Due to the shortage of formal documents, it
• Face-to-Face Communication with clients. creates confusion and crucial decisions taken
throughout various phases can be
• Efficient design and fulfils the business misinterpreted at any time by different team
requirement. members.
• Anytime changes are acceptable. • Due to the lack of proper documentation,
• It reduces total development time. once the project completes and the
developers allotted to another project,
maintenance of the finished project can
become a difficulty.
References :

www.javatpoint.com

You might also like