Flexible, Reliable Software: Using Patterns and Agile Development guides students through the software development process. By describing practical stories, explaining the design and programming process in detail, and using projects as a learning context, the text helps readers understand why a given technique is required and why techniqu

chapter 1|4 pages

Iteration 1: Basic Terminology

chapter 1|8 pages

Agile Development Processes

chapter 2|16 pages

Reliability and Testing

chapter 3|10 pages

Flexibility and Maintainability

chapter 2|4 pages

Iteration 2: The Programming Process

chapter 4|6 pages

Pay Station Case

chapter 5|32 pages

Test-Driven Development

chapter 6|24 pages

Build Management

chapter 3|4 pages

Iteration 3: The First Design Pattern

chapter 7|22 pages

Deriving Strategy Pattern

chapter 8|18 pages

Refactoring and Integration Testing

chapter 9|6 pages

Design Patterns – Part I

chapter 10|8 pages

Coupling and Cohesion

chapter 4|4 pages

Variability Management and ®-¬-­

chapter 11|20 pages

Deriving State Pattern

chapter 12|14 pages

Test Stubs

chapter 13|18 pages

Deriving Abstract Factory

chapter 14|8 pages

Pattern Fragility

chapter 5|4 pages

Iteration 5: Compositional Design

chapter 15|16 pages

Roles and Responsibilities

chapter 16|12 pages

Compositional Design Principles

chapter 17|14 pages

Multi-Dimensional Variance

chapter 6|4 pages

Iteration 6: A Design Pattern Catalogue

chapter 19|6 pages


chapter 20|8 pages


chapter 21|6 pages


chapter 22|6 pages


chapter 23|6 pages


chapter 24|4 pages


chapter 25|6 pages


chapter 26|4 pages


chapter 27|4 pages

Null Object

chapter 28|10 pages


chapter 29|6 pages


chapter 7|4 pages

Iteration 7: Frameworks

chapter 30|16 pages

Introducing MiniDraw

chapter 31|4 pages

Template Method

chapter 32|12 pages

Framework Theory

chapter 8|20 pages

Iteration 8: Outlook

chapter 34|20 pages

Systematic Testing

chapter 9|4 pages

Part 9: Projects

chapter 35|64 pages

The HotGammon Project