ch04
TRANSCRIPT
![Page 1: Ch04](https://reader036.vdocuments.net/reader036/viewer/2022062514/5589010cd8b42a23708b467a/html5/thumbnails/1.jpg)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 1
Software Engineering: A Practitioner’s Software Engineering: A Practitioner’s Approach, 6/eApproach, 6/e
Chapter 4Chapter 4Agile DevelopmentAgile Development
copyright © 1996, 2001, 2005
R.S. Pressman & Associates, Inc.
For University Use OnlyMay be reproduced ONLY for student use at the university level
when used in conjunction with Software Engineering: A Practitioner's Approach.Any other reproduction or use is expressly prohibited.
![Page 2: Ch04](https://reader036.vdocuments.net/reader036/viewer/2022062514/5589010cd8b42a23708b467a/html5/thumbnails/2.jpg)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 2
The Manifesto for The Manifesto for Agile Software Agile Software DevelopmentDevelopment
““We are uncovering better ways of We are uncovering better ways of developing software by doing it and developing software by doing it and helping others do it. Through this work helping others do it. Through this work we have come to value: we have come to value:
•Individuals and interactionsIndividuals and interactions over over processes and tools processes and tools •Working softwareWorking software over over comprehensive documentation comprehensive documentation •Customer collaborationCustomer collaboration over contract over contract negotiation negotiation •Responding to changeResponding to change over following over following a plana plan
That is, while there is value in the items That is, while there is value in the items on the right, we value the items on the on the right, we value the items on the left more.”left more.”
Kent Beck et alKent Beck et al
![Page 3: Ch04](https://reader036.vdocuments.net/reader036/viewer/2022062514/5589010cd8b42a23708b467a/html5/thumbnails/3.jpg)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 3
What is “Agility”?What is “Agility”?
Effective (rapid and adaptive) response to Effective (rapid and adaptive) response to changechange
Effective communication among all Effective communication among all stakeholdersstakeholders
Drawing the customer onto the teamDrawing the customer onto the team Organizing a team so that it is in control of Organizing a team so that it is in control of
the work performedthe work performed
Yielding …Yielding … Rapid, incremental delivery of softwareRapid, incremental delivery of software
![Page 4: Ch04](https://reader036.vdocuments.net/reader036/viewer/2022062514/5589010cd8b42a23708b467a/html5/thumbnails/4.jpg)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 4
An Agile ProcessAn Agile Process
Is driven by customer descriptions of what Is driven by customer descriptions of what is required (scenarios)is required (scenarios)
Recognizes that plans are short-livedRecognizes that plans are short-lived Develops software iteratively with a heavy Develops software iteratively with a heavy
emphasis on construction activitiesemphasis on construction activities Delivers multiple ‘software increments’Delivers multiple ‘software increments’ Adapts as changes occurAdapts as changes occur
![Page 5: Ch04](https://reader036.vdocuments.net/reader036/viewer/2022062514/5589010cd8b42a23708b467a/html5/thumbnails/5.jpg)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 5
Extreme Programming (XP)Extreme Programming (XP)
The most widely used agile process, originally The most widely used agile process, originally proposed by Kent Beckproposed by Kent Beck
XP PlanningXP Planning Begins with the creation of “Begins with the creation of “user storiesuser stories”” Agile team assesses each story and assigns a Agile team assesses each story and assigns a costcost Stories are grouped to for a Stories are grouped to for a deliverable incrementdeliverable increment A A commitmentcommitment is made on delivery date is made on delivery date After the first increment “After the first increment “project velocityproject velocity” is used to ” is used to
help define subsequent delivery dates for other help define subsequent delivery dates for other incrementsincrements
![Page 6: Ch04](https://reader036.vdocuments.net/reader036/viewer/2022062514/5589010cd8b42a23708b467a/html5/thumbnails/6.jpg)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 6
Extreme Programming (XP)Extreme Programming (XP)
XP DesignXP Design Follows the Follows the KIS principleKIS principle Encourage the use of Encourage the use of CRC cardsCRC cards (see Chapter 8) (see Chapter 8) For difficult design problems, suggests the creation of “For difficult design problems, suggests the creation of “spike spike
solutionssolutions”—a design prototype”—a design prototype Encourages “Encourages “refactoringrefactoring”—an iterative refinement of the internal ”—an iterative refinement of the internal
program designprogram design XP CodingXP Coding
Recommends the Recommends the construction of a unit testconstruction of a unit test for a store for a store beforebefore coding coding commencescommences
Encourages “Encourages “pair programmingpair programming”” XP TestingXP Testing
All All unit tests are executed dailyunit tests are executed daily ““Acceptance tests”Acceptance tests” are defined by the customer and excuted to assess are defined by the customer and excuted to assess
customer visible functionalitycustomer visible functionality
![Page 7: Ch04](https://reader036.vdocuments.net/reader036/viewer/2022062514/5589010cd8b42a23708b467a/html5/thumbnails/7.jpg)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 7
Extreme Programming (XP)Extreme Programming (XP)
unit test continuous integration
acceptance testing
pair programming
Release
user stories values acceptance test criteria iteration plan
simple design CRC cards
spike solutions prototypes
refactoring
software incrementproject velocity computed
![Page 8: Ch04](https://reader036.vdocuments.net/reader036/viewer/2022062514/5589010cd8b42a23708b467a/html5/thumbnails/8.jpg)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 8
Adaptive Software Adaptive Software DevelopmentDevelopment
Originally proposed by Jim HighsmithOriginally proposed by Jim Highsmith ASD — distinguishing featuresASD — distinguishing features
Mission-drivenMission-driven planning planning Component-based focusComponent-based focus Uses “Uses “time-boxingtime-boxing” (See Chapter 24)” (See Chapter 24) Explicit consideration of Explicit consideration of risksrisks Emphasizes Emphasizes collaborationcollaboration for requirements for requirements
gatheringgathering Emphasizes “Emphasizes “learninglearning” throughout the process” throughout the process
![Page 9: Ch04](https://reader036.vdocuments.net/reader036/viewer/2022062514/5589010cd8b42a23708b467a/html5/thumbnails/9.jpg)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 9
Adaptive Software Adaptive Software DevelopmentDevelopment
adaptive cycle planning uses mission statement project constraints basic requirements time-boxed release plan
Requirements gathering J AD mini-specs
components implemented/ tested focus groups for feedback formal technical reviews postmortems
software incrementadjustments for subsequent cycles
Release
![Page 10: Ch04](https://reader036.vdocuments.net/reader036/viewer/2022062514/5589010cd8b42a23708b467a/html5/thumbnails/10.jpg)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 10
Dynamic Systems Development Dynamic Systems Development MethodMethod
Promoted by the DSDM Consortium (Promoted by the DSDM Consortium (www.dsdm.orgwww.dsdm.org)) DSDM—distinguishing featuresDSDM—distinguishing features
Similar in most respects to XP and/or ASDSimilar in most respects to XP and/or ASD Nine guiding principlesNine guiding principles
Active user involvement is imperative. Active user involvement is imperative. DSDM teams must be empowered to make decisions.DSDM teams must be empowered to make decisions. The focus is on frequent delivery of products. The focus is on frequent delivery of products. Fitness for business purpose is the essential criterion for acceptance of Fitness for business purpose is the essential criterion for acceptance of
deliverables.deliverables. Iterative and incremental development is necessary to converge on an accurate Iterative and incremental development is necessary to converge on an accurate
business solution.business solution. All changes during development are reversible.All changes during development are reversible. Requirements are baselined at a high levelRequirements are baselined at a high level Testing is integrated throughout the life-cycle.Testing is integrated throughout the life-cycle.
![Page 11: Ch04](https://reader036.vdocuments.net/reader036/viewer/2022062514/5589010cd8b42a23708b467a/html5/thumbnails/11.jpg)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 11
Dynamic Systems Development Dynamic Systems Development MethodMethod
DSDM Life Cycle (with permission of the DSDM consortium)
![Page 12: Ch04](https://reader036.vdocuments.net/reader036/viewer/2022062514/5589010cd8b42a23708b467a/html5/thumbnails/12.jpg)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 12
ScrumScrum
Originally proposed by Schwaber and BeedleOriginally proposed by Schwaber and Beedle Scrum—distinguishing featuresScrum—distinguishing features
Development work is partitioned into “Development work is partitioned into “packetspackets”” Testing and documentation are on-goingTesting and documentation are on-going as the product as the product
is constructedis constructed Work occurs in “Work occurs in “sprintssprints” and is derived from a ” and is derived from a
““backlogbacklog” of existing requirements” of existing requirements Meetings are very shortMeetings are very short and sometimes conducted and sometimes conducted
without chairswithout chairs ““demosdemos” are delivered to the customer with the time-box ” are delivered to the customer with the time-box
allocatedallocated
![Page 13: Ch04](https://reader036.vdocuments.net/reader036/viewer/2022062514/5589010cd8b42a23708b467a/html5/thumbnails/13.jpg)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 13
ScrumScrum
![Page 14: Ch04](https://reader036.vdocuments.net/reader036/viewer/2022062514/5589010cd8b42a23708b467a/html5/thumbnails/14.jpg)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 14
CrystalCrystal
Proposed by Cockburn and HighsmithProposed by Cockburn and Highsmith Crystal—distinguishing featuresCrystal—distinguishing features
Actually a Actually a family of process modelsfamily of process models that allow that allow ““maneuverabilitymaneuverability” based on problem characteristics” based on problem characteristics
Face-to-face communicationFace-to-face communication is emphasized is emphasized Suggests the use of “Suggests the use of “reflection workshopsreflection workshops” to ” to
review the work habits of the teamreview the work habits of the team
![Page 15: Ch04](https://reader036.vdocuments.net/reader036/viewer/2022062514/5589010cd8b42a23708b467a/html5/thumbnails/15.jpg)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 15
Feature Driven DevelopmentFeature Driven Development
Originally proposed by Peter Coad et alOriginally proposed by Peter Coad et al FDD—distinguishing featuresFDD—distinguishing features
Emphasis is on defining Emphasis is on defining “features”“features” aa featurefeature “is a client-valued function that can be “is a client-valued function that can be
implemented in two weeks or less.”implemented in two weeks or less.” Uses a Uses a feature templatefeature template
<action> the <result> <by | for | of | to> a(n) <object><action> the <result> <by | for | of | to> a(n) <object>
A A features listfeatures list is created and “ is created and “plan by featureplan by feature” is ” is conductedconducted
Design and construction merge in FDDDesign and construction merge in FDD
![Page 16: Ch04](https://reader036.vdocuments.net/reader036/viewer/2022062514/5589010cd8b42a23708b467a/html5/thumbnails/16.jpg)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 16
Feature Driven DevelopmentFeature Driven Development
Reprinted with permission of Peter CoadReprinted with permission of Peter Coad
![Page 17: Ch04](https://reader036.vdocuments.net/reader036/viewer/2022062514/5589010cd8b42a23708b467a/html5/thumbnails/17.jpg)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005 17
Agile ModelingAgile Modeling
Originally proposed by Scott AmblerOriginally proposed by Scott Ambler Suggests a set of agile modeling principlesSuggests a set of agile modeling principles
Model with a purposeModel with a purpose Use multiple modelsUse multiple models Travel lightTravel light Content is more important than representationContent is more important than representation Know the models and the tools you use to create Know the models and the tools you use to create
themthem Adapt locallyAdapt locally