eXtreme Programming (XP) and eXtreme Modeling (XM)

Slides:



Advertisements
Similar presentations
An Introduction to eXtreme Programming Michael L. Collard, Ph.D. Department of Computer Science Kent State University.
Advertisements

Diane Pozefsky. Extreme Programming Flowchart
Alternate Software Development Methodologies
XP – eXtreme Programming A gentle introduction. Cleviton Vinícius Jobson Ronan Thiago Rodrigues.
1 March Extreme programming. Presentations Tuesday Campus Tour Sami Says Hawks Thursday Read2Me UNCSET Oral Lab NetVis If helpful, invite your client.
Agile Requirements Methods CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute October 26, 2004.
Agile Methods and Extreme Programming CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 23, 2007.
Extreme Programming: Practices and Strategies Extreme Programming Practices and Strategies Mohammad Alshayeb Information and Computer.
EXtreme Programming By: Aaron Flocke, Leena Paulose, Geetha Krishna (Team 6)
Extreme Programming Theory & XPeriences
Extreme Programming Mark Steverson. What Is Extreme Programming? ● Extreme Programming (XP) is a lightweight, agile methodology developed by Kent Beck.
CIS 321—IS Analysis & Design
Extreme Programming Adam Cogan Database Architect ssw.com.au.
Extreme Programming > an agile methodology
Software Engineering Modern Approaches
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Embracing change with Extreme Programming Method Engineering Erik ten Brinke
Testing in Extreme Programming
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.
Extreme Programming Sylvain Giroux October 3 rd, 2000.
E X treme P rogramming Angelo Corsaro (modified by G. Blank, with notes from Extreme Programming FAQ and Mike Rogers, BrainLoaf.com ) Extreme Programming.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
XP (not Microsoft) e X treme P rogramming Can KOMAR
Extreme Programming David Li CTO, DigitalSesame. Problem in Developing Software The Basic Problem - Risk –Schedule slips –Project canceled –System goes.
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
December Using Software Development Methodology (SDM) in the Third Teaching Unit (laboratory) CS Teachers Conference Dr. Orit Hazzan & Yael Dubinsky.
Extreme Programming (XP) XP is an agile methodology: –aims to be responsive to change Theme running through XP is the importance of communication –amongst.
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
Test Driven Development Daniel Brown dxb17u. Introduction Originates from Extreme Programming (XP) Proposed by Kent Beck in Test Driven Development.
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
Extreme Programming (XP) Web Applications and Services.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 1 eXtreme Programming – one of the Agile Software Development Methodologies.
1 Introduction to eXtreme Programming Remko Popma Azzurri Ltd.
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Agile Methodologies (including: XP & Scrum) By Avi Wortzel
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
Project Management Software development models & methodologies
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
CS223: Software Engineering
Software Development.
Methodologies and Algorithms
Requirements Engineering Lecture 4
Appendix B Agile Methodologies
Extreme Programming.
Planning User stories are written.
Extreme Programming.
Waterfall and Agile Quality Techniques
روش‌های سريع الانتقال (چابک) توسعه نرم افزار
What do you need to know about XP?
Claudio Ochoa – Patricio Maller SEG UNSL – Iridis Group
Extreme Programming Iterative programming Agile programming
Extreme Programming Extreme programming is "a lightweight methodology for small-to-medium-sized teams developing software in the face of vague or rapidly.
Chapter 3: Agile Software Processes
Coming up: What is Agile?
Refactoring.
Introduction to XP.
Sylvain Giroux October 3rd, 2000
Appendix B Agile Methodologies
Extreme Programming.
Extreme Programming (and Pair Programming)
Presentation transcript:

eXtreme Programming (XP) and eXtreme Modeling (XM) Hubert Baumeister LMU Munich

What is XP? Lightweight software development methodology Common practices put to the extreme Developed by Kent Beck & Ward Cunningham First used in Chrysler C3 project Dagstuhl, 11.10.00 Hubert Baumeister

Scope of XP Small projects: 2-12 programmers Vague, changing requirements Programs must be easily testable Programming environment must allow for easy change Programmers must be on one place Dagstuhl, 11.10.00 Hubert Baumeister

Assumption of XP Cost of change curve is less steep because Simple design Refactoring Automated tests Better tools: IDE, Debugger PL support for abstraction, encapsulation OO, Modules, etc. Dagstuhl, 11.10.00 Hubert Baumeister

Dagstuhl, 11.10.00 Hubert Baumeister

Testing Unit Tests (programmer) Functional Tests (customer) Automated Tests xUnit (SUnit, JUnit) Always test Test first Dagstuhl, 11.10.00 Hubert Baumeister

Simple Design Use the simplest design to achieve the actual task Requirements may change! No duplicated logic States every intention important to the customer Fewest possible classes and methods Dagstuhl, 11.10.00 Hubert Baumeister

“Change the structure of the system while keeping its functionality” Refactoring “Change the structure of the system while keeping its functionality” Before implementing a functionality After implementing a functionality Tool: RefactoringBrowser (Smalltalk) Dagstuhl, 11.10.00 Hubert Baumeister

Pair Programming Any production code is programmed by pairs Constant code review Pairing is dynamic Helps spread knowledge May require change in work environment Dagstuhl, 11.10.00 Hubert Baumeister

80-20 Rule Dagstuhl, 11.10.00 Hubert Baumeister

Project Lifecycle Elaboration (several weeks - months) Can estimate User Stories Planning (1-2 days) Iterations (1-4 weeks) 1. Iteration defines architecture subsequent iterations defined by the programmer functional tests are running Productionizing (first release (2-6 months)) Maintenance (new releases) Death Dagstuhl, 11.10.00 Hubert Baumeister

Planning Game Split business and technical responsibilities Customer defines User Stories Programmer estimates User Stories Customer selects User Stories for releases and iterations Dagstuhl, 11.10.00 Hubert Baumeister

Development Cycle Get task Select teammate for pairing Implement test-cases Implement functionality Run tests Refactor Integrate Dagstuhl, 11.10.00 Hubert Baumeister

Diagrams / Documentation in Design Diagrams are not forbidden mostly used for first understanding what to implement throw away Observation: Diagrams are not up-to-date Test and Code provide documentation Simple design Collective code ownership Coding standards Diagrams for communication Pair programming Tasks can be defined to produce diagram Dagstuhl, 11.10.00 Hubert Baumeister

Risks addressed by XP Schedule slips (small releases) Project canceled (small releases) System goes sour (simple design) Defect rate (tests) Business misunderstood (Customer on-site) Business changes (continuous integration) False feature rich (Customer selects User Stories) Staff turnover (Pair Programming, 40-hour day) Dagstuhl, 11.10.00 Hubert Baumeister

XP not suitable for Projects where Programmers are on different locations Project exceeds a certain size Collaboration between lots of different departments required Dagstuhl, 11.10.00 Hubert Baumeister

eXtreme Modeling (XM) Marko Bogner et. al. XP 2000 Executable UML models (Petri Nets) state-, activity-, collaboration-, and sequence diagrams Integration with programming language (Java) Tests Diagrams to test diagrams Diagrams to test programs Programs to test diagrams Dagstuhl, 11.10.00 Hubert Baumeister

Literatur eXtreme Programming eXtreme Modeling Kent Beck: XP explained Ron Jeffries: XP installed www.extremeprogramming.org Proceedings of XP 2000 Martin Fowler: Refactoring: Improving Design of Existing Code eXtreme Modeling Marko Bogner et al: Extreme Modeling, Proc. XP 2000 www.extrememodeling.org Stuart Kent’s Web-site Dagstuhl, 11.10.00 Hubert Baumeister