SlideShare une entreprise Scribd logo
1  sur  33
PROTOTYPING
• Often, a customer defines a set of general
objectives for software,but does not identify
detailed requirements for functions and
features.
• Often, a customer defines a set of general
objectives for software, but does not identify
detailed requirements for functions and
features.
Prototyping Model
(Diagram)
Prototyping Model
(Description)
•Follows an evolutionary and iterative approach
•Used when requirements are not well understood
•Serves as a mechanism for identifying software
requirements
•Focuses on those aspects of the software that are visible
to the customer/user
•Feedback is used to refine the prototype
Prototyping Model
(Potential Problems)
•The customer sees a "working version" of the software, wants to stop all
development and then buy the prototype after a "few fixes" are made
•Developers often make implementation compromises to get the software
running quickly (e.g., language choice, user interface, operating system
choice, inefficient algorithms)
•Lesson learned
–Define the rules up front on the final disposition of the prototype before it
is built
–In most circumstances, plan to discard the prototype and engineer the
actual production software with a goal toward quality
Spiral Model
(Diagram)
Spiral Model
(Description)
•Follows an evolutionary approach
•Used when requirements are not well understood
and risks are high
•Inner spirals focus on identifying software
requirements and project risks; may also
incorporate prototyping
•Outer spirals take on a classical waterfall
approach after requirements have been defined,
but permit iterative growth of the software
•Operates as a risk-driven model…a
go/no-go decision occurs after each
complete spiral in order to react to risk
determinations
•Requires considerable expertise in risk
assessment
•Serves as a realistic model for large-
scale software development
General
Weaknesses
of
Evolutionary
Process
Models
• 1)Prototyping poses a problem to
project planning because of the
uncertain number of iterations required
to construct the product
• 2)Evolutionary software processes do
not establish the maximum speed of
the evolution
• •If too fast, the process will fall into
chaos
• If too slow, productivity could be
affected
• 3)Software processes should focus first on
flexibility and extensibility, and second on high
quality
• •We should prioritize the speed of the
development over zero defects
• •Extending the development in order to reach
higher quality could result in late delivery
Concurrent Models
Agile Development
•The project will produce the wrong product.
•The project will produce a product of inferior quality.
•The project will be late.
•We’ll have to work 80 hour weeks.
•We’ll have to break commitments.
•We won’t be having fun.
What is “Agility”?
•Effective (rapid and adaptive) response to change
•Effective communication among all stakeholders
•Drawing the customer onto the team
•Organizing a team so that it is in control of the work
performed
Yielding …
•Rapid, incremental delivery of software
An Agile Process
•Is driven by customer descriptions of what is required
(scenarios)
•Recognizes that plans are short-lived
•Develops software iteratively with a heavy emphasis on
construction activities
•Delivers multiple ‘software increments’
•Adapts as changes occur
Principles of agile methods
Agile process models
•Extreme Programming (XP)
•Scrum
•Adaptive Software Development
•Dynamic System Development Method (DSDM)
•Crystal
•Feature Driven Development
•Agile Modeling (AM)
•Perhaps the best-known and most widely used agile method.
•Extreme Programming (XP) takes an ‘extreme’ approach to
iterative development.
–New versions may be built several times per day;
–Increments are delivered to customers every 2 weeks;
–All tests must be run for every build and the build is only
accepted if tests run successfully.
•XP Values
–Communication
–Simplicity
–Feedback
–Courage
–Respect
Extreme Programming (XP)
Extreme Programming (XP)
Extreme Programming (XP)
•XP Planning
–Begins with the creation of user stories
–Agile team assesses each story and assigns a
cost
–Stories are grouped to for a deliverable
increment
–A commitment is made on delivery date
–After the first increment project velocity is used
to help define subsequent delivery dates for other
Extreme Programming (XP)
•XP Design
–Follows the KIS (keep it simple) principle
–Encourage the use of CRC (class-responsibility-cards) cards
–For difficult design problems, suggests the creation of spike solutions
— a design prototype
–Encourages refactoring — an iterative refinement of the internal
program design
•XP Coding
–Recommends the construction of a unit test for a store before coding
commences
–Encourages pair programming
•XP Testing
–All unit tests are executed daily
–Acceptance tests are defined by the customer and executed to
XP and agile principles
•Incremental development is supported through small,
frequent system releases.
•Customer involvement means full-time customer
engagement with the team.
•People not process through pair programming,
collective ownership and a process that avoids long
working hours.
•Change supported through regular system releases.
•Maintaining simplicity through constant refactoring of
code.
Customer involvement
•Customer involvement is a key part of XP where the
customer is part of the development team.
•The role of the customer is:
–To help develop stories that define the requirements
–To help prioritize the features to be implemented in
each release
–To help develop acceptance tests which assess
whether or not the system meets its requirements.
Requirements scenarios
• •In XP, user requirements are expressed as scenarios or
user stories.
• •These are written on cards and the development team
break them down into implementation tasks. These tasks
are the basis of schedule and cost estimates.
• •The customer chooses the stories for inclusion in the
next release based on their priorities and the schedule
estimates.
Story card for document downloading
XP and change
•Conventional wisdom in software engineering is to
design for change. It is worth spending time and
effort anticipating changes as this reduces costs
later in the life cycle.
•XP, however, maintains that this is not worthwhile as
changes cannot be reliably anticipated.
Rather, it proposes constant code improvement
(refactoring) to make changes easier when they
have to be implemented
Refactoring
•Refactoring is the process of code improvement
where code is reorganised and rewritten to make it
more efficient, easier to understand, etc.
•Refactoring is required because frequent releases
mean that code is developed incrementally and
therefore tends to become messy.
•Refactoring should not change the functionality of the
system.
•Automated testing simplifies refactoring as you can
see if the changed code still runs the tests
successfully.
Testing in XP
•Test-first development.
•Incremental test development from scenarios.
•User involvement in test development and
validation.
•Automated test harnesses are used to run all
component tests each time that a new release
is built.
Task cards for document downloading
Test case description
Test-first development
•Writing tests before code clarifies the requirements to be
implemented.
•Tests are written as programs rather than data so that they
can be executed automatically. The test includes a check
that it has executed correctly.
•All previous and new tests are automatically run when new
functionality is added. Thus checking that the new
functionality has not introduced errors
Pair programming
•In XP, programmers work in pairs, sitting together to
develop code.
•This helps develop common ownership of code and
spreads knowledge across the team.
•It serves as an informal review process as each line of
code is looked at by more than 1 person.
•It encourages refactoring as the whole team can
benefit from this.
•Measurements suggest that development productivity
with pair programming is similar to that of two people
working independently.
Problems with XP
• Customer involvement
• This is perhaps the most difficult problem. It may be difficult or impossible to find a customer who can
represent all stakeholders and who can be taken off their normal work to become part of the XP team.
For generic products, there is no ‘customer’ - the marketing team may not be typical of real customers.
• Architectural design
• The incremental style of development can mean that inappropriate architectural decisions
are made at an early stage of the process.
• Problems with these may not become clear until many features have been implemented
and refactoring the architecture is very expensive.
• Test complacency
• It is easy for a team to believe that because it has many tests, the system is properly tested.
• Because of the automated testing approach, there is a tendency to develop tests that are
easy to automate rather than tests that are ‘good’ tests.
Key points
•Extreme programming includes practices such as systematic
testing, continuous improvement and customer involvement.
•Customers are involved in developing requirements which
are expressed as simple scenarios.
•The approach to testing in XP is a particular strength where
executable tests are developed before the code is written.
•Key problems with XP include difficulties of getting
representative customers and problems of architectural
design.

Contenu connexe

Tendances

Beit 381 se lec 5, 6, 7 & 8 - 69 - 12 feb21,22,28,29 - sw process 1-3 sdlc m...
Beit 381 se lec 5, 6, 7 & 8 - 69 - 12 feb21,22,28,29  - sw process 1-3 sdlc m...Beit 381 se lec 5, 6, 7 & 8 - 69 - 12 feb21,22,28,29  - sw process 1-3 sdlc m...
Beit 381 se lec 5, 6, 7 & 8 - 69 - 12 feb21,22,28,29 - sw process 1-3 sdlc m...
babak danyal
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
Mr SMAK
 
Assignment 2nd(sdlc)id-17
Assignment 2nd(sdlc)id-17Assignment 2nd(sdlc)id-17
Assignment 2nd(sdlc)id-17
Pardeep Bhadwal
 
Ch3-Software Engineering 9
Ch3-Software Engineering 9Ch3-Software Engineering 9
Ch3-Software Engineering 9
Ian Sommerville
 

Tendances (20)

Software Engineering by Pankaj Jalote
Software Engineering by Pankaj JaloteSoftware Engineering by Pankaj Jalote
Software Engineering by Pankaj Jalote
 
Beit 381 se lec 5, 6, 7 & 8 - 69 - 12 feb21,22,28,29 - sw process 1-3 sdlc m...
Beit 381 se lec 5, 6, 7 & 8 - 69 - 12 feb21,22,28,29  - sw process 1-3 sdlc m...Beit 381 se lec 5, 6, 7 & 8 - 69 - 12 feb21,22,28,29  - sw process 1-3 sdlc m...
Beit 381 se lec 5, 6, 7 & 8 - 69 - 12 feb21,22,28,29 - sw process 1-3 sdlc m...
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Agiel sw development
Agiel sw developmentAgiel sw development
Agiel sw development
 
Cobol agile
Cobol agileCobol agile
Cobol agile
 
4. ch 3-agile process
4. ch 3-agile process4. ch 3-agile process
4. ch 3-agile process
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2
 
ABC of Agile (Scrum & Extreme Programming)
ABC of Agile (Scrum & Extreme Programming)ABC of Agile (Scrum & Extreme Programming)
ABC of Agile (Scrum & Extreme Programming)
 
Software Process and Project Management - CS832E02 unit 3
Software Process and Project Management - CS832E02 unit 3Software Process and Project Management - CS832E02 unit 3
Software Process and Project Management - CS832E02 unit 3
 
Chapter 2 Time boxing & agile models
Chapter 2   Time boxing & agile modelsChapter 2   Time boxing & agile models
Chapter 2 Time boxing & agile models
 
Assignment 2nd(sdlc)id-17
Assignment 2nd(sdlc)id-17Assignment 2nd(sdlc)id-17
Assignment 2nd(sdlc)id-17
 
Agile Method - Lec 1-2-3
Agile Method - Lec 1-2-3Agile Method - Lec 1-2-3
Agile Method - Lec 1-2-3
 
Agile India 2015 Conference - Scaling agile in a mainframe product developm...
Agile India 2015 Conference  -  Scaling agile in a mainframe product developm...Agile India 2015 Conference  -  Scaling agile in a mainframe product developm...
Agile India 2015 Conference - Scaling agile in a mainframe product developm...
 
Ch3-Software Engineering 9
Ch3-Software Engineering 9Ch3-Software Engineering 9
Ch3-Software Engineering 9
 
Extreme Programming (XP) Project Process Flow Chart
Extreme Programming (XP)  Project Process Flow ChartExtreme Programming (XP)  Project Process Flow Chart
Extreme Programming (XP) Project Process Flow Chart
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process Models
 
Process models
Process modelsProcess models
Process models
 
Lect3
Lect3Lect3
Lect3
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Ais development strategy
Ais development strategyAis development strategy
Ais development strategy
 

Similaire à Lecture3.se.pptx

Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
Siva Ayyakutti
 

Similaire à Lecture3.se.pptx (20)

agility_principles.ppt
agility_principles.pptagility_principles.ppt
agility_principles.ppt
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
 
Project Life Cycle and Effort Estimation
Project Life Cycle andEffort EstimationProject Life Cycle andEffort Estimation
Project Life Cycle and Effort Estimation
 
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnzLecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
Lecture 5 -6(CSC205).pptx jsksnxbbxjxksnsnz
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software Engineering
 
Unit 6- Development Evolution model
Unit 6- Development Evolution model Unit 6- Development Evolution model
Unit 6- Development Evolution model
 
Software process models
Software process modelsSoftware process models
Software process models
 
Waterfall Model.pptx
Waterfall Model.pptxWaterfall Model.pptx
Waterfall Model.pptx
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
what-is-devops.ppt
what-is-devops.pptwhat-is-devops.ppt
what-is-devops.ppt
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
 
Chap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.pptChap 3 - Agile - XP.ppt
Chap 3 - Agile - XP.ppt
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
Ppt nardeep
Ppt nardeepPpt nardeep
Ppt nardeep
 
Lect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPMLect-4: Software Development Life Cycle Model - SPM
Lect-4: Software Development Life Cycle Model - SPM
 
Chapter6
Chapter6Chapter6
Chapter6
 
module I.pptx
module I.pptxmodule I.pptx
module I.pptx
 
Extreme Programming (XP).pptx
Extreme Programming (XP).pptxExtreme Programming (XP).pptx
Extreme Programming (XP).pptx
 
Software process Models
Software process ModelsSoftware process Models
Software process Models
 
Chapter 1,2,3,4 notes
Chapter 1,2,3,4 notesChapter 1,2,3,4 notes
Chapter 1,2,3,4 notes
 

Dernier

Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
Kamal Acharya
 
Verification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptxVerification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptx
chumtiyababu
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
AldoGarca30
 

Dernier (20)

GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLEGEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
 
kiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadkiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal load
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
Moment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilMoment Distribution Method For Btech Civil
Moment Distribution Method For Btech Civil
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
Verification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptxVerification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptx
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
Engineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planesEngineering Drawing focus on projection of planes
Engineering Drawing focus on projection of planes
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
 
Computer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to ComputersComputer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to Computers
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 

Lecture3.se.pptx

  • 1. PROTOTYPING • Often, a customer defines a set of general objectives for software,but does not identify detailed requirements for functions and features. • Often, a customer defines a set of general objectives for software, but does not identify detailed requirements for functions and features.
  • 3. Prototyping Model (Description) •Follows an evolutionary and iterative approach •Used when requirements are not well understood •Serves as a mechanism for identifying software requirements •Focuses on those aspects of the software that are visible to the customer/user •Feedback is used to refine the prototype
  • 4. Prototyping Model (Potential Problems) •The customer sees a "working version" of the software, wants to stop all development and then buy the prototype after a "few fixes" are made •Developers often make implementation compromises to get the software running quickly (e.g., language choice, user interface, operating system choice, inefficient algorithms) •Lesson learned –Define the rules up front on the final disposition of the prototype before it is built –In most circumstances, plan to discard the prototype and engineer the actual production software with a goal toward quality
  • 6. Spiral Model (Description) •Follows an evolutionary approach •Used when requirements are not well understood and risks are high •Inner spirals focus on identifying software requirements and project risks; may also incorporate prototyping •Outer spirals take on a classical waterfall approach after requirements have been defined, but permit iterative growth of the software
  • 7. •Operates as a risk-driven model…a go/no-go decision occurs after each complete spiral in order to react to risk determinations •Requires considerable expertise in risk assessment •Serves as a realistic model for large- scale software development
  • 8. General Weaknesses of Evolutionary Process Models • 1)Prototyping poses a problem to project planning because of the uncertain number of iterations required to construct the product • 2)Evolutionary software processes do not establish the maximum speed of the evolution • •If too fast, the process will fall into chaos • If too slow, productivity could be affected
  • 9. • 3)Software processes should focus first on flexibility and extensibility, and second on high quality • •We should prioritize the speed of the development over zero defects • •Extending the development in order to reach higher quality could result in late delivery
  • 11. Agile Development •The project will produce the wrong product. •The project will produce a product of inferior quality. •The project will be late. •We’ll have to work 80 hour weeks. •We’ll have to break commitments. •We won’t be having fun.
  • 12. What is “Agility”? •Effective (rapid and adaptive) response to change •Effective communication among all stakeholders •Drawing the customer onto the team •Organizing a team so that it is in control of the work performed Yielding … •Rapid, incremental delivery of software
  • 13. An Agile Process •Is driven by customer descriptions of what is required (scenarios) •Recognizes that plans are short-lived •Develops software iteratively with a heavy emphasis on construction activities •Delivers multiple ‘software increments’ •Adapts as changes occur
  • 14.
  • 16. Agile process models •Extreme Programming (XP) •Scrum •Adaptive Software Development •Dynamic System Development Method (DSDM) •Crystal •Feature Driven Development •Agile Modeling (AM)
  • 17. •Perhaps the best-known and most widely used agile method. •Extreme Programming (XP) takes an ‘extreme’ approach to iterative development. –New versions may be built several times per day; –Increments are delivered to customers every 2 weeks; –All tests must be run for every build and the build is only accepted if tests run successfully. •XP Values –Communication –Simplicity –Feedback –Courage –Respect Extreme Programming (XP)
  • 19. Extreme Programming (XP) •XP Planning –Begins with the creation of user stories –Agile team assesses each story and assigns a cost –Stories are grouped to for a deliverable increment –A commitment is made on delivery date –After the first increment project velocity is used to help define subsequent delivery dates for other
  • 20. Extreme Programming (XP) •XP Design –Follows the KIS (keep it simple) principle –Encourage the use of CRC (class-responsibility-cards) cards –For difficult design problems, suggests the creation of spike solutions — a design prototype –Encourages refactoring — an iterative refinement of the internal program design •XP Coding –Recommends the construction of a unit test for a store before coding commences –Encourages pair programming •XP Testing –All unit tests are executed daily –Acceptance tests are defined by the customer and executed to
  • 21. XP and agile principles •Incremental development is supported through small, frequent system releases. •Customer involvement means full-time customer engagement with the team. •People not process through pair programming, collective ownership and a process that avoids long working hours. •Change supported through regular system releases. •Maintaining simplicity through constant refactoring of code.
  • 22. Customer involvement •Customer involvement is a key part of XP where the customer is part of the development team. •The role of the customer is: –To help develop stories that define the requirements –To help prioritize the features to be implemented in each release –To help develop acceptance tests which assess whether or not the system meets its requirements.
  • 23. Requirements scenarios • •In XP, user requirements are expressed as scenarios or user stories. • •These are written on cards and the development team break them down into implementation tasks. These tasks are the basis of schedule and cost estimates. • •The customer chooses the stories for inclusion in the next release based on their priorities and the schedule estimates.
  • 24. Story card for document downloading
  • 25. XP and change •Conventional wisdom in software engineering is to design for change. It is worth spending time and effort anticipating changes as this reduces costs later in the life cycle. •XP, however, maintains that this is not worthwhile as changes cannot be reliably anticipated. Rather, it proposes constant code improvement (refactoring) to make changes easier when they have to be implemented
  • 26. Refactoring •Refactoring is the process of code improvement where code is reorganised and rewritten to make it more efficient, easier to understand, etc. •Refactoring is required because frequent releases mean that code is developed incrementally and therefore tends to become messy. •Refactoring should not change the functionality of the system. •Automated testing simplifies refactoring as you can see if the changed code still runs the tests successfully.
  • 27. Testing in XP •Test-first development. •Incremental test development from scenarios. •User involvement in test development and validation. •Automated test harnesses are used to run all component tests each time that a new release is built.
  • 28. Task cards for document downloading
  • 30. Test-first development •Writing tests before code clarifies the requirements to be implemented. •Tests are written as programs rather than data so that they can be executed automatically. The test includes a check that it has executed correctly. •All previous and new tests are automatically run when new functionality is added. Thus checking that the new functionality has not introduced errors
  • 31. Pair programming •In XP, programmers work in pairs, sitting together to develop code. •This helps develop common ownership of code and spreads knowledge across the team. •It serves as an informal review process as each line of code is looked at by more than 1 person. •It encourages refactoring as the whole team can benefit from this. •Measurements suggest that development productivity with pair programming is similar to that of two people working independently.
  • 32. Problems with XP • Customer involvement • This is perhaps the most difficult problem. It may be difficult or impossible to find a customer who can represent all stakeholders and who can be taken off their normal work to become part of the XP team. For generic products, there is no ‘customer’ - the marketing team may not be typical of real customers. • Architectural design • The incremental style of development can mean that inappropriate architectural decisions are made at an early stage of the process. • Problems with these may not become clear until many features have been implemented and refactoring the architecture is very expensive. • Test complacency • It is easy for a team to believe that because it has many tests, the system is properly tested. • Because of the automated testing approach, there is a tendency to develop tests that are easy to automate rather than tests that are ‘good’ tests.
  • 33. Key points •Extreme programming includes practices such as systematic testing, continuous improvement and customer involvement. •Customers are involved in developing requirements which are expressed as simple scenarios. •The approach to testing in XP is a particular strength where executable tests are developed before the code is written. •Key problems with XP include difficulties of getting representative customers and problems of architectural design.