Agile principles, patterns, and practices in C

With the award-winning book Agile Software Development: Principles, Patterns, and Practices, Robert C. Martin helped bring Agile principles to tens of thousands of Java and C++ programmers. Now .NET programmers have a definitive guide to agile methods with this completely updated volume from Robert...

Descripción completa

Detalles Bibliográficos
Otros Autores: Martin, Robert C Author (author), Martin, Micah Contributor (contributor)
Formato: Libro electrónico
Idioma:Inglés
Publicado: [Place of publication not identified] Prentice Hall 2007
Edición:1st edition
Colección:Robert C. Martin series Agile principles, patterns, and practices in C#
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009626921706719
Tabla de Contenidos:
  • Cover
  • Contents
  • Forewords
  • Preface
  • Acknowledgments
  • About the Authors
  • Section I: Agile Development
  • Chapter 1: Agile Practices
  • The Agile Alliance
  • Principles
  • Conclusion
  • Bibliography
  • Chapter 2: Overview of Extreme Programming
  • The Practices of Extreme Programming
  • Conclusion
  • Bibliography
  • Chapter 3: Planning
  • Initial Exploration
  • Release Planning
  • Iteration Planning
  • Defining "Done"
  • Task Planning
  • Iterating
  • Tracking
  • Conclusion
  • Bibliography
  • Chapter 4: Testing
  • Test-Driven Development
  • Acceptance Tests
  • Serendipitous Architecture
  • Conclusion
  • Bibliography
  • Chapter 5: Refactoring
  • A Simple Example Of Refactoring: Generating Primes
  • Conclusion
  • Bibliography
  • Chapter 6: A Programming Episode
  • The Bowling Game
  • Conclusion
  • Overview of the Rules of Bowling
  • Section II: Agile Design
  • Chapter 7: What Is Agile Design?
  • Design Smells
  • Why Software Rots
  • The Copy Program
  • Conclusion
  • Bibliography
  • Chapter 8: The Single-Responsibility Principle (SRP)
  • Defining a Responsibility
  • Separating Coupled Responsibilities
  • Persistence
  • Conclusion
  • Bibliography
  • Chapter 9: The Open/Closed Principle (OCP)
  • Description of OCP
  • The Shape Application
  • Conclusion
  • Bibliography
  • Chapter 10: The Liskov Substitution Principle (LSP)
  • Violations of LSP
  • Factoring Instead of Deriving
  • Heuristics and Conventions
  • Conclusion
  • Bibliography
  • Chapter 11: The Dependency-Inversion Principle (DIP)
  • Layering
  • A Simple DIP Example
  • The Furnace Example
  • Conclusion
  • Bibliography
  • Chapter 12: The Interface Segregation Principle (ISP)
  • Interface Pollution
  • Separate Clients Mean Separate Interfaces
  • Class Interfaces versus Object Interfaces
  • The ATM User Interface Example
  • Conclusion
  • Bibliography.
  • Chapter 13: Overview of UML for C# Programmers
  • Class Diagrams
  • Object Diagrams
  • Collaboration Diagrams
  • State Diagrams
  • Conclusion
  • Bibliography
  • Chapter 14: Working with Diagrams
  • Why Model?
  • Making Effective Use of UML
  • Iterative Refinement
  • When and How to Draw Diagrams
  • Conclusion
  • Chapter 15: State Diagrams
  • The Basics
  • Using FSM Diagrams
  • Conclusion
  • Chapter 16: Object Diagrams
  • A Snapshot in Time
  • Active Objects
  • Conclusion
  • Chapter 17: Use Cases
  • Writing Use Cases
  • Diagramming Use Cases
  • Conclusion
  • Bibliography
  • Chapter 18: Sequence Diagrams
  • The Basics
  • Advanced Concepts
  • Conclusion
  • Chapter 19: Class Diagrams
  • The Basics
  • An Example Class Diagram
  • The Details
  • Conclusion
  • Bibliography
  • Chapter 20: Heuristics and Coffee
  • The Mark IV Special Coffee Maker
  • OOverkill
  • Bibliography
  • Section III: The Payroll Case Study
  • Rudimentary Specification of the Payroll System
  • Exercise
  • Use Case 1: Add New Employee
  • Use Case 2: Deleting an Employee
  • Use Case 3: Post a Time Card
  • Use Case 4: Posting a Sales Receipt
  • Use Case 5: Posting a Union Service Charge
  • Use Case 6: Changing Employee Details
  • Use Case 7: Run the Payroll for Today
  • Chapter 21: Command and Active Object: Versatility and Multitasking
  • Simple Commands
  • Transactions
  • Undo Method
  • Active Object
  • Conclusion
  • Bibliography
  • Chapter 22: Template Method and Strategy: Inheritance versus Delegation
  • Template Method
  • Strategy
  • Conclusion
  • Bibliography
  • Chapter 23: Facade and Mediator
  • Facade
  • Mediator
  • Conclusion
  • Bibliography
  • Chapter 24: Singleton and Monostate
  • Singleton
  • Monostate
  • Conclusion
  • Bibliography
  • Chapter 25: Null Object
  • Description
  • Conclusion
  • Bibliography
  • Chapter 26: The Payroll Case Study: Iteration 1.
  • Rudimentary Specification
  • Analysis by Use Cases
  • Reflection: Finding the Underlying Abstractions
  • Conclusion
  • Bibliography
  • Chapter 27: The Payroll Case Study: Implementation
  • Transactions
  • Main Program
  • The Database
  • Conclusion
  • About This Chapter
  • Bibliography
  • Section IV: Packaging the Payroll System
  • Chapter 28: Principles of Package and Component Design
  • Packages and Components
  • Principles of Component Cohesion: Granularity
  • Principles of Component Coupling: Stability
  • Conclusion
  • Chapter 29: Factory
  • A Dependency Problem
  • Static versus Dynamic Typing
  • Substitutable Factories
  • Using Factories for Test Fixtures
  • Importance of Factories
  • Conclusion
  • Bibliography
  • Chapter 30: The Payroll Case Study: Package Analysis
  • Component Structure and Notation
  • Applying the Common Closure Principle (CCP)
  • Applying the Reuse/Release Equivalence Principle (REP)
  • Coupling and Encapsulation
  • Metrics
  • Applying the Metrics to the Payroll Application
  • The Final Packaging Structure
  • Conclusion
  • Bibliography
  • Chapter 31: Composite
  • Composite Commands
  • Multiplicity or No Multiplicity
  • Conclusion
  • Chapter 32: Observer: Evolving into a Pattern
  • The Digital Clock
  • The Observer Pattern
  • Conclusion
  • Bibliography
  • Chapter 33: Abstract Server, Adapter, and Bridge
  • Abstract Server
  • Adapter
  • Bridge
  • Conclusion
  • Bibliography
  • Chapter 34: Proxy and Gateway: Managing Third-Party APIs
  • Proxy
  • Databases, Middleware, and Other Third-Party Interfaces
  • Table Data Gateway
  • Using Other Patterns with Databases
  • Conclusion
  • Bibliography
  • Chapter 35: Visitor
  • VISITOR
  • Acyclic Visitor
  • Decorator
  • Extension Object
  • Conclusion
  • Bibliography
  • Chapter 36: State
  • Nested Switch/Case Statements
  • Transition Tables
  • The State Pattern.
  • Classes of State Machine Application
  • Conclusion
  • Bibliography
  • Chapter 37: The Payroll Case Study: The Database
  • Building the Database
  • A Flaw in the Code Design
  • Adding an Employee
  • Transactions
  • Loading an Employee
  • What Remains?
  • Chapter 38: The Payroll User Interface: Model View Presenter
  • The Interface
  • Implementation
  • Building a Window
  • The Payroll Window
  • The Unveiling
  • Conclusion
  • Bibliography
  • Appendix A: A Satire of Two Companies
  • Rufus Inc.: Project Kickoff
  • Rupert Industries: Project Alpha
  • Appendix B: What Is Software?
  • Index.