Agile Software Development, Principles, Patterns, and Practices, 1st edition

Published by Pearson (October 15, 2002) © 2003

  • Robert C. Martin
Products list

Details

  • A print text

For courses in Object-Oriented Design, C++ Intermediate Programming, and Object-Oriented Programming.

Written for software engineers “in the trenches,” this text focuses on the technology—the principles, patterns, and process—that help software engineers effectively manage increasingly complex operating systems and applications. There is also a strong emphasis on the people behind the technology. This text will prepare students for a career in software engineering and serve as an on-going education for software engineers.

I. AGILE DEVELOPMENT.

 1. Agile Practices.

 2. Overview of Extreme Programming.

 3. Planning.

 4. Testing.

 5. Refactoring.

 6. A Programming Episode.

II. AGILE DESIGN.

 7. What Is Agile Design?

 8. SRP: The Single-Responsibility Principle.

 9. OCP: The Open-Closed Principle.

10. LSP: The Liskov Substitution Principle.

11. DIP: The Dependency-Inversion Principle.

12. ISP: The Interface-Segregation Principle.

III. THE PAYROLL CASE STUDY.

13. Command and Active Object.

14. Template Method & Strategy: Inheritance vs. Delegation.

15. Facade and Mediator.

16. Singleton and Monostate.

17. Null Object.

18. The Payroll Case Study: Iteration One Begins.

19. The Payroll Case Study: Implementation.

IV. PACKAGING THE PAYROLL SYSTEM.

20. Principles of Package Design.

21. Factory.

22. The Payroll Case Study (Part 2).

V. THE WEATHER STATION CASE STUDY.

23. Composite.

24. Observer—Backing into a Pattern.

25. Abstract Server, Adapter, and Bridge.

26. Proxy and Stairway to Heaven: Managing Third Party APIs.

27. Case Study: Weather Station.

VI. THE ETS CASE STUDY.

28. Visitor.

29. State.

30. The ETS Framework.

Appendix A. UML Notation I: The CGI Example.

Appendix B. UML Notation II: The Statmux.

Appendix C. A Satire of Two Companies.

Appendix D. The Source Code Is the Design.

Index.

Need help? Get in touch