0% found this document useful (0 votes)
76 views90 pages

Software Processes: Software Specifications:functionality Software Development: The

The document discusses software processes and the software development life cycle. It defines a software process as the set of activities that produce a software product, carried out by software engineers. The key activities are software specification, development, validation, and evolution. It also describes several general models of software development like the waterfall approach and evolutionary development. Finally, it outlines the typical stages of the software development life cycle as planning, requirements definition, design, development, testing, deployment, and maintenance.

Uploaded by

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

Software Processes: Software Specifications:functionality Software Development: The

The document discusses software processes and the software development life cycle. It defines a software process as the set of activities that produce a software product, carried out by software engineers. The key activities are software specification, development, validation, and evolution. It also describes several general models of software development like the waterfall approach and evolutionary development. Finally, it outlines the typical stages of the software development life cycle as planning, requirements definition, design, development, testing, deployment, and maintenance.

Uploaded by

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

Software Processes

The term software specifies to the set of computer programs, procedures and


associated documents (Flowcharts, manuals, etc.) that describe the program and
how they are to be used.

A software process is the set of activities and associated outcome that produce a
software product. Software engineers mostly carry out these activities. These
are four key process activities, which are common to all software processes.
These activities are:
Software specifications:Functionality Software development: The
of the software and constraints on its software to meet the requirement
operation must be defined. must be produced.

Software validation: The software must Software evolution: The software


be validated to ensure that it does what must evolve to meet changing
the customer wants. client needs.
The Software Process Model

Process models may contain activities, which are part of the software process,
software product, and the roles of people involved in software
engineering. Some examples of the types of software process models that
may be produced are:

A workflow model A dataflow or activity


A role/action model
This shows the series of model
This means the It shows how the input to
activities in the process roles of the people the process, such as a
along with their inputs, involved in the specification is converted
outputs and software process to an output such as a
dependencies. The and the activities design. They may perform
activities in this model for which they are
transformations carried
perform human actions. out by people or by
responsible. computers.
The Software Process Model
There are several general models or paradigms of software development:

The waterfall approach: This takes the above activities and produces them as
separate process phases such as requirements specification, software design,
implementation, testing, and so on. After each stage is defined, it is "signed
off" and development goes onto the following stage.

Evolutionary development: This method interleaves the activities of


specification, development, and validation. An initial system is rapidly
developed from a very abstract specification.

Formal transformation: This method is based on producing a formal


mathematical system specification and transforming this specification, using
mathematical methods to a program. These transformations are 'correctness
preserving.' This means that you can be sure that the developed programs
meet its specification.
The Software Process Model
There are several general models or paradigms of software development:

System assembly from reusable components: This method assumes the parts


of the system already exist. The system development process target on
integrating these parts rather than developing them from scratch.
Software Crisis
Size: Software is becoming more expensive and more complex with the
growing complexity and expectation out of software. For example, the code in
the consumer product is doubling every couple of years.

Quality: Many software products have poor quality, i.e., the software products
defects after putting into use due to ineffective testing technique. For example,
Software testing typically finds 25 errors per 1000 lines of code.

Cost: Software development is costly i.e. in terms of time taken to develop and


the money involved. For example, Development of the FAA's Advanced
Automation System cost over $700 per lines of code.

Delayed Delivery: Serious schedule overruns are common. Very often the


software takes longer than the estimated time to develop, which in turn leads to
cost shooting up. For example, one in four large-scale development projects is
never completed.
Program vs. Software
Software is more than programs. Any program is a subset of software, and it
becomes software only if documentation & operating procedures manuals are
prepared.
There are three components of the software as shown in fig:
Program vs. Software
Program: Program is a combination of source code & object code.

Documentation: Documentation consists of different types of manuals.


Examples of documentation manuals are: Data Flow Diagram, Flow Charts, ER
diagrams, etc.

Operating Procedures: Operating Procedures consist of instructions to set


up and use the software system and instructions on how react to the system
failure. Example of operating system procedures manuals is: installation guide,
Beginner's guide, reference guide, system administration guide, etc.
Program vs. Software
Program vs. Software
Software Development Life Cycle
(SDLC)
A software life cycle model (also termed process model) is a pictorial and
diagrammatic representation of the software life cycle.

A life cycle model represents all the methods required to make a software
product transit through its life cycle stages. It also captures the structure in
which these methods are to be undertaken.

In other words, a life cycle model maps the various activities performed on a
software product from its inception to retirement.

Different life cycle models may plan the necessary development activities to
phases in different ways.

During any life cycle stage, more than one activity may also be carried out.
Software Development Life Cycle
(SDLC)
Need of SDLC
The development team must determine a suitable life cycle model for a
particular plan and then observe to it.

Without using an exact life cycle model, the development of a software


product would not be in a systematic and disciplined manner.

When a team is developing a software product, there must be a clear


understanding among team representative about when and what to do.
Otherwise, it would point to chaos and project failure.
Software Development Life Cycle
(SDLC)
Need of SDLC
This problem can be defined by using an example.
Suppose a software development issue is divided into various parts and the
parts are assigned to the team members. From then on, suppose the team
representative is allowed the freedom to develop the roles assigned to them in
whatever way they like.

It is possible that one representative might start writing the code for his part,
another might choose to prepare the test documents first, and some other
engineer might begin with the design phase of the roles assigned to him.

This would be one of the perfect methods for project failure.


Software Development Life Cycle
(SDLC)
Need of SDLC
A software life cycle model describes entry and exit criteria for each phase.

A phase can begin only if its stage-entry criteria have been fulfilled.

So without a software life cycle model, the entry and exit criteria for a stage
cannot be recognized.

Without software life cycle models, it becomes tough for software project
managers to monitor the progress of the project.
Software Development Life Cycle
(SDLC)
SDLC Cycle

SDLC Cycle represents


the process of
developing software.
SDLC framework
includes the following
steps:
Software Development Life Cycle
(SDLC)
SDLC Cycle
Stage1: Planning and requirement analysis
Requirement Analysis is the most important and necessary stage in
SDLC.The senior members of the team perform it with inputs from all the
stakeholders and domain experts in the industry.

Planning for the quality assurance requirements and identifications of the


risks associated with the projects is also done at this stage.

Business analyst and Project organizer set up a meeting with the client to
gather all the data like what the customer wants to build, who will be the end
user, what is the objective of the product.

Before creating a product, a core understanding or knowledge of the product


is very necessary.
Software Development Life Cycle
(SDLC)
SDLC Cycle
Stage1: Planning and requirement analysis
For Example, A client wants to have an application which concerns money
transactions. In this method, the requirement has to be precise like what kind of
operations will be done, how it will be done, in which currency it will be done,
etc.

Once the required function is done, an analysis is complete with auditing the
feasibility of the growth of a product. In case of any ambiguity, a signal is set
up for further discussion.

Once the requirement is understood, the SRS (Software Requirement


Specification) document is created. The developers should thoroughly follow
this document and also should be reviewed by the customer for future
reference.
Software Development Life Cycle
(SDLC)
SDLC Cycle
Stage2: Defining Requirements

Once the requirement analysis is done, the next stage is to certainly represent
and document the software requirements and get them accepted from the
project stakeholders.

This is accomplished through "SRS"- Software Requirement Specification


document which contains all the product requirements to be constructed and
developed during the project life cycle.
Software Development Life Cycle
(SDLC)
SDLC Cycle
Stage3: Designing the Software

The next phase is about to bring down all the knowledge of requirements,
analysis, and design of the software project. This phase is the product of the last
two, like inputs from the customer and requirement gathering.
Software Development Life Cycle
(SDLC)
SDLC Cycle
Stage4: Developing the project

In this phase of SDLC, the actual development begins, and the programming
is built. The implementation of design begins concerning writing code.

Developers have to follow the coding guidelines described by their


management and programming tools like compilers, interpreters, debuggers,
etc. are used to develop and implement the code.
Software Development Life Cycle
(SDLC)
SDLC Cycle
Stage5: Testing

After the code is generated, it is tested against the requirements to make sure
that the products are solving the needs addressed and gathered during the
requirements stage.

During this stage, unit testing, integration testing, system testing, acceptance
testing are done.
Software Development Life Cycle
(SDLC)
SDLC Cycle
Stage6: Deployment

Once the software is certified, and no bugs or errors are stated, then it is
deployed.

Then based on the assessment, the software may be released as it is or with


suggested enhancement in the object segment.

After the software is deployed, then its maintenance begins.


Software Development Life Cycle
(SDLC)
SDLC Cycle
Stage7: Maintenance

Once when the client starts using the developed systems, then the real issues
come up and requirements to be solved from time to time.

This procedure where the care is taken for the developed product is known as
maintenance.
Software Development Life Cycle
(SDLC)
SDLC Models

There are different software development life cycle models specify and
design, which are followed during the software development phase.

These models are also called "Software Development Process Models."


Each process model follows a series of phase unique to its type to ensure
success in the step of software development.
Software Development Life Cycle
(SDLC)
SDLC Models
Here, are some important
SDLC Models
Software Development Life Cycle
(SDLC)
SDLC Models 1.Waterfall model
Winston Royce introduced the Waterfall Model in 1970.
This model has five phases:
 Requirements analysis and specification,
 Design,
 Implementation and Unit testing
 Integration testing and system testing
 Operation and 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.
Software Development Life Cycle
(SDLC)
SDLC Models 1.Waterfall model
Software Development Life Cycle
(SDLC)
SDLC Models 1.Waterfall model
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.
Software Development Life Cycle
(SDLC)
SDLC Models 1.Waterfall model
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).
Software Development Life Cycle
(SDLC)
SDLC Models 1.Waterfall model
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.

During Unit testing, the code is thoroughly examined and modified.

Small modules are tested in isolation initially.

After that these modules are tested by writing some overhead code to check
the interaction between these modules and the flow of intermediate output.
Software Development Life Cycle
(SDLC)
SDLC Models 1.Waterfall model
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.
Software Development Life Cycle
(SDLC)
SDLC Models 1.Waterfall model
Operation and maintenance phase

Maintenance is the task performed according to every user once the software
has been delivered to the customer, installed, and operational.
Software Development Life Cycle
(SDLC)
SDLC Models 1.Waterfall model
 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.


Software Development Life Cycle
(SDLC)
SDLC Models 1.Waterfall model

 Advantages of Waterfall model

This model is simple to implement also the number of resources that are
required for it is minimal.
The requirements are simple and explicitly declared; they remain unchanged
during the entire project development.
The start and end points for each phase is fixed, which makes it easy to cover
progress.
The release date for the complete product, as well as its final cost, can be
determined before development.
It gives easy to control and clarity for the customer due to a strict reporting
system.
Software Development Life Cycle
(SDLC)
SDLC Models 1.Waterfall model
 Disadvantages of Waterfall model
In this model, the risk factor is higher, so this model is not suitable for more
significant and complex projects.

This model cannot accept the changes in requirements during development.

It becomes tough to go back to the phase. For example, if the application has
now shifted to the coding phase, and there is a change in requirement, It
becomes tough to go back and change it.

Since the testing done at a later stage, it does not allow identifying the
challenges and risks in the earlier phase, so the risk reduction strategy is
difficult to prepare.
Software Development Life Cycle
(SDLC)
SDLC Models 2. RAD Model

RAD(Rapid Application Development Model) is a linear sequential software


development process model that emphasizes a concise development cycle using
an element based construction approach.

If the 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 a concise time period.

RAD (Rapid Application Development) is a concept that products can be


developed faster and of higher quality through:

 Gathering requirements using workshops or focus groups.


Software Development Life Cycle
(SDLC)
SDLC Models 2. RAD Model

 Prototyping and early, reiterative user testing of designs.

 The re-use of software components.

 A rigidly paced schedule that refers design improvements to the next


product version.

 Less formality in reviews and other team communication


Software Development Life Cycle
(SDLC)
SDLC Models 2. RAD Model
Software Development Life Cycle
(SDLC)
SDLC Models 2. RAD Model
The various phases of RAD are as follows:
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.

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.
Software Development Life Cycle
(SDLC)
SDLC Models 2. RAD Model
The various phases of RAD are as follows:
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.
Application Generation
Automated tools are used to facilitate construction of the software; even they
use the 4th GL techniques.
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.
Software Development Life Cycle
(SDLC)
SDLC Models 2. RAD Model
 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.
Software Development Life Cycle
(SDLC)
SDLC Models 2. RAD Model
 Advantage of RAD Model

This model is flexible for change.

In this model, changes are adoptable.

Each phase in RAD brings highest priority functionality to the customer.

It reduced development time.

It increases the reusability of features.


Software Development Life Cycle
(SDLC)
SDLC Models 2. RAD Model
 Disadvantage of RAD Model

It required highly skilled designers.

All application is not compatible with RAD.

For smaller projects, we cannot use the RAD model.

On the high technical risk, it's not suitable.

Required user involvement.


Software Development Life Cycle
(SDLC)
SDLC Models 3.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.
Software Development Life Cycle
(SDLC)
SDLC Models 3.Spiral Model
Software Development Life Cycle
(SDLC)
SDLC Models 3.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.
Software Development Life Cycle
(SDLC)
SDLC Models 3.Spiral Model
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 development phase depends on the remaining risks.

For example, if performance or user-interface risks are treated more essential


than the program development risks, the next phase may be an evolutionary
development that includes developing a more detailed prototype for solving the
risks.
Software Development Life Cycle
(SDLC)
SDLC Models 3.Spiral Model
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.


Software Development Life Cycle
(SDLC)
SDLC Models 3.Spiral Model
 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.


Software Development Life Cycle
(SDLC)
SDLC Models 3.Spiral Model
 Advantages

High amount of risk analysis.

Useful for large and mission-critical projects.

 Disadvantages

Can be a costly model to use.

Risk analysis needed highly particular expertise

Doesn't work well for smaller projects.


Software Development Life Cycle
(SDLC)
SDLC Models 4. V-Model
V-Model also referred to as the Verification and Validation Model.

In this, each phase of SDLC must complete before the next phase starts.

It follows a sequential design process same as the waterfall model.

Testing of the device is planned in parallel with a corresponding stage of


development.
Software Development Life Cycle
(SDLC)
SDLC Models 4. V-Model
Software Development Life Cycle
(SDLC)
SDLC Models 4. V-Model

Verification: It involves a static analysis method (review) done without


executing code. It is the process of evaluation of the product development
process to find whether specified requirements meet.

Validation: It involves dynamic analysis method (functional, non-functional),


testing is done by executing code. Validation is the process to classify the
software after the completion of the development process to determine whether
the software meets the customer expectations and requirements.
Software Development Life Cycle
(SDLC)
SDLC Models 4. V-Model
There are the various phases of Verification Phase of V-model:
Business requirement Architecture Design: The baseline
System Design: In
analysis: This is the first in selecting the architecture is that it
this stage system
step where product should understand all which typically
engineers analyze
requirements understood consists of the list of modules, brief
and interpret the
from the customer's side. functionality of each module, their
business of the
This phase contains interface relationships, dependencies,
proposed system
detailed communication database tables, architecture
by studying the
to understand customer's diagrams, technology detail, etc. The
user requirements
expectations and exact integration testing model is carried
document.
requirements. out in a particular phase.

Module Design: In the module design Coding Phase: After designing, the coding phase
phase, the system breaks down into is started. Based on the requirements, a suitable
small modules. The detailed design of programming language is decided. code goes
the modules is specified, which is through many code reviews to check the
known as Low-Level Design performance.
Software Development Life Cycle
(SDLC)
SDLC Models 4. V-Model
There are the various phases of ValidationPhase of V-model:
  Unit Testing :In the V-
Integration Testing System Testing: System
Model, Unit Test Plans
Integration Test Plans Tests Plans are developed
(UTPs) are developed
are developed during the during System Design
during the module design
Architectural Design Phase. Unlike Unit and
phase. These UTPs are
Phase. These tests verify Integration Test Plans,
executed to eliminate errors
that groups created and System Tests Plans are
at code level or unit level. A
tested independently can composed by the client’s
unit is the smallest entity
coexist and business team. System Test
which can independently
communicate among ensures that expectations
exist, like a program
themselves. from an application are met.
module. 
Acceptance Testing: Acceptance testing is related to the business requirement analysis part. It
includes testing the software product in user atmosphere. Acceptance tests reveal the
compatibility problems with the different systems, which is available within the user
atmosphere. It conjointly discovers the non-functional problems like load and performance
defects within the real user atmosphere.
Software Development Life Cycle
(SDLC)
SDLC Models 4. V-Model
 When to use V-Model?

When the requirement is well defined and not ambiguous.

The V-shaped model should be used for small to medium-sized projects


where requirements are clearly defined and fixed.

The V-shaped model should be chosen when sample technical resources are
available with essential technical expertise.
Software Development Life Cycle
(SDLC)
SDLC Models 4. V-Model
 Advantage (Pros) of V-Model

Easy to Understand.

Testing Methods like planning, test designing happens well before coding.

This saves a lot of time. Hence a higher chance of success over the waterfall
model.

Avoids the downward flow of the defects.

Works well for small plans where requirements are easily understood.
Software Development Life Cycle
(SDLC)
SDLC Models 4. V-Model
 Disadvantage (Cons) of V-Model

Very rigid and least flexible.

Not a good for a complex project.

Software is developed during the implementation stage, so no early


prototypes of the software are produced.

If any changes happen in the midway, then the test documents along with the
required documents, has to be updated.
Software Development Life Cycle
(SDLC)
SDLC Models 5.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.


Software Development Life Cycle
(SDLC)
SDLC Models 5.Incremental Model
Software Development Life Cycle
(SDLC)
SDLC Models 5.Incremental Model
The various phases of incremental model are as follows:
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.

 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.
Software Development Life Cycle
(SDLC)
SDLC Models 5.Incremental Model
The various phases of incremental model are as follows:
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.

 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
Software Development Life Cycle
(SDLC)
SDLC Models 5.Incremental Model
 When to use 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.


Software Development Life Cycle
(SDLC)
SDLC Models 5.Incremental Model
 Advantage of Incremental Model

Errors are easy to be recognized.

Easier to test and debug

More flexible.

Simple to manage risk because it handled during its iteration.

The Client gets important functionality early.


Software Development Life Cycle
(SDLC)
SDLC Models 5.Incremental Model
 Disadvantage of Incremental Model

Need for good planning

Total Cost is high.

Well defined module interfaces are needed.


Software Development Life Cycle
(SDLC)
SDLC Models 6.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.
Software Development Life Cycle
(SDLC)
SDLC Models 6.Agile Model

Each iteration is considered as a short time "frame" in the Agile process


model, which typically lasts from one to four weeks.

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.
Software Development Life Cycle
(SDLC)
SDLC Models 6.Agile Model
Software Development Life Cycle
(SDLC)
SDLC Models 6.Agile Model
Following are the phases in the Agile model are as follows:
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.
Software Development Life Cycle
(SDLC)
SDLC Models 6.Agile Model
Following are the phases in the Agile model are as follows:
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. 6.Feedback:
4.Testing:  After releasing the
In this phase, the Quality Assurance team examines the product, the last step
product's performance and looks for the bug. is feedback. In this,
the team receives
5.Deployment: feedback about the
In this phase, the team product and works
issues a product for the through the
user's work environment feedback.
Software Development Life Cycle
(SDLC)
SDLC Models 6.Agile Model
 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.


Software Development Life Cycle
(SDLC)
SDLC Models 6.Agile Model
 Advantage(Pros) of Agile Method:

Frequent Delivery.

Face-to-Face Communication with clients.

Efficient design and fulfils the business requirement.

Anytime changes are acceptable.

It reduces total development time.


Software Development Life Cycle
(SDLC)
SDLC Models 6.Agile Model
Disadvantages(Cons) of Agile Model:

Due to the shortage of formal documents, it creates confusion and crucial


decisions taken throughout various phases can be misinterpreted at any time by
different team members.

Due to the lack of proper documentation, once the project completes and the
developers allotted to another project, maintenance of the finished project can
become a difficulty.
Software Development Life Cycle
(SDLC)
SDLC Models 7.Iterative Model
In this Model, you can start with some of the software specifications and
develop the first version of the software.

After the first version if there is a need to change the software, then a new
version of the software is created with a new iteration.

Every release of the Iterative Model finishes in an exact and fixed period that
is called iteration.

The Iterative Model allows the accessing earlier phases, in which the
variations made respectively.

The final output of the project renewed at the end of the Software
Development Life Cycle (SDLC) process.
Software Development Life Cycle
(SDLC)
SDLC Models 7.Iterative Model
Software Development Life Cycle
(SDLC)
SDLC Models 7.Iterative Model
The various phases of Iterative model are as follows:
Requirement gathering & analysis
In this phase, requirements are gathered from customers and check by an
analyst whether requirements will fulfil or not. Analyst checks that need will
achieve within budget or not. After all of this, the software team skips to the
next phase.
Design:
In the design phase, team design the software by the different diagrams like
Data Flow diagram, activity diagram, class diagram, state transition diagram,
etc.
Software Development Life Cycle
(SDLC)
SDLC Models 7.Iterative Model
The various phases of Iterative model are as follows:
 Implementation:
 In the implementation, requirements are written in the coding language and
transformed into computer programmes which are called Software.

Testing:

After completing the coding phase, software testing starts using different test
methods. There are many test methods, but the most common are white box,
black box, and grey box test methods.
Software Development Life Cycle
(SDLC)
SDLC Models 7.Iterative Model
The various phases of Iterative model are as follows:
Deployment:
After completing all the phases, software is deployed to its work environment.

Review:
In this phase, after the product deployment, review phase is performed to check
the behaviour and validity of the developed product. And if there are any error
found then the process starts again from the requirement gathering.

Maintenance:
In the maintenance phase, after deployment of the software in the working
environment there may be some bugs, some errors or new updates are required.
Maintenance involves debugging and new addition options.
Software Development Life Cycle
(SDLC)
SDLC Models 7.Iterative Model
When to use the Iterative Model?
When requirements are defined clearly and easy to understand.

When the software application is large.

When there is a requirement of changes in future.


Software Development Life Cycle
(SDLC)
SDLC Models 7.Iterative Model
Advantage(Pros) of Iterative Model:
Testing and debugging during smaller iteration is easy.

A Parallel development can plan.

It is easily acceptable to ever-changing needs of the project.

Risks are identified and resolved during iteration.

Limited time spent on documentation and extra time on designing.


Software Development Life Cycle
(SDLC)
SDLC Models 7.Iterative Model
Disadvantage(Cons) of Iterative Model:
It is not suitable for smaller projects.

More Resources may be required.

Design can be changed again and again because of imperfect requirements.

Requirement changes can cause over budget.

Project completion date not confirmed because of changing requirements.


Software Development Life Cycle
(SDLC)
SDLC Models 8. Big Bang Model
In this model, developers do not follow any specific process.

Development begins with the necessary funds and efforts in the form of
inputs. And the result may or may not be as per the customer's requirement,
because in this model, even the customer requirements are not defined.

This model is ideal for small projects like academic projects or practical
projects. One or two developers can work together on this model.
Software Development Life Cycle
(SDLC)
SDLC Models 8. Big Bang Model
Software Development Life Cycle
(SDLC)
SDLC Models 8. Big Bang Model
 When to use Big Bang Model?
As we discussed above, this model is required when this project is small like
an academic project or a practical project.

This method is also used when the size of the developer team is small and
when requirements are not defined, and the release date is not confirmed or
given by the customer.
Software Development Life Cycle
(SDLC)
SDLC Models 8. Big Bang Model
 Advantage(Pros) of Big Bang Model:

There is no planning required.

Simple Model.

Few resources required.

Easy to manage.

Flexible for developers.


Software Development Life Cycle
(SDLC)
SDLC Models 8. Big Bang Model
Disadvantage(Cons) of Big Bang Model:

There are high risk and uncertainty.

Not acceptable for a large project.

If requirements are not clear that can cause very expensive.
Software Development Life Cycle
(SDLC)
SDLC Models 9. Prototype Model
The prototype model requires that before carrying out the development of
actual software, a working prototype of the system should be built.

A prototype is a toy implementation of the system.

A prototype usually turns out to be a very crude version of the actual system,
possible exhibiting limited functional capabilities, low reliability, and
inefficient performance as compared to actual software.

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 requirement, the prototyping model may be employed.
Software Development Life Cycle
(SDLC)
SDLC Models 9. Prototype Model
Software Development Life Cycle
(SDLC)
SDLC Models 9. Prototype Model
Steps of Prototype Model

Requirement Gathering and Analyst

Quick Decision

Build a Prototype

Assessment or User Evaluation

Prototype Refinement

Engineer Product
Software Development Life Cycle
(SDLC)
SDLC Models 9. Prototype Model
Advantage of Prototype Model

Reduce the risk of incorrect user requirement.

Good where requirement are changing/uncommitted.

Regular visible process aids management.

Support early product marketing.

Reduce Maintenance cost.

Errors can be detected much earlier as the system is made side by side.
Software Development Life Cycle
(SDLC)
SDLC Models 9. Prototype Model
Disadvantage of Prototype Model
An unstable/badly implemented prototype often becomes the final product.
Require extensive customer collaboration
• Costs customer money.
• Needs committed customer.
• Difficult to finish if customer withdraw.
• May be too customer specific, no broad market.
Difficult to know how long the project will last.
Easy to fall back into the code and fix without proper requirement analysis,
design, customer evaluation, and feedback.
Prototyping tools are expensive.
Special tools & techniques are required to build a prototype.
It is a time-consuming process.

You might also like