0% found this document useful (0 votes)
71 views12 pages

Unit 2-1

The document discusses different software development life cycle models including waterfall, prototype, evolutionary, and spiral models. It describes the key phases and advantages and disadvantages of each model.

Uploaded by

hk979324
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)
71 views12 pages

Unit 2-1

The document discusses different software development life cycle models including waterfall, prototype, evolutionary, and spiral models. It describes the key phases and advantages and disadvantages of each model.

Uploaded by

hk979324
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/ 12

Unit 2

Software Development Life Cycle Process


SDLC is a process that defines the various stages involved in the development of software
for delivering a high-quality product. SDLC stages cover the complete life cycle of a
software i.e. from inception to retirement of the product.

Adhering to the SDLC process leads to the development of the software in a systematic and
disciplined manner.

Purpose:
Purpose of SDLC is to deliver a high-quality product which is as per the customer’s
requirement.

SDLC has defined its phases as, Requirement gathering, Designing, Coding, Testing, and
Maintenance. It is important to adhere to the phases to provide the Product in a systematic
manner.

SDLC Phases
Given below are the various
phases:
 Requirement gathering and
analysis
 Design
 Implementation or coding
 Testing
 Deployment
 Maintenance
1) Requirement Gathering and Analysis
During this phase, all the relevant information is collected from the customer to develop a
product as per their expectation. Any ambiguities must be resolved in this phase only.

2) Design
In this phase, the requirement gathered in the SRS document is used as an input and
software architecture that is used for implementing system development is derived.

3) Implementation or Coding
Implementation/Coding starts once the developer gets the Design document. The Software
design is translated into source code. All the components of the software are implemented
in this phase.

4) Testing
Testing starts once the coding is complete and the modules are released for testing. In this
phase, the developed software is tested thoroughly and any defects found are assigned to
developers to get them fixed.

5) Deployment
Once the product is tested, it is deployed in the production environment or first UAT (User
Acceptance testing) is done depending on the customer expectation.

6) Maintenance
After the deployment of a product on the production environment, maintenance of the
product i.e. if any issue comes up and needs to be fixed or any enhancement is to be done
is taken care by the developers.

Software Development Life Cycle Models


A software life cycle model is a descriptive representation of the software development
cycle. SDLC models might have a different approach but the basic phases and activity
remain the same for all the models.

1) Waterfall Model
Waterfall model is the very first model that is used in SDLC. It is also known as the linear
sequential model.
In this model, the outcome of one phase is the input for the next phase. Development of the
next phase starts only when the previous phase is complete.
 First, Requirement gathering and analysis is done. Once the requirement is freeze
then only the System Design can start. Herein, the SRS document created is the
output for the Requirement phase and it acts as an input for the System Design.
 In System Design Software architecture and Design, documents which act as an
input for the next phase are created i.e. Implementation and coding.
 In the Implementation phase, coding is done and the software developed is the input
for the next phase i.e. testing.
 In the testing phase, the developed code is tested thoroughly to detect the defects in
the software. Defects are logged into the defect tracking tool and are retested once
fixed. Bug logging, Retest, Regression testing goes on until the time the software is
in go-live state.
 In the Deployment phase, the developed code is moved into production after the
sign off is given by the customer.
 Any issues in the production environment are resolved by the developers which
come under maintenance.

Advantages of the Waterfall Model:


 Waterfall model is the simple model which can be easily understood and is the one
in which all the phases are done step by step.
 Deliverables of each phase are well defined, and this leads to no complexity and
makes the project easily manageable.
Disadvantages of Waterfall model:
 Waterfall model is time-consuming & cannot be used in the short duration projects
as in this model a new phase cannot be started until the ongoing phase is
completed.
 Waterfall model cannot be used for the projects which have uncertain requirement or
wherein the requirement keeps on changing as this model expects the requirement
to be clear in the requirement gathering and analysis phase itself and any change in
the later stages would lead to cost higher as the changes would be required in all the
phases.

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.
Steps of Prototype Model

1. Requirement Gathering and Analyst


2. Quick Decision
3. Build a Prototype
4. Assessment or User Evaluation
5. Prototype Refinement
6. Engineer Product

Advantage of Prototype Model

1. Reduce the risk of incorrect user requirement


2. Good where requirement are changing/uncommitted
3. Regular visible process aids management
4. Support early product marketing
5. Reduce Maintenance cost.
6. Errors can be detected much earlier as the system is made side by side.

Disadvantage of Prototype Model

1. An unstable/badly implemented prototype often becomes the final product.


2. Require extensive customer collaboration
o Costs customer money
o Needs committed customer
o Difficult to finish if customer withdraw
o May be too customer specific, no broad market
3. Difficult to know how long the project will last.
4. Easy to fall back into the code and fix without proper requirement analysis, design,
customer evaluation, and feedback.
5. Prototyping tools are expensive.
6. Special tools & techniques are required to build a prototype.
7. It is a time-consuming process.
Evolutionary model
Evolutionary model is a combination of Iterative and Incremental model of
software development life cycle. Delivering your system in a big bang release,
delivering it in incremental process over time is the action done in this model.
Some initial requirements and architecture envisioning need to be done. It is
better for software products that have their feature sets redefined during
development because of user feedback and other factors. The Evolutionary
development model divides the development cycle into smaller, incremental
waterfall models in which users are able to get access to the product at the end
of each cycle. Feedback is provided by the users on the product for the
planning stage of the next cycle and the development team responds, often by
changing the product, plan or process. Therefore, the software product evolves
with time. All the models have the disadvantage that the duration of time from
start of the project to the delivery time of a solution is very high. Evolutionary
model solves this problem in a different approach.

Evolutionary model suggests breaking down of work into smaller chunks,


prioritizing them and then delivering those chunks to the customer one by one.
The number of chunks is huge and is the number of deliveries made to the
customer. The main advantage is that the customer’s confidence increases as
he constantly gets quantifiable goods or services from the beginning of the
project to verify and validate his requirements. The model allows for changing
requirements as well as all work in broken down into maintainable work
chunks.

Application of Evolutionary Model:


1. It is used in large projects where you can easily find modules for incremental
implementation. Evolutionary model is commonly used when the customer
wants to start using the core features instead of waiting for the full software.
2. Evolutionary model is also used in object oriented software development
because the system can be easily portioned into units in terms of objects.

Necessary conditions for implementing this model:-


 Customer needs are clear and been explained in deep to the developer
team.
 There might be small changes required in separate parts but not a major
change.
 As it requires time, so there must be some time left for the market
constraints.
 Risk is high and continuous targets to achieve and report to customer
repeatedly.
 It is used when working on a technology is new and requires time to learn.

Advantages:
 In evolutionary model, a user gets a chance to experiment partially
developed system.
 It reduces the error because the core modules get tested thoroughly.

Disadvantages:
 Sometimes it is hard to divide the problem into several versions that would
be acceptable to the customer which can be incrementally implemented and
delivered.

Spiral model
Spiral model is one of the most important Software Development Life Cycle
models, which provides support for Risk Handling. In its diagrammatic
representation, it looks like a spiral with many loops. The exact number of loops
of the spiral is unknown and can vary from project to project. Each loop of the
spiral is called a Phase of the software development process.
The Radius of the spiral at any point represents the expenses (cost) of the
project so far, and the angular dimension represents the progress made so far
in the current phase.
The below diagram shows the different phases of the Spiral Model: –

Each phase of the Spiral Model is divided into four quadrants as shown in the
above figure. The functions of these four quadrants are discussed below-
1. Objectives determination and identify alternative solutions:
Requirements are gathered from the customers and the objectives are
identified, elaborated, and analyzed at the start of every phase. Then
alternative solutions possible for the phase are proposed in this quadrant.

2. Identify and resolve Risks: During the second quadrant, all the possible
solutions are evaluated to select the best possible solution. Then the risks
associated with that solution are identified and the risks are resolved using
the best possible strategy. At the end of this quadrant, the Prototype is built
for the best possible solution.

3. Develop next version of the Product: During the third quadrant, the
identified features are developed and verified through testing. At the end of
the third quadrant, the next version of the software is available.
4. Review and plan for the next Phase: In the fourth quadrant, the
Customers evaluate the so far developed version of the software. In the end,
planning for the next phase is started.

Risk Handling in Spiral Model

A risk is any adverse situation that might affect the successful completion of a
software project. The most important feature of the spiral model is handling
these unknown risks after the project has started. Such risk resolutions are
easier done by developing a prototype. The spiral model supports coping up
with risks by providing the scope to build a prototype at every phase of the
software development.

Agile Mothodology
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.
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

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.

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.

Agile Testing Methods:


o Scrum
o Crystal
o Dynamic Software Development Method(DSDM)
o Feature Driven Development(FDD)
o Lean Software Development
o eXtreme Programming(XP)

Advantage(Pros) of Agile Method:


1. Frequent Delivery
2. Face-to-Face Communication with clients.
3. Efficient design and fulfils the business requirement.
4. Anytime changes are acceptable.
5. It reduces total development time.

Disadvantages(Cons) of Agile Model:


1. 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.
2. 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.

Comparison of different life cycle models

You might also like