text.skipToContent text.skipToNavigation
  1. Home
  2. Computer Science & IT
  3. Agile Principles, Patterns, and Practices in C#

Agile Principles, Patterns, and Practices in C#, 1st edition

  • Robert C. Martin
  • Micah Martin

Published by Prentice Hall (July 20th 2006) - Copyright © 2007

1st edition

Agile Principles, Patterns, and Practices in C#

ISBN-13: 9780131857254

Includes: Hardcover
Free delivery
$79.99

What's included

  • Hardcover

    You'll get a bound printed text.

Overview

Table of contents

Forewords xix

Preface xxiii

Acknowledgments xxxi

About the Authors xxxiii

Section I: Agile Development 1

Chapter 1: Agile Practices 3

The Agile Alliance 4

Principles 8

Conclusion 10

Bibliography 11

Chapter 2: Overview of Extreme Programming 13

The Practices of Extreme Programming 14

Conclusion 22

Bibliography 22

Chapter 3: Planning 23

Initial Exploration 24

Release Planning 25

Iteration Planning 25

Defining “Done” 26

Task Planning 26

Iterating 27

Tracking 28

Conclusion 29

Bibliography 29

Chapter 4: Testing 31

Test-Driven Development 32

Acceptance Tests 36

Serendipitous Architecture 37

Conclusion 38

Bibliography 39

Chapter 5: Refactoring 41

A Simple Example of Refactoring: Generating Primes 42

Conclusion 53

Bibliography 54

Chapter 6: A Programming Episode 55

The Bowling Game 56

Conclusion 98

Overview of the Rules of Bowling 99

Section II: Agile Design 101

Chapter 7: What Is Agile Design? 103

Design Smells 104

Why Software Rots 107

The Copy Program 108

Conclusion 113

Bibliography 114

Chapter 8: The Single-Responsibility Principle (SRP) 115

Defining a Responsibility 117

Separating Coupled Responsibilities 119

Persistence 119

Conclusion 119

Bibliography 120

Chapter 9: The Open/Closed Principle (OCP) 121

Description of OCP 122

The Shape Application 124

Conclusion 132

Bibliography 133

Chapter 10: The Liskov Substitution Principle (LSP) 135

Violations of LSP 136

Factoring Instead of Deriving 148

Heuristics and Conventions 150

Conclusion 151

Bibliography 151

Chapter 11: The Dependency-Inversion Principle (DIP) 153

Layering 154

A Simple DIP Example 157

The Furnace Example 160

Conclusion 161

Bibliography 162

Chapter 12: The Interface Segregation Principle (ISP) 163

Interface Pollution 163

Separate Clients Mean Separate Interfaces 165

Class Interfaces versus Object Interfaces 166

The ATM User Interface Example 169

Conclusion 174

Bibliography 175

Chapter 13: Overview of UML for C# Programmers 177

Class Diagrams 180

Object Diagrams 182

Collaboration Diagrams 183

State Diagrams 184

Conclusion 185

Bibliography 185

Chapter 14: Working with Diagrams 187

Why Model? 187

Making Effective Use of UML 189

Iterative Refinement 194

When and How to Draw Diagrams 200

Conclusion 202

Chapter 15: State Diagrams 203

The Basics 204

Using FSM Diagrams 208

Conclusion 209

Chapter 16: Object Diagrams 211

A Snapshot in Time 212

Active Objects 213

Conclusion 217

Chapter 17: Use Cases 219

Writing Use Cases 220

Diagramming Use Cases 222

Conclusion 223

Bibliography 223

Chapter 18: Sequence Diagrams 225

The Basics 226

Advanced Concepts 232

Conclusion 241

Chapter 19: Class Diagrams 243

The Basics 244

An Example Class Diagram 247

The Details 249

Conclusion 258

Bibliography 258

Chapter 20: Heuristics and Coffee 259

The Mark IV Special Coffee Maker 260

OOverkill 279

Bibliography 292

Section III: The Payroll Case Study 293

Rudimentary Specification of the Payroll System 294

Exercise 295

Chapter 21: Command and Active Object: Versatility and Multitasking 299

Simple Commands 300

Transactions 302

Undo Method 304

Active Object 305

Conclusion 310

Bibliography 310

Chapter 22: Template Method and Strategy

For teachers

All the material you need to teach your courses.

Discover teaching material