Software Development
Approaches and Process
Models
Chapter 2: Software development approaches
and process models
What is software development
process?
• A structured set of activities required to
develop a software.
• Many different software processes, but
ALL involve:
Specification
Development (Design and
implementation)
Validation
Evolution
Plan-driven VS Agile development
approach VS DevOps approach
• Plan-driven approach, is a practice where ALL
development activities planned in advance and
progress is measured against that plan.
• Agile approach (continuous delivery), is a
practice where planning incrementally
achieved and easier to change the process to
reflect changing customer requirements.
• DevOps approach (continuous deployment), is
a practice that aims at merging development,
quality assurance, and operations
(deployment and integration) into a single,
continuous set of processes. This methodology
is a natural extension of Agile and continuous
delivery approaches.
Waterfall development approach
Agile development approach
DevOps development approach
In practice, no right or
wrong software
development approach
Software development process models
• The classic development process model
 Plan-driven approach.
 Separate and distinct phases of specification and
development.
• Evolutionary development process model
 Specification, development and validation are interleaved.
 Could be agile or DevOps.
• Reuse-oriented development process model
 The system is assembled from existing reusable
components, rather than developing them from scratch.
 May be plan-driven or agile.
In practice, most large systems are developed using a
process that incorporates elements from ALL of these
models.
Classic development process model
Limitations of the classic
development process model
• In practice, requirements are changed
frequently.
• Never go back to previous phase to fix
errors or problems.
• The customer can not use the
software UNTIL the entire system is
complete.
• The model implies that once the
software is completed, everything else
is maintenance cost.
When the classic development
process model is appropriate to use?
• Requirements must be well-
understood and identified.
• No changes in requirements
during the development process.
• Large scale software projects
where a software project is
developed at several sites.
Evolutionary development process models
• Based on developing an initial
implementation, exposing this to user’s
comments and refining it through many
versions until an adequate software is
developed.
• Specification, development and validation
activities are interleaved with rapid feedback
across activities
Types of evolutionary development
process model
Incremental development approach:
This approach works with the customer to
explore their requirements and deliver a
final software step by step. The
development starts with the
requirements of the software that are
well-understood.
Prototyping development approach:
This approach emphasizes on
experimenting with the customer
requirements that are poorly
understood. The development follows
proof of concept method.
Limitations of the incremental
development process model
• Lack of process visibility.
• Software is usually poorly
structured.
• Special skills (e.g. technical
skills) may be required for rapid
prototyping.
When the incremental development process model is appropriate to use?
• Small to medium size
software projects.
• NOT enough staffing is
available for the whole
software project.
• Parts of a large-scale
project (e.g. user
interfaces)
• Short-lifetime software
projects.
Limitations of the prototyping
development process model
• Project may expand beyond the original plans.
• Cost factor since it may take several iterations
for defining software requirements.
• Designing prototypes sometimes quick rather
than quality
When the prototyping development
process model is appropriate to use?
• When the customer has poor
information about the software.
• When the software project needs to
have a lot of interaction with end
users.
• Web user interfaces.
• High technology software
projects.
Rapid Application Development (RAD)
Model
• It makes heavy use of reusable
software components with an
extremely short development cycle
(60-90) days.
Limitations of the RAD development
process model
• Requires sufficient human
resources, particularly for large scale
projects.
• Projects committed in a much-
shortened time-frame.
• Problematic if system can not be
modularized.
• Not appropriate when technical
risks are high (heavy use of new
technology).
When the RAD development process
model is appropriate to use?
• If software requirements are well
understood and project time is
constrained.
Spiral development process model
• Process is represented as a spiral rather than as a sequence of
activities with backtracking.
• Each loop in the spiral model represents a phase in the
development process model.
• No fixed phases such as specification or design - loops in the spiral
are chosen depending on what is required.
• Risks are explicitly assessed and resolved throughout the process.
21
Limitations of the spiral development
process model
• It is difficult to convince
customers (particularly in contract
situations) that the model is
controllable.
• Risk assessment expertise is
required to succeed.
22
When the spiral development process
model is appropriate to use?
• Good for large and critical-
mission software projects.
• When the risk and costs
evaluation is important.
• Additional functionality can be
added at a later date.
• When requirements are unclear
and complex.
Reuse-oriented development process
model
• Software systems are integrated
from existing components or COTS
(Commercial-off-the-shelf) systems.
• Reuse is now the standard approach
for building many types of business
system.
The Rational unified development
process model (RUP)
• RUP is a generic process derived from the
work on the UML and associated process.
• Brings together aspects of the 3 generic
process models discussed previously.
• Normally described from 3 perspectives
A dynamic perspective that shows
phases over time;
A static perspective that shows process
activities;
A proactive perspective that suggests
good practice.
25
Phases in the rational unified
development process model
26
RUP good practice
• Develop software iteratively
Plan increments based on customer
priorities and deliver highest priority
increments first.
• Manage requirements
Explicitly document customer
requirements and keep track of changes
to these requirements.
• Use component-based architectures
Organize the system architecture as a
set of reusable components.
27
RUP good practice
• Visually model software
Use graphical UML models to present
static and dynamic views of the software.
• Verify software quality
Ensure that the software meets
organizational quality standards.
• Control changes to software
Manage software changes using a
change management system and
configuration management tools.
28

More Related Content

PPT
Process models
PPT
what-is-devops.ppt
PPT
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models (1).ppt
PDF
Software Process Models
PPT
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
PDF
Lect-4: Software Development Life Cycle Model - SPM
PPT
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
PDF
Chapter 2
Process models
what-is-devops.ppt
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models (1).ppt
Software Process Models
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
Lect-4: Software Development Life Cycle Model - SPM
4_25655_SE291_2020_1__2_1_Lecture 3 - Software Process Models.ppt
Chapter 2

Similar to Chapter 2 Intro to SE(SW Process Models.pptx) (20)

PPTX
Software Development Process Models in Software Engineering.pptx
PPTX
Object Oriented Software engineering.pptx
PPTX
Lecture-3 The Software Processsssss.pptx
PPT
software engineering evolution and all of its models
PPTX
software engineering SOFTWARE PROCESS MODELS.pptx
PPTX
Software Process Models
PPT
Intoduction to software engineering part 2
PPTX
Lesson 1 - System Development LifeCycles_48b8340c0dd570b721da1199655b765e.pptx
PPTX
Lec 3-4.pptx software process and sdlc models
PPTX
Fundamentals of Software Engineering
PDF
SE_Unit 2.pdf it is a process model of it student
PDF
SOFTWARE ENGINEERING
PPT
System development methodologies L2.ppt
PPT
Software Engineering (Process Models)
PPTX
Selection of methodology - System Analysis and Design
PPT
Session2.ppt
PPT
SDLC.PPT
PPT
SDLC.ppt
PPT
Session2.ppt
PPT
presentation ofSoftware Development Life Cycle (SDLC)
Software Development Process Models in Software Engineering.pptx
Object Oriented Software engineering.pptx
Lecture-3 The Software Processsssss.pptx
software engineering evolution and all of its models
software engineering SOFTWARE PROCESS MODELS.pptx
Software Process Models
Intoduction to software engineering part 2
Lesson 1 - System Development LifeCycles_48b8340c0dd570b721da1199655b765e.pptx
Lec 3-4.pptx software process and sdlc models
Fundamentals of Software Engineering
SE_Unit 2.pdf it is a process model of it student
SOFTWARE ENGINEERING
System development methodologies L2.ppt
Software Engineering (Process Models)
Selection of methodology - System Analysis and Design
Session2.ppt
SDLC.PPT
SDLC.ppt
Session2.ppt
presentation ofSoftware Development Life Cycle (SDLC)
Ad

Recently uploaded (20)

PDF
Journal of Dental Science - UDMY (2022).pdf
PDF
Chevening Scholarship Application and Interview Preparation Guide
PPTX
BSCE 2 NIGHT (CHAPTER 2) just cases.pptx
PDF
Lecture on Viruses: Structure, Classification, Replication, Effects on Cells,...
PDF
Disorder of Endocrine system (1).pdfyyhyyyy
PDF
Solved Past paper of Pediatric Health Nursing PHN BS Nursing 5th Semester
PDF
Hospital Case Study .architecture design
PDF
Myanmar Dental Journal, The Journal of the Myanmar Dental Association (2013).pdf
PDF
Health aspects of bilberry: A review on its general benefits
PDF
PUBH1000 - Module 6: Global Health Tute Slides
PDF
Civil Department's presentation Your score increases as you pick a category
PPTX
Integrated Management of Neonatal and Childhood Illnesses (IMNCI) – Unit IV |...
PDF
Horaris_Grups_25-26_Definitiu_15_07_25.pdf
PDF
fundamentals-of-heat-and-mass-transfer-6th-edition_incropera.pdf
PDF
LIFE & LIVING TRILOGY- PART (1) WHO ARE WE.pdf
PPT
REGULATION OF RESPIRATION lecture note 200L [Autosaved]-1-1.ppt
PDF
Literature_Review_methods_ BRACU_MKT426 course material
PPTX
PLASMA AND ITS CONSTITUENTS 123.pptx
PDF
LIFE & LIVING TRILOGY - PART - (2) THE PURPOSE OF LIFE.pdf
PDF
LIFE & LIVING TRILOGY - PART (3) REALITY & MYSTERY.pdf
Journal of Dental Science - UDMY (2022).pdf
Chevening Scholarship Application and Interview Preparation Guide
BSCE 2 NIGHT (CHAPTER 2) just cases.pptx
Lecture on Viruses: Structure, Classification, Replication, Effects on Cells,...
Disorder of Endocrine system (1).pdfyyhyyyy
Solved Past paper of Pediatric Health Nursing PHN BS Nursing 5th Semester
Hospital Case Study .architecture design
Myanmar Dental Journal, The Journal of the Myanmar Dental Association (2013).pdf
Health aspects of bilberry: A review on its general benefits
PUBH1000 - Module 6: Global Health Tute Slides
Civil Department's presentation Your score increases as you pick a category
Integrated Management of Neonatal and Childhood Illnesses (IMNCI) – Unit IV |...
Horaris_Grups_25-26_Definitiu_15_07_25.pdf
fundamentals-of-heat-and-mass-transfer-6th-edition_incropera.pdf
LIFE & LIVING TRILOGY- PART (1) WHO ARE WE.pdf
REGULATION OF RESPIRATION lecture note 200L [Autosaved]-1-1.ppt
Literature_Review_methods_ BRACU_MKT426 course material
PLASMA AND ITS CONSTITUENTS 123.pptx
LIFE & LIVING TRILOGY - PART - (2) THE PURPOSE OF LIFE.pdf
LIFE & LIVING TRILOGY - PART (3) REALITY & MYSTERY.pdf
Ad

Chapter 2 Intro to SE(SW Process Models.pptx)

  • 1. Software Development Approaches and Process Models Chapter 2: Software development approaches and process models
  • 2. What is software development process? • A structured set of activities required to develop a software. • Many different software processes, but ALL involve: Specification Development (Design and implementation) Validation Evolution
  • 3. Plan-driven VS Agile development approach VS DevOps approach • Plan-driven approach, is a practice where ALL development activities planned in advance and progress is measured against that plan. • Agile approach (continuous delivery), is a practice where planning incrementally achieved and easier to change the process to reflect changing customer requirements. • DevOps approach (continuous deployment), is a practice that aims at merging development, quality assurance, and operations (deployment and integration) into a single, continuous set of processes. This methodology is a natural extension of Agile and continuous delivery approaches.
  • 7. In practice, no right or wrong software development approach
  • 8. Software development process models • The classic development process model  Plan-driven approach.  Separate and distinct phases of specification and development. • Evolutionary development process model  Specification, development and validation are interleaved.  Could be agile or DevOps. • Reuse-oriented development process model  The system is assembled from existing reusable components, rather than developing them from scratch.  May be plan-driven or agile. In practice, most large systems are developed using a process that incorporates elements from ALL of these models.
  • 10. Limitations of the classic development process model • In practice, requirements are changed frequently. • Never go back to previous phase to fix errors or problems. • The customer can not use the software UNTIL the entire system is complete. • The model implies that once the software is completed, everything else is maintenance cost.
  • 11. When the classic development process model is appropriate to use? • Requirements must be well- understood and identified. • No changes in requirements during the development process. • Large scale software projects where a software project is developed at several sites.
  • 12. Evolutionary development process models • Based on developing an initial implementation, exposing this to user’s comments and refining it through many versions until an adequate software is developed. • Specification, development and validation activities are interleaved with rapid feedback across activities
  • 13. Types of evolutionary development process model Incremental development approach: This approach works with the customer to explore their requirements and deliver a final software step by step. The development starts with the requirements of the software that are well-understood. Prototyping development approach: This approach emphasizes on experimenting with the customer requirements that are poorly understood. The development follows proof of concept method.
  • 14. Limitations of the incremental development process model • Lack of process visibility. • Software is usually poorly structured. • Special skills (e.g. technical skills) may be required for rapid prototyping.
  • 15. When the incremental development process model is appropriate to use? • Small to medium size software projects. • NOT enough staffing is available for the whole software project. • Parts of a large-scale project (e.g. user interfaces) • Short-lifetime software projects.
  • 16. Limitations of the prototyping development process model • Project may expand beyond the original plans. • Cost factor since it may take several iterations for defining software requirements. • Designing prototypes sometimes quick rather than quality
  • 17. When the prototyping development process model is appropriate to use? • When the customer has poor information about the software. • When the software project needs to have a lot of interaction with end users. • Web user interfaces. • High technology software projects.
  • 18. Rapid Application Development (RAD) Model • It makes heavy use of reusable software components with an extremely short development cycle (60-90) days.
  • 19. Limitations of the RAD development process model • Requires sufficient human resources, particularly for large scale projects. • Projects committed in a much- shortened time-frame. • Problematic if system can not be modularized. • Not appropriate when technical risks are high (heavy use of new technology).
  • 20. When the RAD development process model is appropriate to use? • If software requirements are well understood and project time is constrained.
  • 21. Spiral development process model • Process is represented as a spiral rather than as a sequence of activities with backtracking. • Each loop in the spiral model represents a phase in the development process model. • No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required. • Risks are explicitly assessed and resolved throughout the process. 21
  • 22. Limitations of the spiral development process model • It is difficult to convince customers (particularly in contract situations) that the model is controllable. • Risk assessment expertise is required to succeed. 22
  • 23. When the spiral development process model is appropriate to use? • Good for large and critical- mission software projects. • When the risk and costs evaluation is important. • Additional functionality can be added at a later date. • When requirements are unclear and complex.
  • 24. Reuse-oriented development process model • Software systems are integrated from existing components or COTS (Commercial-off-the-shelf) systems. • Reuse is now the standard approach for building many types of business system.
  • 25. The Rational unified development process model (RUP) • RUP is a generic process derived from the work on the UML and associated process. • Brings together aspects of the 3 generic process models discussed previously. • Normally described from 3 perspectives A dynamic perspective that shows phases over time; A static perspective that shows process activities; A proactive perspective that suggests good practice. 25
  • 26. Phases in the rational unified development process model 26
  • 27. RUP good practice • Develop software iteratively Plan increments based on customer priorities and deliver highest priority increments first. • Manage requirements Explicitly document customer requirements and keep track of changes to these requirements. • Use component-based architectures Organize the system architecture as a set of reusable components. 27
  • 28. RUP good practice • Visually model software Use graphical UML models to present static and dynamic views of the software. • Verify software quality Ensure that the software meets organizational quality standards. • Control changes to software Manage software changes using a change management system and configuration management tools. 28

Editor's Notes

  • #24: COTS are stand-alone software systems that are configured for use in a particular environment. Reused components could be collections of objects that are developed as a package to be integrated with a component framework such as .NET or J2EE.
  • #26: Inception: defines the scope and budget of the project and develop business case. Elaboration: Plan project, specify features, assessing risks and baseline the architecture. Construction: Build the product. Transition: the final project phase which delivers the new system to its end-users.