About the Book
Extreme Programming (XP) is a flexible programming discipline that emphasizes constant integration, frequent small releases, co Extreme Programming (XP) is a flexible programming discipline that emphasizes constant integration, frequent small releases, continual customer feedback, and a teamwork approach. With considerable fanfare, XP has taken the mainstream of software engineering by storm. It has been adopted by an increasing number of development organizations worldwide. At the first annual Conference on Extreme Programming and Flexible Processes in Software Engineering, held in Italy in June of 2000, leading theorists and practitioners came together to share principles, techniques, tools, best practices for XP, and other flexible methodologies. Extreme Programming Examined gathers the 33 most insightful papers from this conference into one volume. With contributions by Kent Beck, Martin Fowler, Ward Cunningham, Ron Jeffries, and other visionaries in the field, these papers together represent the state-of-the-art in XP methodology as well as a glimpse at the future of XP.
Individual articles are organized into cohesive categories that allow the reader to learn and apply this material easily. Extreme Programming Examined addresses some of the most vital issues facing XP developers. It offers a high-level examination of XP programming theory and discusses specific methodologies, processes, techniques, tools, and case studies.
You will find articles exploring specific - and often misunderstood - topics, including: *The role of design in XP *Just-in-time software development *XP frameworks *Combining flexible methodologies with the UML, including a novel approach to fast modeling software systems *Design patterns and XP *Tools to support pair programming, testing, and refactoring *Case studies illustrating the transition to XP, XP in R&D, and the integration of XP into an existing C++ project *An innovative approach to teaching XP *Bringing legacy code into XP *Flexible manufacturing for software agents *Management of variants in an extreme environment *Integrating XP with software product lines Extreme Programming Examined is a valuable resource that offers the practical techniques and deeper understanding that developers and programmers need to initiate and implement successful XP projects. 0201710404B04062001
Table of Contents:
Introduction.
I. FOUNDATIONS OF XP AND FLEXIBLE TECHNIQUES.
1. Is Design Dead?, Marttin Fowler.
2. The Tao of Extreme Programming, Peter Merel.
II. METHODOLOGY AND PROCESS.
3. A Comparison of the Value Systems of Adaptive Software Development and Extreme Programming: How Methodologies May Learn from Each Other, Dirk Riehle.
4. Let's Get Layered: A Proposed Reference Architecture for Refactoring in XP, Mark Collins-Cope and Hubert Matthews.
5. Extreme Frameworking: How to Aim Applications at Evolving Frameworks, Stefan Roock.
6. Hierarchical XP: Improving XP for Large-Scale Projects in Analogy to Reorganization Processes, Carsten Jacobi and Bernhard Rumpe.
7. JWAM and XP: Using XP for Framework Development, Martin Lippert, Stefan Roock, Henning Wolf, and Heinz Züllighoven.
8. XP and Large Distributed Software Projects, Even-André Karlsson and Lars-Göran Andersson.
III. FLEXIBLE TECHNIQUES AND UML.
Chapter 9. XP Inside the Trojan Horse: Refactoring the Unified Software Development Process, Jutta Eckstein and Rolf F. Katzenberger.
10. A Flexible Software Development Process for Emergent Organizations, Giuliano Armano and Michele Marchesi.
11. Extreme Modeling, Marko Boger, Toby Baier, Frank Wienberg, and Winfried Lamersdorf.
12. A Stochastic Model of Software Maintenance and Its Implications on Extreme Programming Processes, Sergio Focardi, Michele Marchesi, and Giancarlo Succi.
13. Patterns and XP, Joshua Kerievsky.
IV. PAIR PROGRAMMING, TESTING, AND REFACTORING.
Chapter 14. The Costs and Benefits of Pair Programming, Alistair Cockburn and Laurie Williams.
Appendix: The "Expert-In-Earshot" Project Management Pattern.
15. Unit Testing in a Java Project, Peter Gassmann.
Sample Code.
16. Retrofitting Unit Tests with JUnit, Kevin Rutherford.
17. Endo-Testing: Unit Testing with Mock Objects, Tim Mackinnon, Steve Freeman, and Philip Craig.
18. Refactoring and Re-Reasoning, Neelam Soundarajan.
V. TOOLS FOR XP DEVELOPMENT.
Chapter 19. Developing the Refactoring Browser, Ralph Johnson.
20. Team Streams: Extreme Team Support, Jim des Rivières, Erich Gamma, Ivan Moore, Kai-Uwe Mätzel, André Weinand, John Wiegand.
21. Support for Distributed Teams in Extreme Programming, Till Schümmer, Jan Schümmer.
@CHAPTER = 22. Automated Testing for a CORBA-Based Distributed System, Renato Cerqueira and Roberto Ierusalimschy.
VI. PRACTICAL EXPERIENCES.
23. The VCAPS Project: An Example of Transitioning to XP, Don Wells and Trish Buckley.
24. Adopting XP, Peter Sommerlad.
25. Introducing Extreme Programming in a Research and Development Laboratory, Karl Boutin.
26. After the Fact: Introducing XP into an Existing C++ Project, Manfred Lange.
27. The XP of TAO: Extreme Programming of Large, Open-Source Frameworks, Michael Kircher and David L. Levine.
VII. XP AND BEYOND.
28. Learn XP: Host a Boot Camp, Christian Wege and Frank Gerhardt.
29. Legacy to the Extreme, Arie van Deursen, Tobias Kuipers, and Leon Moonen.
30. The Design Is in the Code: Enhanced Reuse Techniques in C++, Andrei Alexandrescu.
31. Tracing Development Progress: A Variability Perspective, Giancarlo Succi, Paolo Predonzani, and Tullio Vernazza.
32. Flexible Manufacturing for Software Agents, Luigi Benedicenti, Ramon Paranjape, and Kevin Smith.
33. How Do Flexible Processes Relate to Software Product-Lines?, Jason Yip, Giancarlo Succi, and Eric Liu.
Index. 0201710404T04232001