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.
Index.
Author(s): Robert C. Martin
Edition: New International Edition
Publisher: Pearson
Year: 2013
Language: English
Pages: 530