SlideShare a Scribd company logo
Software Development Processes
Traditional/Waterfall
 Prototyping
 Rapid Application Development (RAD)
 Evolutionary


◦
◦
◦

Incremental
Spiral
Component Assembly

Agile Methods (e.g. XP)
 Formal Methods
 Fourth Generation Techniques

Project
Definition
Requirements
Analysis
Design

Program
Implementation
Component
Testing
Integration
Testing
System
Testing
System
Delivery
Maintenance









Most widely used, though no longer state-of-the-art
Each step results in documentation
May be suitable for well-understood developments using
familiar technology
Not suited to new, different systems because of
specification uncertainty
Difficulty in accommodating change after the process has
started
Can accommodate iteration but indirectly
Working version not available till late in process
Often get blocking states
Specifying requirements is often very difficult
 Users don’t know exactly what they want until
they see it
 Prototyping involves building a mock-up of
the system and using to obtain for user
feedback
 Closely related to what are now called “Agile
Methods”

Listen to
Customer

Build/Revise
Mock-up

Customer
test-drives
mock-up
Ideally mock-up serves as mechanism for
identifying requirements
 Users like the method, get a feeling for the actual
system
 Less ideally may be the basis for completed
product


◦
◦
◦

prototypes often ignore quality/performance/maintenance
issues
may create pressure from users on deliver earlier
may use a less-than-ideal platform to deliver e.g Visual
Basic - excellent for prototyping, may not be as effective
in actual operation
Similar to waterfall but uses a very short
development cycle (60 to 90 days to completion)
 Uses component-based construction and
emphasises reuse and code generation
 Use multiple teams on scaleable projects
 Requires heavy resources
 Requires developers and customers who are
heavily committed
 Performance can be a problem
 Difficult to use with new technology

Team 1

Team 2

Team 3

Business
Business

modelling

Business

modelling
Data
modelling

modelling
Data
modelling

Data
modelling

Process
modelling

Process
modelling

Process
modelling

Application
generation

Applicatio
n

Application

Testing
and
turnover

generation

generation

Testing and
turnover

Testing
and
turnover







Applies an iterative philosophy to the waterfall model
Divide functionality of system into increments and use a linear
sequence of development on each increment
First increment delivered is usually the core product, i.e only basic
functionality
Reviews of each increment impact on design of later increments
Manages risk well
Extreme Programming (XP), and other Agile Methods, are
incremental, but they do not implement the waterfall model steps in
the standard order
1st Increment
analysis

design

coding

testing

delivery

2nd Increment
analysis

design

coding

Project
Definition

testing

delivery

3rd Increment
analysis

design

coding

testing

delivery

4th Increment
analysis

design

coding

testing

delivery


Development cycles through multiple (3-6) task
regions (6 stage version)
◦
◦
◦
◦
◦
◦



Incremental releases
◦
◦



customer communication
planning
risk analysis
engineering
construction and release
customer evaluation

early releases may be paper or prototypes
later releases become more complicated

Models software until it is no longer used
software lecture
Not a silver bullet, but considered to be one of the
best approaches
 Is a realistic approach to the problems of large
scale software development
 Can use prototyping during any phase in the
evolution of product
 Requires excellent management and risk
assessment skills

Incorporates features of the spiral model
 Usually based on object technologies, but not
necessarily e.g. Visual Basic (older versions)
 Compose applications from pre-packaged
software components
 Can greatly boost productivity and reuse
 Relies heavily on quality and robustness of the
software components
 Fits into the Engineering/Construction task region
of the spiral model

software lecture





In the last few years, a group of influential writers and
consultants have got behind a group of software
development processes known collectively as “Agile
Methods”
Agile Methods reject the notion that we should design for
future change – don’t “borrow trouble”
There is a “Manifesto for Agile Software Development”:
“We are uncovering better ways of developing software by doing it and
helping others do it. Through this work we have come to value:
 Individuals and interactions over processes and tools
 Working software over comprehensive documentation
 Customer collaboration over contract negotiation
 Responding to change over following a plan”



Seductive, isn’t it?

◦ Beware: it is not yet widely accepted in industry, and its own
proponents admit that it is not always a good choice


The best-known agile development process eXtreme
Programming (XP), introduced by Kent Beck in
1999. It’s main principles are:
◦ Rapid feedback

 Very frequent builds – many per day
 Tests written first

◦ Assume simplicity

 Don’t borrow trouble – but “simplicity” is not easy. It can often
take skill, effort and experience to recognize the simplest
solution (as we will see with Design Patterns later in the
semester)

◦ Incremental change
◦ Embracing change
◦ Quality work


The XP methodology has many practices. Beck emphasizes that
you can’t pick and choose: if you’re not doing them all, you’re not
doing XP
◦
◦
◦
◦
◦
◦
◦
◦
◦
◦
◦
◦

The Planning Game
Small releases
Metaphor
Simple Design
Testing – tests are written first, by both programmers and customer
Refactoring
Pair programming
Collective ownership
Continuous integration
40-hour week
On-site customer
Coding standards


XP is very appealing to many programmers – often
because they think can get away from heavy
documentation

◦ in fact the test-first practice creates a lot of documentation, though in
code form



Beck himself indicates that there are situations where XP
is not appropriate. These include:
◦ When it is not supported by the company culture
 e.g. belief in big specifications, or overtime seen as a proxy for
commitment to company
◦ More than 10 or 20 programmers (this is a big one!)
◦ Project too big for regular complete integration
◦ Where it inherently takes a long time to get feedback
◦ Where you can’t realistically test
 e.g. already in production using a $1,000,000 machine that is
already at full capacity
◦ When the physical environment is wrong
Use of mathematical techniques to specify the
requirements of the system e.g the B method, Z,
VDM, Object-Z
 Mainly used in life or mission-critical applications, e.g
heart pacemakers, NASA
 Can get very high quality software
 Problems


◦
◦
◦

Time-consuming and expensive
Few developers have necessary skills, so extensive training
required
Difficult to use as a tool to communicate with users
The use of CASE and 4GL tools which let you
specify the software at a high-level
 Example: Hamilton-1 uses a formal specification
language to generate complete system from
requirements analysis ($100,000 per license)
 Use of 4GT has grown considerably in the last
decade
 Some indications of productivity improvements for
small and intermediate applications

Large projects require as much or more analysis,
design and testing to achieve the time gains from
the elimination of coding
 Often problems with efficiency of automatically
generated code


More Related Content

What's hot (20)

PPTX
Agile software development and extreme Programming
Fatemeh Karimi
 
PPT
Introduction To Extreme Programming
Joe Drumgoole
 
PPTX
Agile Practices - eXtreme Programming
Aniruddha Chakrabarti
 
PPTX
Prototype Model
khushi kalaria
 
PPTX
Software prototyping
Birju Tank
 
PPTX
Extreme Programming (XP) for Dummies
Jon McNestrie
 
PPT
Prototype model
shuisharma
 
PPT
Extreme & pair programming Slides ppt
Mr SMAK
 
PDF
XP In 10 slides
Robert Burrell Donkin
 
PPTX
Evolutionary models
Pihu Goel
 
PPTX
Software prototyping
Herry Prihandoko
 
PDF
How BDD enables True CI/CD
Roger Turnau
 
PPTX
ADUF - Adaptable Design Up Front
Hayim Makabee
 
PPT
INTRODUCTION TO SOFTWARE ENGINEERING
Preeti Mishra
 
PPTX
Prototype model
sadhana8
 
PPTX
Xp exterme-programming-model
Ali MasudianPour
 
PPT
extreme Programming
Bilal Shah
 
DOCX
Incremental model
Sajid Ali Laghari
 
PPTX
Extreme programming (xp) | David Tzemach
David Tzemach
 
KEY
Effective Prototyping Process for Software Creation
Jonathan Arnowitz
 
Agile software development and extreme Programming
Fatemeh Karimi
 
Introduction To Extreme Programming
Joe Drumgoole
 
Agile Practices - eXtreme Programming
Aniruddha Chakrabarti
 
Prototype Model
khushi kalaria
 
Software prototyping
Birju Tank
 
Extreme Programming (XP) for Dummies
Jon McNestrie
 
Prototype model
shuisharma
 
Extreme & pair programming Slides ppt
Mr SMAK
 
XP In 10 slides
Robert Burrell Donkin
 
Evolutionary models
Pihu Goel
 
Software prototyping
Herry Prihandoko
 
How BDD enables True CI/CD
Roger Turnau
 
ADUF - Adaptable Design Up Front
Hayim Makabee
 
INTRODUCTION TO SOFTWARE ENGINEERING
Preeti Mishra
 
Prototype model
sadhana8
 
Xp exterme-programming-model
Ali MasudianPour
 
extreme Programming
Bilal Shah
 
Incremental model
Sajid Ali Laghari
 
Extreme programming (xp) | David Tzemach
David Tzemach
 
Effective Prototyping Process for Software Creation
Jonathan Arnowitz
 

Similar to software lecture (20)

PPT
Ch17
phanleson
 
PPTX
reaserch ppt.pptx
BinyamBekele3
 
PPTX
Software Process Models
Hassan A-j
 
PPTX
SELECTION OF AN APPROPRIATE PROJECT APPROACH.pptx
AnujYadav495147
 
PPT
Software development life cycle
Nishant Srivastava
 
PPT
Sdlc cource in_mumbai
vibrantuser
 
PPTX
Extreme programming (xp)
Mohamed Abdelrahman
 
PPTX
Software development process basic
Anurag Tomar
 
PPT
01lifecycles(system development life cycle).ppt
krishnakrishkrish100
 
PPT
01lifecycles
Abdihakim Dalmar
 
PPT
Software Development Life Cycle (SDLC)
Compare Infobase Limited
 
PPTX
Software development process models
Muhammed Afsal Villan
 
PPT
Slides chapter 3
Hardik Patel
 
PPT
Slides chapter 3
Priyanka Shetty
 
PPTX
Software Development Life Cycle (SDLC )
eshtiyak
 
PPTX
Introduction to Software Engineering
Saqib Raza
 
PPTX
Introduction to Software Engineering
International Islamic University Islamabad
 
PPT
Introduction,Software Process Models, Project Management
swatisinghal
 
PPT
Software process life cycles
sathish sak
 
PPT
Agile Software Development in Bachelor of Computer Applications.ppt
JASVEERSINGHVU21CSCI
 
Ch17
phanleson
 
reaserch ppt.pptx
BinyamBekele3
 
Software Process Models
Hassan A-j
 
SELECTION OF AN APPROPRIATE PROJECT APPROACH.pptx
AnujYadav495147
 
Software development life cycle
Nishant Srivastava
 
Sdlc cource in_mumbai
vibrantuser
 
Extreme programming (xp)
Mohamed Abdelrahman
 
Software development process basic
Anurag Tomar
 
01lifecycles(system development life cycle).ppt
krishnakrishkrish100
 
01lifecycles
Abdihakim Dalmar
 
Software Development Life Cycle (SDLC)
Compare Infobase Limited
 
Software development process models
Muhammed Afsal Villan
 
Slides chapter 3
Hardik Patel
 
Slides chapter 3
Priyanka Shetty
 
Software Development Life Cycle (SDLC )
eshtiyak
 
Introduction to Software Engineering
Saqib Raza
 
Introduction to Software Engineering
International Islamic University Islamabad
 
Introduction,Software Process Models, Project Management
swatisinghal
 
Software process life cycles
sathish sak
 
Agile Software Development in Bachelor of Computer Applications.ppt
JASVEERSINGHVU21CSCI
 
Ad

Recently uploaded (20)

PDF
AI-assisted IP-Design lecture from the MIPLM 2025
MIPLM
 
PPTX
GENERAL BIOLOGY 1 - Subject Introduction
marvinnbustamante1
 
PDF
Lean IP - Lecture by Dr Oliver Baldus at the MIPLM 2025
MIPLM
 
PDF
STATEMENT-BY-THE-HON.-MINISTER-FOR-HEALTH-ON-THE-COVID-19-OUTBREAK-AT-UG_revi...
nservice241
 
PPTX
Life and Career Skills Lesson 2.pptxProtective and Risk Factors of Late Adole...
ryangabrielcatalon40
 
PPTX
Navigating English Key Stage 2 lerning needs.pptx
JaysonClosa3
 
PDF
DIGESTION OF CARBOHYDRATES ,PROTEINS AND LIPIDS
raviralanaresh2
 
PPTX
PLANNING FOR EMERGENCY AND DISASTER MANAGEMENT ppt.pptx
PRADEEP ABOTHU
 
PPTX
How to Manage Expiry Date in Odoo 18 Inventory
Celine George
 
PDF
Android Programming - Basics of Mobile App, App tools and Android Basics
Kavitha P.V
 
PPTX
ENGlish 8 lesson presentation PowerPoint.pptx
marawehsvinetshe
 
PDF
I3PM Industry Case Study Siemens on Strategic and Value-Oriented IP Management
MIPLM
 
PPTX
Exploring Linear and Angular Quantities and Ergonomic Design.pptx
AngeliqueTolentinoDe
 
PPTX
Natural Language processing using nltk.pptx
Ramakrishna Reddy Bijjam
 
PPTX
How to Send Email From Odoo 18 Website - Odoo Slides
Celine George
 
PPTX
How to Manage Allocation Report for Manufacturing Orders in Odoo 18
Celine George
 
PDF
TLE 8 QUARTER 1 MODULE WEEK 1 MATATAG CURRICULUM
denniseraya1997
 
PDF
CAD25 Gbadago and Fafa Presentation Revised-Aston Business School, UK.pdf
Kweku Zurek
 
PPTX
SD_GMRC5_Session 6AB_Dulog Pedagohikal at Pagtataya (1).pptx
NickeyArguelles
 
PPTX
Marketing Management PPT Unit 1 and Unit 2.pptx
Sri Ramakrishna College of Arts and science
 
AI-assisted IP-Design lecture from the MIPLM 2025
MIPLM
 
GENERAL BIOLOGY 1 - Subject Introduction
marvinnbustamante1
 
Lean IP - Lecture by Dr Oliver Baldus at the MIPLM 2025
MIPLM
 
STATEMENT-BY-THE-HON.-MINISTER-FOR-HEALTH-ON-THE-COVID-19-OUTBREAK-AT-UG_revi...
nservice241
 
Life and Career Skills Lesson 2.pptxProtective and Risk Factors of Late Adole...
ryangabrielcatalon40
 
Navigating English Key Stage 2 lerning needs.pptx
JaysonClosa3
 
DIGESTION OF CARBOHYDRATES ,PROTEINS AND LIPIDS
raviralanaresh2
 
PLANNING FOR EMERGENCY AND DISASTER MANAGEMENT ppt.pptx
PRADEEP ABOTHU
 
How to Manage Expiry Date in Odoo 18 Inventory
Celine George
 
Android Programming - Basics of Mobile App, App tools and Android Basics
Kavitha P.V
 
ENGlish 8 lesson presentation PowerPoint.pptx
marawehsvinetshe
 
I3PM Industry Case Study Siemens on Strategic and Value-Oriented IP Management
MIPLM
 
Exploring Linear and Angular Quantities and Ergonomic Design.pptx
AngeliqueTolentinoDe
 
Natural Language processing using nltk.pptx
Ramakrishna Reddy Bijjam
 
How to Send Email From Odoo 18 Website - Odoo Slides
Celine George
 
How to Manage Allocation Report for Manufacturing Orders in Odoo 18
Celine George
 
TLE 8 QUARTER 1 MODULE WEEK 1 MATATAG CURRICULUM
denniseraya1997
 
CAD25 Gbadago and Fafa Presentation Revised-Aston Business School, UK.pdf
Kweku Zurek
 
SD_GMRC5_Session 6AB_Dulog Pedagohikal at Pagtataya (1).pptx
NickeyArguelles
 
Marketing Management PPT Unit 1 and Unit 2.pptx
Sri Ramakrishna College of Arts and science
 
Ad

software lecture

  • 2. Traditional/Waterfall  Prototyping  Rapid Application Development (RAD)  Evolutionary  ◦ ◦ ◦ Incremental Spiral Component Assembly Agile Methods (e.g. XP)  Formal Methods  Fourth Generation Techniques 
  • 4.         Most widely used, though no longer state-of-the-art Each step results in documentation May be suitable for well-understood developments using familiar technology Not suited to new, different systems because of specification uncertainty Difficulty in accommodating change after the process has started Can accommodate iteration but indirectly Working version not available till late in process Often get blocking states
  • 5. Specifying requirements is often very difficult  Users don’t know exactly what they want until they see it  Prototyping involves building a mock-up of the system and using to obtain for user feedback  Closely related to what are now called “Agile Methods” 
  • 7. Ideally mock-up serves as mechanism for identifying requirements  Users like the method, get a feeling for the actual system  Less ideally may be the basis for completed product  ◦ ◦ ◦ prototypes often ignore quality/performance/maintenance issues may create pressure from users on deliver earlier may use a less-than-ideal platform to deliver e.g Visual Basic - excellent for prototyping, may not be as effective in actual operation
  • 8. Similar to waterfall but uses a very short development cycle (60 to 90 days to completion)  Uses component-based construction and emphasises reuse and code generation  Use multiple teams on scaleable projects  Requires heavy resources  Requires developers and customers who are heavily committed  Performance can be a problem  Difficult to use with new technology 
  • 9. Team 1 Team 2 Team 3 Business Business modelling Business modelling Data modelling modelling Data modelling Data modelling Process modelling Process modelling Process modelling Application generation Applicatio n Application Testing and turnover generation generation Testing and turnover Testing and turnover
  • 10.       Applies an iterative philosophy to the waterfall model Divide functionality of system into increments and use a linear sequence of development on each increment First increment delivered is usually the core product, i.e only basic functionality Reviews of each increment impact on design of later increments Manages risk well Extreme Programming (XP), and other Agile Methods, are incremental, but they do not implement the waterfall model steps in the standard order
  • 11. 1st Increment analysis design coding testing delivery 2nd Increment analysis design coding Project Definition testing delivery 3rd Increment analysis design coding testing delivery 4th Increment analysis design coding testing delivery
  • 12.  Development cycles through multiple (3-6) task regions (6 stage version) ◦ ◦ ◦ ◦ ◦ ◦  Incremental releases ◦ ◦  customer communication planning risk analysis engineering construction and release customer evaluation early releases may be paper or prototypes later releases become more complicated Models software until it is no longer used
  • 14. Not a silver bullet, but considered to be one of the best approaches  Is a realistic approach to the problems of large scale software development  Can use prototyping during any phase in the evolution of product  Requires excellent management and risk assessment skills 
  • 15. Incorporates features of the spiral model  Usually based on object technologies, but not necessarily e.g. Visual Basic (older versions)  Compose applications from pre-packaged software components  Can greatly boost productivity and reuse  Relies heavily on quality and robustness of the software components  Fits into the Engineering/Construction task region of the spiral model 
  • 17.    In the last few years, a group of influential writers and consultants have got behind a group of software development processes known collectively as “Agile Methods” Agile Methods reject the notion that we should design for future change – don’t “borrow trouble” There is a “Manifesto for Agile Software Development”: “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:  Individuals and interactions over processes and tools  Working software over comprehensive documentation  Customer collaboration over contract negotiation  Responding to change over following a plan”  Seductive, isn’t it? ◦ Beware: it is not yet widely accepted in industry, and its own proponents admit that it is not always a good choice
  • 18.  The best-known agile development process eXtreme Programming (XP), introduced by Kent Beck in 1999. It’s main principles are: ◦ Rapid feedback  Very frequent builds – many per day  Tests written first ◦ Assume simplicity  Don’t borrow trouble – but “simplicity” is not easy. It can often take skill, effort and experience to recognize the simplest solution (as we will see with Design Patterns later in the semester) ◦ Incremental change ◦ Embracing change ◦ Quality work
  • 19.  The XP methodology has many practices. Beck emphasizes that you can’t pick and choose: if you’re not doing them all, you’re not doing XP ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ The Planning Game Small releases Metaphor Simple Design Testing – tests are written first, by both programmers and customer Refactoring Pair programming Collective ownership Continuous integration 40-hour week On-site customer Coding standards
  • 20.  XP is very appealing to many programmers – often because they think can get away from heavy documentation ◦ in fact the test-first practice creates a lot of documentation, though in code form  Beck himself indicates that there are situations where XP is not appropriate. These include: ◦ When it is not supported by the company culture  e.g. belief in big specifications, or overtime seen as a proxy for commitment to company ◦ More than 10 or 20 programmers (this is a big one!) ◦ Project too big for regular complete integration ◦ Where it inherently takes a long time to get feedback ◦ Where you can’t realistically test  e.g. already in production using a $1,000,000 machine that is already at full capacity ◦ When the physical environment is wrong
  • 21. Use of mathematical techniques to specify the requirements of the system e.g the B method, Z, VDM, Object-Z  Mainly used in life or mission-critical applications, e.g heart pacemakers, NASA  Can get very high quality software  Problems  ◦ ◦ ◦ Time-consuming and expensive Few developers have necessary skills, so extensive training required Difficult to use as a tool to communicate with users
  • 22. The use of CASE and 4GL tools which let you specify the software at a high-level  Example: Hamilton-1 uses a formal specification language to generate complete system from requirements analysis ($100,000 per license)  Use of 4GT has grown considerably in the last decade  Some indications of productivity improvements for small and intermediate applications 
  • 23. Large projects require as much or more analysis, design and testing to achieve the time gains from the elimination of coding  Often problems with efficiency of automatically generated code 