You are on page 1of 80

CMT 311 -

FUNDAMENTALS OF
SOFTWARE
ENGINEERING
Module 2: Software Development Life
Cycle Models
Learning Objectives
• What is the Software Development Life Cycle (SDLC) (The Process)?
• Software Development Life Cycle phases
• Types of Popular SDLC Phases

Module 2: Software Development Life Cycle Models 2


What is the Software Development Life
Cycle (SDLC) (The Process)?
• The software development life cycle (SDLC) is a process that consists
of a series of well-defined phases through which software passes
from its initial conception to eventual delivery to the customer.
• The SDLC provides a structure for understanding the phases of the
software development process and a detailed description of each
stage.
• It also helps ensure that all necessary steps are taken to complete the
software development process.

Module 2: Software Development Life Cycle Models 3


• The SDLC is also known as the software development process or the
software life cycle.
• It is sometimes referred to as a waterfall model because each stage of
the SDLC flows in a linear, sequential fashion from one stage to the
next.
• The SDLC is not a rigid, inflexible process.
• It is possible to move back and forth between phases of the SDLC as
needed.
• However, it is important to remember that each phase of the SDLC
must be completed before moving on to the next phase.

Module 2: Software Development Life Cycle Models 4


Module 2: Software Development Life Cycle Models 5
Software Development Life Cycle (SDLC) Phases
• The software development life cycle typically consists of the following six
phases:
1. Planning and Analysis
• The Planning and Analysis phase of the Software Development Life Cycle (SDLC)
is important because it sets the foundation for the project.
• In this phase, the project team develops a clear understanding of the problem
that needs to be solved and defines the goals and objectives for the project.
• The team also identifies the stakeholders who will be affected by the project
and identifies the resources that will be required.
• This information is used to develop a project plan that includes a schedule and
budget.
• Once the project plan is approved, the team moves on to the next phase of
SDLC. Module 2: Software Development Life Cycle Models 6
2. Design
• The design phase in SDLC is when the system requirements are translated into a
blueprint for the proposed software solution.
• The design must take into account both functional and non-functional requirements, as
well as any applicable constraints.
• Once the design is completed, it will be reviewed and approved by the relevant
stakeholders.
• Only after the design has been finalized can the development phase begin.
• This is when the actual coding of the software solution takes place.
• Although the design phase is often considered to be separate from development, in
reality, they are closely linked.
• Designs made during the design phase can have a significant impact on the development
process, so it is crucial to get them right.
• With careful planning and attention to detail, the design phase can lay the foundation for
a successful software project Module 2: Software Development Life Cycle Models 7
3. Implementation (Coding)
• Once the software development team has finalized the design of the new system,
they can begin coding the system.
• This is often referred to as the implementation phase.
• The implementation phase is when the team writes the actual code that will make up
the new system.
• This can be a time-consuming process, as the team needs to ensure that all of the
code is accurate and bug-free.
• Once the code has been written, it needs to be tested to make sure that it works as
intended.
• Only after the code has been thoroughly tested should it be put into production.
• The implementation phase is an essential part of the software development process,
and it is crucial that it is done properly in order to create a successful new system.
Module 2: Software Development Life Cycle Models 8
4. Testing and Integration
• The software testing and integration phase is a crucial part of the software
development life cycle (SDLC).
• This is the phase where new code is integrated into the existing code base
and tested for functionality and performance.
• The goal of this phase is to ensure that the new code works as expected and
does not introduce any new bugs or performance issues.
• To achieve this, various test cases are designed and executed against the new
code.
• Once all the test cases have been passed, the code is then ready for
deployment.

Module 2: Software Development Life Cycle Models 9


5. Deployment
• The deployment phase in the software development life cycle (SDLC) is the
process of putting a new software system or application into production.
• This usually happens in stages, first with a small group of users, then with a
larger group, until finally the system is made available to everyone who
needs to use it.
• During the deployment phase, there are a number of important tasks that
need to be completed, such as testing the system to make sure it works as
expected, setting up security and user permissions, and creating
documentation and training materials.
• Once the system is up and running, it will need to be monitored and
maintained on an ongoing basis.

Module 2: Software Development Life Cycle Models 10


6. Maintenance
• The maintenance phase in the software development life cycle is important for
ensuring that the software continues to function as intended and that any
defects are corrected in a timely manner.
• This phase typically begins after the software has been deployed and can last
for years, depending on the size and complexity of the software.
• In order to effectively manage the maintenance phase, it is essential to have a
clear understanding of the features and functionality of the software, as well as
how it is being used by users.
• Additionally, it is crucial to establish effective communication channels between
developers and users so that any necessary changes can be made quickly and
efficiently.
• By taking these steps, the maintenance phase can be managed effectively,
ensuring that the software remains operational
Module 2: Software Development Life Cycleand
Models meets the needs of users.
11
Module 2: Software Development Life Cycle Models 12
• There are a number of different models or methodologies that can be
used to guide the software development process.
• The most common models are:
i. The Waterfall Model
ii. The Spiral Model
iii. The Agile Model
iv. The DevOps Model
v. The Lean Model
vi. The Iterative Model
vii. The V-Model

Module 2: Software Development Life Cycle Models 13


1. Waterfall Model
• The waterfall model is a traditional software development process that is
often used for small projects.
• In this model, the development process is divided into a series of distinct
phases, each of which must be completed before the next phase can
begin.
• The waterfall model is often seen as being very linear and
straightforward, and it is easy to understand and use.
• However, one of the main drawbacks of this model is that it does not
allow for much flexibility, and it can be challenging to make changes once
the development process has started.

Module 2: Software Development Life Cycle Models 14


WATERFALL MODEL
• First developed by Royce in early70’s
Documentation Driven
• Verification/Test at each phase
• Feedback loops

Module 2: Software Development Life Cycle Models 15


Waterfall Model diagram

Module 2: Software Development Life Cycle Models 16


ANALYSIS OF THE WATERFALL
MODEL
• Advantages
• Enforced discipline
• Documentation-driven model
• Testing by SQA
• Maintenance easier
• Disadvantages
• Requirements & Spec Analysis
• Graphical aids are used

Module 2: Software Development Life Cycle Models 17


2. Spiral Model
• The spiral model is a more flexible version of the waterfall model.
• This model divides the development process into a series of
iterations, each of which builds upon the previous one.
• The main advantage of the spiral model is that it allows for more
flexibility and can be better suited for large projects.
• However, one of the main drawbacks of this model is that it can be
more expensive and time-consuming than the waterfall model.

Module 2: Software Development Life Cycle Models 18


Spiral Model Diagram

Module 2: Software Development Life Cycle Models 19


SPIRAL MODEL
• Simplified form Waterfall model plus risk analysis

• Precede each phase by


i. Alternatives
ii. Risk analysis: performance, budget, milestones
• Follow each phase by:
i. Evaluation
ii. Planning of next phase
iii. Prototypes may be used to analyze risks
Module 2: Software Development Life Cycle Models 20
3. Agile Model
• The agile model is a prevalent software development process that is
based on the principles of agile software development.
• In this model, the development process is divided into a series of short
iterations, each of which focuses on a particular aspect of the
software.
• The main advantage of the agile model is that it allows for more
flexibility and can be better suited for rapidly changing requirements.
• However, one of the main drawbacks of this model is that it can be
more challenging to manage than the waterfall model.

Module 2: Software Development Life Cycle Models 21


Agile Model diagram

Module 2: Software Development Life Cycle Models 22


4. DevOps Model

• The DevOps model is a software development process that focuses on


the collaboration between developers and operations staff.
• In this model, the development process is split into a series of short
iterations, each followed by a testing and deployment period.
• The main advantage of the DevOps model is that it allows for more
collaboration between developers and operations staff.
• However, one of the main drawbacks of this model is that it can be
harder to manage than the waterfall model.

Module 2: Software Development Life Cycle Models 23


How does DevOps methodology work in
practice? A simple example
• Let’s put all these terms in simple words with some DevOps examples.
• Basically, in practice, all processes of the DevOps lifecycle are divided between
two DevOps teams.
• Developers are responsible for the DevOps phases of planning, coding,
building, and testing, while the Ops team takes care of the release,
deployment, operation, and monitoring stages.
• One of the leading DevOps goals is to create a thorough connection between
these two departments.
• Without this collaboration, the development process might become taxing and
overpriced.
Module 2: Software Development Life Cycle Models 24
What are DevOps principles?

• As DevOps isn’t just tech components but also a mindset that an


organization adopts in the way it manages business
processes, DevOps principles match those of Agile methodology.
• However, the main focus and principle of DevOps is automation with
the support of DevOps lifecycle tools.

Module 2: Software Development Life Cycle Models 25


1. DevOps automation
• This is the DevOps basic principle.
• It implies that all DevOps stages are automated in order to form an uninterrupted
development process with less possible amount of manual work and employee
involvement.
• DevOps and automation of its procedures via a special set of tools encompass
DevOps flow i.e.
a. DevOps planning
b. software build processes
c. code testing
d. developer operations
e. maintenance, etc.
• DevOps concepts of automation allow companies to shorten their expenses and
Module 2: Software Development Life Cycle Models 26
prevent overwork hours for employees
2. Iteration
• Agile DevOps methodology supposes the use of timeboxes as units of
time where DevOps activities are carried out.
• According to the iteration principle of DevOps, the developers repeat
the testing procedure of such units every time after writing small
blocks of code to ensure software responsiveness and security.

Module 2: Software Development Life Cycle Models 27


3. Constant improvement
• Continuous testing and analysis of feedback allow software engineers
to:
a. fix issues
b. improve functionality and usability, and
c. optimize the time of solution deployment
• This way, you can achieve the outstanding quality of IT products that
will be in demand among clients in the global market.

Module 2: Software Development Life Cycle Models 28


4. Collaboration and communication
• It’s safe to say that implementing DevOps is impossible without setting
up a thorough collaboration between development and operations
departments and coordination of their interactions.
• The DevOps approach will bring businesses successful results only if the
operations team supplies the:
a. development team with suggestions and reports on market
requirements and product exploitation issues, and
a. the developers, in their turn, make improvements based on this info.

Module 2: Software Development Life Cycle Models 29


DevOps process flow

Module 2: Software Development Life Cycle Models 30


• DevOps process contains many useful DevOps practices that were
developed through years of implementing DevOps concepts in the
software production business.
• All these developer operations are aimed to:
a. ensure automation
b. heighten productivity, and
c. provide quick ways of resolving issues and fixing bugs in the
software build processes.

Module 2: Software Development Life Cycle Models 31


a. Continuous Integration

• According to this DevOps practice, the developer makes numerous


daily modifications to the shared repository's source code.
• When even little modifications are made to a bigger codebase, they
get to be tested and reported.
• Continuous integration (CI) aims to provide quick feedback so that
any flaws can be found and fixed right away.

Module 2: Software Development Life Cycle Models 32


b. Continuous Testing

• To get quick input on the business risk connected to software release,


continuous testing is required as one of the DevOps practices.
• It is a difficult and crucial component of the software.
• Testing is a necessity for software rating.
• Automated testing tools are utilized because it is simpler to test
continually rather than testing a whole piece of software.
• The developer uses the test function to balance quality and speed.

Module 2: Software Development Life Cycle Models 33


c. Continuous Delivery
• Continuous delivery (CD) is the capability to make adjustments, such
as:
i. adding new characteristics and features
ii. managing configurations
iii. fixing bugs, and
iv. putting experiments into production
• A continual daily upgrade is our driving force behind continuous
supply.
• If there is a mistake in the production code at that point, we can easily
repair it.
• So, here we are quickly, consistently, and with the least amount of
overhead creating and releasing our application.
Module 2: Software Development Life Cycle Models 34
d. Continuous Deployment

• As soon as the code successfully completes all test cases, it is


promptly deployed to the manufacturing environment for production.
• Alternate versions of the code are always present in the right places
thanks to continuous updating.
• Continuous deployment many consider a better variant for IT DevOps
production than CD because it doesn’t require manual work from
employees.
• Every update to the code is automatically deployed with the help of
DevOps deployment tools, leading to several deployments in the
production environment every day.
Module 2: Software Development Life Cycle Models 35
e. Continuous Monitoring

• DevOps lifecycle tools include a reporting tool that enables


developers and testers to assess the functionality and performance of
their applications before it is implemented in operations.
• To reduce the number of errors and changes, continuous
monitoring provides feedback.

Module 2: Software Development Life Cycle Models 36


f. Continuous Development
• The iterative process for creating software that will be provided to users is
called "continuous development".
• Continuous integration, testing, delivery, and deployment are all
components of it.
• So we can say that continuous development is a sort of umbrella term for
other DevOps basics.
• Organizations can provide innovative features or goods more quickly, with
lower risk and improved quality, by utilizing a continuous development
strategy and its related sub-strategies, without encountering substantial
bandwidth constraints.

Module 2: Software Development Life Cycle Models 37


Breakdown of DevOps lifecycle
Breakdown of DevOps lifecycle

Module 2: Software Development Life Cycle Models 38


1. Planning
• At this DevOps process stage the project planning process takes place.
• Stakeholders along with developers decide on desired features of
future software, quality criteria for each development phase, and
CI/CD process flow value.
• It’s wise to involve other departments like the marketing crew, system
administrators, tech writers, etc. in the process of plan creation.
• Collaboration among all participant teams of DevOps planning is the
key to ensuring successful project execution.

Module 2: Software Development Life Cycle Models 39


2. Coding
• After all features, that software should have, are determined in the
planning phase, programmers can start the coding process.
• At this stage, it’s important that developers follow one of the main
DevOps principles of iteration and use suitable DevOps lifecycle tools
for CI to check their code chunks in a centralized repository.

Module 2: Software Development Life Cycle Models 40


3. Building
• As a part of the DevOps development process, in this phase
developers retrieve checked code from the repository via a special
tool with automation of this process.
• The tool automatically transfers code lines in a binary artifact, tests
the functionality, and publishes the results in the centralized
repository

Module 2: Software Development Life Cycle Models 41


4. Testing
• Software development cannot be done without testing as one of the
DevOps lifecycle phases.
• All components and parts of software have to be checked carefully in
accordance with the DevOps practice of continuous testing.
• To facilitate this process, developers use automated tools for testing.
• Stakeholders also use testing reports to find out about the
development process and get valuable insights.

Module 2: Software Development Life Cycle Models 42


5. Release
• DevOps steps include the release phase as the first one in the
responsibility of the operations team.
• Here, they take care of change management, get all needed release
approvals from stakeholders, and organize automated releases.

Module 2: Software Development Life Cycle Models 43


6. Deployment
• Continuous deployment pipeline enables collaboration between
developers and operations crew in integrating all code changes
without manual work.
• Deployment tools in DevOps processes help to include these changes
in production directly which influences the productivity and velocity
of the software delivery process.

Module 2: Software Development Life Cycle Models 44


7. Operation
• Operations stage of the DevOps agile process supposes management
of software production and DevOps production support by IT admins.
• It includes:
a. Installation
b. configuration, and
c. changes of infrastructure, database and resource management, and
security testing
• All these procedures are carried out with infrastructure-as-code tools.

Module 2: Software Development Life Cycle Models 45


8. Monitoring
• This DevOps support model component represents the DevOps
approach of continuous monitoring.
• In this process, both development and operations teams are involved
to make certain that the product of their work functions properly and
to be able to fix any issues promptly with a maximum level of
automation.

Module 2: Software Development Life Cycle Models 46


Benefits DevOps methodology and
processes
1. Shorter time to market
• The reason why DevOps methodology was created and the main DevOps
goal is to accelerate the development and deployment process, facilitate
and quicken innovation of production.
• Undoubtedly, software development and its implementation tend to drag
out if the connection between developers and the operations crew isn’t
established.
• Whilst thorough collaboration of these departments enables shortening of
the production cycle.
• Therefore, you don’t need to work through the same issues over and over
again but can efficiently solve them with insights from the development and
operations teams.
Module 2: Software Development Life Cycle Models 47
2. Efficient collaboration and
communication
• The production process built on DevOps principles and practices
supposes collaboration among all departments involved in a project.
• DevOps environment creates all conditions and prerequisites for
establishing fruitful communication that results in successful project
execution.
• At Atlasiko Inc., we deliver high-quality IT services giving extra
attention to establishing communication within executive teams and
with our clients to ensure the successful implementation of your
solutions.

Module 2: Software Development Life Cycle Models 48


3. Reliability
• The more successful projects your company carries out without delays
and issues, the more reliable it’ll be in clients’ eyes.
• DevOps SDLC (software development lifecycle) helps in avoiding
postponements and problems with software functionality.
• Continuous iteration and delivery DevOps practices allow quick testing
and automated changes to confirm that software works properly and is
ready to be used by clients.
• This way users won’t be facing solutions with flaws that increases
customer satisfaction and your rates of reliability.

Module 2: Software Development Life Cycle Models 49


4. Security
• The DevOps development model allows ensuring a decent security
level for solutions without trading off the velocity of software
development.
• Programmers set up configuration management, compliance policies
and other controls to protect data.

Module 2: Software Development Life Cycle Models 50


5. Scalability

• Such DevOps features as automation and iterations assist in operating


and managing complex infrastructure systems at scale.
• Infrastructure flows improvements are key for increasing efficiency
and reducing the risks of mistakes in complicated infrastructure and
development processes.

Module 2: Software Development Life Cycle Models 51


5. Lean Model
• The lean methodology is a software development process that
focuses on minimizing waste and maximizing efficiency.
• The main advantage of the lean methodology is that it can help to
reduce waste and improve efficiency.
• However, one of the main drawbacks of this model is that it can be
more challenging to manage than the waterfall model.

Module 2: Software Development Life Cycle Models 52


Lean Model Diagram

Module 2: Software Development Life Cycle Models 53


6. Iterative Model
• The iterative model is a software development process that is based
on the principle of iteration.
• In this model, the development process is divided into a series of
short iterations, each of which focuses on a particular aspect of the
software.
• The main advantage of the iterative model is that it allows for more
flexibility and can be better suited for rapidly changing requirements.
• However, one of the main drawbacks of this model is that it can be
more difficult to manage than the waterfall model

Module 2: Software Development Life Cycle Models 54


Iterative Model diagram

Module 2: Software Development Life Cycle Models 55


7. V-Model
• The V-model is a software development process that is based on the
principle of verification and validation.
• In this model, the development process is divided into a series of
short iterations, each followed by a testing and deployment period.
• The main advantage of the V-model is that it allows for more
collaboration between developers and operations staff.
• However, one of the main drawbacks of this model is that it can be
more difficult to manage than the waterfall model.

Module 2: Software Development Life Cycle Models 56


V-Model diagram

Module 2: Software Development Life Cycle Models 57


8. RAPID PROTOTYPING MODEL

• Rapid Prototype used for requirements and specifications analysis.


• Rapid Prototype contains a subset of the functionality of the target
product
• Structure of prototype not important, but speed of development
process is—RAPID
• Prototype can be used in requirement phase of WF model

Module 2: Software Development Life Cycle Models 58


RAPID PROTOTYPING MODEL cont.
• Advantages
• Helps get requirements right
• Good insight to estimate budget and time requirements
• Help in design phase==> less feedback loops
• Disadvantages
• Prototype adds to the cost (overall it may reduce cost)
• Temptation to turn prototype into product

Module 2: Software Development Life Cycle Models 59


RAPID PROTOTYPING MODEL cont.
• Key points
i. Do not turn it into product
ii. Prototype may replace requirement phase but never the design
phase
iii. Waterfall model-- try to get right the first time
iv. Rapid Prototype-- Allows better feedback from client at earliest
stage of the process.

Module 2: Software Development Life Cycle Models 60


RAPID PROTOTYPING MODEL
DIAGRAM

Module 2: Software Development Life Cycle Models 61


9. INCREMENTAL MODEL
• The product is constructed step by step
• The product is divided into a series of incremental builds
• Each build consist of a set of module that provide a functionality
• Product provided to client build by build
• Each new build is integrated with previous builds and delivered to
client
• Production may stop at end of any build

Module 2: Software Development Life Cycle Models 62


What is Incremental Model?
• Incremental Model is a process of software development where
requirements are broken down into multiple standalone modules of
software development cycle.
• Incremental development is done in steps from:
i. Analysis
ii. Design
iii. Implementation
iv. Testing/verification
v. Maintenance

Module 2: Software Development Life Cycle Models 63


• Each iteration passes through the requirements, design, coding and testing phases.
• And each subsequent release of the system adds function to the previous release until all
designed functionality has been implemented.

Module 2: Software Development Life Cycle Models 64


INCREMENTAL MODEL DIAGRAM

Module 2: Software Development Life Cycle Models 65


ANALYSIS OF THE INCREMENTAL
MODEL
• Waterfall: operational quality of complete product at end
• Incremental model: deliver operational quality of portion of product
in “short” time
• Reduces the effect of introducing a new system on users: less
traumatic
• Smaller capital outlay
• The process can be stopped at end of any build
• Need open architecture-- good for maintenance

Module 2: Software Development Life Cycle Models 66


ANALYSIS OF THE INCREMENTAL
MODEL
• Problems:
• If broken into too few builds then it degenerates into the build-and-fix
model
• If broken into too many builds then integration of the builds can turn
out to be too costly.
• Note: Requirements, Specs and Design are done for whole product.
• Only Implementation and Integration are incremental.
• A more risky version: incremental Specs and Design

Module 2: Software Development Life Cycle Models 67


10. SYNCHRONIZE-AND-STABILIZE
MODEL
• Microsoft’s life-cycle model
• Requirements analysis--interview potential customers
• Draw up specifications
• Divide project into 3 to 4 builds
• Each build carried out by small teams working in parallel
• At end of each day--Synchronize (integrate modules into build, test &
debug)
• At end of each build-Stabilize (freeze build)

Module 2: Software Development Life Cycle Models 68


SYNCHRONIZE-AND-STABILIZE MODEL
DIAGRAM

Module 2: Software Development Life Cycle Models 69


11. Rational Unified Process (RUP) SDLC
Model
• The Rational Unified Process (RUP) is a software development and project
management process that provides a disciplined and methodical approach
towards assigning tasks and responsibilities in a team.
• Developed by Rational Software, it is used to build complex systems and
covers the entire software development life cycle (SDLC).
• RUP divides the development process into four phases:
i. Inception, when the idea for a project is set
ii. Elaboration, when the project is further defined and resources are
evaluated
iii. Construction, when the project is developed and completed
• Transition, necessitates deploying, supporting, and evaluating the software
with a deployment package,Module
support plan, Life
2: Software Development and feedback report.
Cycle Models 70
• RUP also defines six core engineering disciplines:
i. business modeling
ii. Requirements
iii. analysis and design
iv. Implementation
v. testing, and
vi. deployment; and
• It has three supporting disciplines:
i. configuration and change management
ii. project management, and
iii. environment
• RUP provides a set of guidelines, templates, tools, and best practices for
each discipline, but it also allows you to tailor the process according to the71
Module 2: Software Development Life Cycle Models
characteristics and constraints of your project.
Challenges of RUP
• RUP is not a silver bullet that can solve all the problems of software
project management.
• It also has some challenges and limitations that you need to be aware of.
i. For instance, it requires a high level of commitment, discipline, and skill
from the project team, as well as adequate training, tools, and
resources.
ii. Additionally, it can be complex and overwhelming to apply, especially
for large, distributed, or heterogeneous projects.
iii. Moreover, it can be rigid and bureaucratic if not customized and
adapted to the project's context, size, and complexity.
iv. Finally, it can be incompatible or inconsistent with some other
frameworks or standards if not integrated and aligned with them.
Module 2: Software Development Life Cycle Models 72
12. SCRUM SDLC MODEL
• Scrum model in SDLC is an Agile approach that incorporates Scrum
principles into the Software Development Life Cycle (SDLC).
• The SDLC is a process that outlines the various stages involved in
software development, including:
i. Planning
ii. Designing
iii. Coding
iv. testing, and
v. deployment

Module 2: Software Development Life Cycle Models 73


13. EXTREME PROGRAMMING (XP)
SDLC MODEL
• Extreme Programming (XP) is an Agile software development framework that
emphasizes iterative development, continuous feedback, and customer satisfaction .
• XP is based on the frequent iteration through which the developers implement User
Stories.
• User stories are simple and informal statements of the customer about the
functionalities needed.
• A User Story is a conventional description by the user of a feature of the required system.
• It does not mention finer details such as the different scenarios that can occur.
• Based on User stories, the project team proposes Metaphors.
• Metaphors are a common vision of how the system would work.
• The development team may decide to build a Spike for some features.
• A Spike is a very simple program that is constructed to explore the suitability of a solution
being proposed. It can be considered similar to a prototype
Module 2: Software Development Life Cycle Models 74
• XP recommends taking the best practices that have worked well in the
past in program development projects to extreme levels.
• Good practices need to be practiced in extreme programming: Some
of the good practices that have been recognized in the extreme
programming model and suggested to maximize their use are given
below

Module 2: Software Development Life Cycle Models 75


1. Code Review
• Code review detects and corrects errors efficiently.
• It suggests pair programming as coding and reviewing of written code
carried out by a pair of programmers who switch their work between them
every hour.
2. Testing
• Testing code helps to remove errors and improves its reliability.
• XP suggests test-driven development (TDD) to continually write and
execute test cases.
• In the TDD approach, test cases are written even before any code is
written.
Module 2: Software Development Life Cycle Models 76
3. Incremental development
• Incremental development is very good because customer feedback is
gained and based on this development team comes up with new
increments every few days after each iteration.

4. Simplicity: Simplicity makes it easier to develop good-quality code as


well as to test and debug it.

5. Design: Good quality design is important to develop good quality


software.
• So, everybody should design daily.
Module 2: Software Development Life Cycle Models 77
6. Integration testing
• It helps to identify bugs at the interfaces of different functionalities.
• Extreme programming suggests that the developers should achieve
continuous integration by building and performing integration testing
several times a day.

Module 2: Software Development Life Cycle Models 78


14. KANBAN SDLC MODEL
• Kanban is a Japanese term that means “signboard.”
• Constrained by resources and supplies, the automotive industry in Japan always
sought to increase productivity and throughput.
• They did this by continuously looking for improving “time to market” while
giving autonomy to people closer to work for improving the process (Sugimori,
Kusunoki, Cho, Uchikawa, 1977).
• These two main focus areas were the “Just-In-Time” production concepts and
“Respect for Humans,” which have been present since the 1950s and paved the
foundation for lean manufacturing.
• These ideas emerged as the engineers found that supermarket workers stocked
the grocery produce based on the inventory needs rather than by vendors, and
used visual threshold indicators to request new shipments.
• This visual signal was the birth of Kanban, which first made it to the
manufacturing context and then into software development.
Module 2: Software Development Life Cycle Models 79
***END***

Module 2: Software Development Life Cycle Models 80

You might also like