Software Engineering SW Processes: Extreme Programming Slide 1 Software Engineering Software Process: Agile/Extreme Programming.

Slides:



Advertisements
Similar presentations
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Alternate Software Development Methodologies
NAUG NAUG Knowledge Evening – th February 2007.
Agile Process Models. Prescriptive models don’t work It is unrealistic to not have changes. Why? The Agile Manifesto: Individuals and interactions over.
Agile
Agile Requirements Methods CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute October 26, 2004.
Extreme Programming: Practices and Strategies Extreme Programming Practices and Strategies Mohammad Alshayeb Information and Computer.
Extreme Programming Team Members Gowri Devi Yalamanchi Sandhya Ravi.
EXtreme Programming By: Aaron Flocke, Leena Paulose, Geetha Krishna (Team 6)
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Extreme Programming--a “New” Process Model Extreme Programming-- a “New” Process Model.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Chapter 3 – Agile Software Development Lecture 2 1Chapter 3 Agile software development.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
Software Engineering Modern Approaches
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Chapter 3 Agile Software Development (2/2) Yonsei University 2 nd Semester, 2013 Sanghyun Park.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Agile Software Development Chapter 3 – Lecture 1 Adrián Susinos.
Extreme Programming(XP)
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Unified Process versus Extreme Programming. Outline Compare and contrast UP and XP  Processes / Disciplines  Management  Artefacts Risk management.
1 e X treme P rogramming D. Dranidis September 2000 CITY College.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
XP – Extreme Programming
Agile
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Chapter 3 Agile Software Development (1/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Goals for Presentation Explain the basics of software development methodologies Explain basic XP elements Show the structure of an XP project Give a few.
Extreme Programming Based on and
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
Agile Software Development Jeff Sutherland, one of the developers started it In February 2001, 17 Tools: continuous integration, automated or xUnit test,
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Agile Methods Presentation By: Jason Abbett. Definition A process to rapidly develop software Many kinds of agile methods but few are practiced.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
Planning Extreme programming
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
Extreme Software Engineering A Hands-On Approach From Extreme Software Engineering: A Hands-On Approach Daniel H. Steinberg Daniel W. Palmer.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Project Management Software development models & methodologies
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
CS223: Software Engineering
What do you need to know about XP?
Agile and XP Development
Agile and XP Development
Chapter 3 – Agile Software Development
Agile and XP Development
Coming up: What is Agile?
Extreme Programming.
Extreme Programming (and Pair Programming)
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

Software Engineering SW Processes: Extreme Programming Slide 1 Software Engineering Software Process: Agile/Extreme Programming

Software Engineering SW Processes: Extreme Programming Slide 2 Chapter Objectives l To introduce software process model for eXtreme Programming (XP) l To describe the 12 practices of XP l To introduce the Story Card template describing user requirements

Software Engineering SW Processes: Extreme Programming Slide 3 eXtreme Programming XP l New approach to development based on the development and delivery of very small increments of functionality l Relies on: Constant code improvement User involvement in the development team See

Software Engineering SW Processes: Extreme Programming Slide 4 eXtreme Programming XP (cont.) l Extreme Programming is the most famous of the agile methods l Short inspect-and-adapt cycles and frequent, short feedback loops working software is the primary measure of progress Embrace changing requirements l Based on the recognition that separating design, evaluation, and documentation activities in software development is a futile exercise

Software Engineering SW Processes: Extreme Programming Slide 5 Extreme Programming XP l New approach to development based on the development and delivery of very small increments of functionality l Relies on: Constant code improvement User involvement in the development team See

Software Engineering SW Processes: Extreme Programming Slide 6 Extreme Programming XP (cont.) l Extreme Programming is the most famous of the agile methods l Short inspect-and-adapt cycles and frequent, short feedback loops working software is the primary measure of progress Embrace changing requirements l Based on the recognition that separating design, evaluation, and documentation activities in software development is a futile exercise

Software Engineering SW Processes: Extreme Programming Slide 7 eXtreme Programming XP 12 practices 1.Planning Game 2.Small Releases 3.Testing 4.Pair Programming 5.Refactoring 6.Continuous Integration 7.Simple Design 8.Collective Code Ownership 9.On-site Customer 10.Coding Standards 11.Sustainable Pace 12.Metaphor

Software Engineering SW Processes: Extreme Programming Slide 8 Extreme Programming XP 12 practices (cont.) 1.Planning Game At the beginning of each release, the stakeholders negotiate the feature to realize. The business people decide how important a feature is, and the developers decide how much that feature will cost “effort in person-hour) to implement (user stories). The techniques for gathering requirements in XP are a radical departure from that of more traditional software methodologies. First, customer requirements are written on "User Story" cards, similar to use cases.

Software Engineering SW Processes: Extreme Programming Slide 9 Extreme Programming XP 12 practices (cont.) Software developers write time estimates (Effort) and customers assign priorities to each card. Together, developers and customers play the “Planning Game" in which the customer chooses those User Stories that comprise the most important content for a short, incremental deliverable of about 2-4 weeks. When completed by developers, each short implementation increment is accepted and tried by the customer. Then, the remaining User Stories are re-examined for possible requirement and/or priority changes and the Planning Game is re-played for the next implementation increment.

Software Engineering SW Processes: Extreme Programming Slide 10 XP Customer Story Card CUSTOMER STORY CARD Story Card No: System: Story Card Name:Date: Customer:Customer Effort writing SC (hrs): Type of activity (New Story/Fix Defect/Enhance New Feature): Failure Risk Impact (High/Medium/Low):Priority (High/Medium/Low): Acceptance 'Functional' Test Scenario No: __________________________________________________________________________________________ Story Description Pre-conditions 1. … Story Description … Post-conditions 1. … Notes:

Software Engineering SW Processes: Extreme Programming Slide 11 Extreme Programming XP 12 practices (cont.) 2.Small Releases Small increments that result in a deliverable, working application XP heightens the pace of spiral development by having short releases of 2-4 weeks. At the end of each release, the customer reviews the interim product, identify defects, and adjust future requirements.

Software Engineering SW Processes: Extreme Programming Slide 12 Extreme Programming XP 12 practices (cont.) 3.Testing Test first “Unit testing” Extensive, automated white box test cases are written before production code is produced. Codes for automated tests are added to the code base. Before a programmer can integrate their code into the code base, they must pass 100 % of their own test cases and 100% of every test that was ever written on the code base. This ensures that the new code implements the new functionality without breaking anyone else’s code.

Software Engineering SW Processes: Extreme Programming Slide 13 Extreme Programming XP 12 practices (cont.) l Functional Test. Black-box test cases are written before the corresponding code. This approach gives confidence to make modifications Traditionally, project management techniques have been based on a developer’s own assessment of how much of their task has been completed. Alternately, XP promotes the use of functional test case tracking for calculating project completeness. XP terms this assessment “Project Velocity.” Functional test cases are based on customer scenarios. When a functional test case is successfully passed, it can be considered that a specified functionality has been implemented properly. Project completeness is based on the percentage of functional test cases that have been passed. Team members can unequivocally compute this measure.

Software Engineering SW Processes: Extreme Programming Slide 14 Extreme Programming XP 12 practices (cont.) 4.Pair Programming Significant coding is done in pairs of programmers (working at the same workstation). An extra set of eyes has been shown to reduce the defect rate of software. 5. Refactoring Performing a number of small, and frequently applied, transformations, which improves structure of code without affecting its behavior (not improving functionality)

Software Engineering SW Processes: Extreme Programming Slide 15 Extreme Programming XP 12 practices (cont.) 6.Continuous Integration Describes the immediate and ongoing integration of completed tasks into the system Coding assignments are broken up into small tasks, preferably of no more than one day. When each task is completed, it is integrated into the collective code base. There are many product builds each day.

Software Engineering SW Processes: Extreme Programming Slide 16 Extreme Programming XP 12 practices (cont.) 7.Simple Design Consider the simplest thing that could possibly work and do that or the next best thing don’t predict what is coming next because it probably isn't XP strives for supremely simple designs. Programmers should not try to predict future needs and to design accordingly. »“You aren’t gonna need it.” (or YAGNI) »and “Do the simplest thing that could possibly work.”

Software Engineering SW Processes: Extreme Programming Slide 17 Extreme Programming XP 12 practices (cont.) 8.Collective Code Ownership Distribute skills and knowledge as much as necessary or possible (to avoid the “truck” factor) 9. On-site Customer Customer specify requirements using user stories and are present to answer questions regarding them Customer serve as an information source Customer is always readily available and accessible to the developers for the purpose of clarifying and validating requirements throughout the implementation process.

Software Engineering SW Processes: Extreme Programming Slide 18 Extreme Programming XP 12 practices (cont.) 10.Coding Standards Use of uniform, consistent coding standards simplifies working on the source code Offer recommendations to developers with respect to: – how to lay out the code, e.g. tabbing, braces, comments – where source code files should be located in the file system – which settings should be used for the compiler and linker – which naming conventions should be followed for files, classes, methods, attributes, parameters, and local variables.

Software Engineering SW Processes: Extreme Programming Slide 19 Extreme Programming XP 12 practices (cont.) 11.Sustainable Pace Avoid overworking (keep to 40 hour weeks) 12.Metaphor A metaphor is “a rhetorical figure, which expresses what was meant by using an imagination (mostly a picture), which stems from a completely different domain and which has no concrete relation to what was meant” Metaphors allow developers and customers to communicate understanding through verbal pictures

Software Engineering SW Processes: Extreme Programming Slide 20 XP Metaphor Example- Payroll system is like an assembly line l A large XP project was a payroll system for Chrysler. l The metaphor for this project was that the payroll system was like an assembly line where hour parts were converted to dollar parts, all parts were assembled and a paycheck was produced

Software Engineering SW Processes: Extreme Programming Slide 21 XP Metaphor Example: Test-First Programming is like a Math Book l Test-first, or test-driven development, is one of XP's fundamental design techniques. l It works like this: l 1. Write a test, which probably can't even compile because you haven't written any real code yet. l 2. Implement a stub of the feature, so the test runs but fails. l 3. Complete the feature so the test passes.

Software Engineering SW Processes: Extreme Programming Slide 22 XP Metaphor Example: Test-First Programming is like a Math Book l Many math books have the answers to odd-numbered problems in the back of the book. They do this because, paradoxically, you don't solve math book problems to get the answer. Rather, you solve them to learn the techniques for solving similar problems. l Test-first is like this: first you have the right answer - the test. Your challenge is to write the code that provides the answer. Usually, if your code is wrong, your test will detect that. l The fun part is, you act as both textbook author and student. The author chooses a problem at just the right of level of difficulty, just as you must do for your test. l So, test-first is like a math book.

Software Engineering SW Processes: Extreme Programming Slide 23 Adherence to XP: Shodan Input Metric Survey l The Shodan Adherence Survey is a subjective means of gathering adherence information from team members. l The survey, answered anonymously via a web-based survey, is composed of 15 questions on the extent to which each individual on a team uses XP practices (testing has been split to three categories and stand up meetings were added to the practices). l A survey respondent self-reports the extent to which he or she used the practice, on a scale from 0% (never) to 100% (always). An overall score for the survey is computed via a weighted average of each response.

Software Engineering SW Processes: Extreme Programming Slide 24 Shodan survey questions For each question, the respondents were asked to use the following scale: l 10 Fanatic (100%) l 9 Always (90%) l 8 Regular (80%) l 7 Often (70%) l 6 Usually (60%) l 5 Half ‘n Half (50%) l 4 Common (40%) l 3 Sometimes (30%) l 2 Rarely (20%) l 1 Hardly ever (10%) l 0 Disagree with using this practice

Software Engineering SW Processes: Extreme Programming Slide 25 Shodan Input Metric Survey l See the following link for details of how each XP practice is evaluated: l RC_XP_Adherence_Metrics_Shodan.doc RC_XP_Adherence_Metrics_Shodan.doc