Recommended Literature and additional Resources
Core Recommendations
- Martin, Robert. Agile Software Development. Principles, Patterns, and Practices. Pearson US Imports & PHIPEs.
- Craig Larman. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development
- Gamma, E. et al. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley.e
Further Recommendations
- Booch, G. Object-Oriented Analysis and Design with Applications. Addison-Wesley.
- Budd, T. Introduction to Object-Oriented Programming. 2nd. ed., Addison-Wesley.
- Buschmann, F. et al. Pattern-Oriented Software Architecture: A System of Patterns. John Wiley & Sons.
- Czarnecki, K. and Eisenecker, U. Generative Programming. Addison-Wesley.
- Freeman, E. and E, Head First Design Patterns. O'Reilly.
- Garland, D. and Shaw, M. Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall.
- Riel, A. Object-Oriented Design Heuristics. Addison-Wesley.
Patterns
- Beck, Kent Smalltalk Best Practice Patterns. Prentice Hall.
- Coplien, J. et al. Organizational Patterns http://www.bell-labs.com/cgi-user/OrgPatterns/OrgPatterns?OrganizationalPatterns
- Fowler, Martin. Patterns of Enterprise Application Architecture. Addison-Wesley.
- Gabriel, R.P. Patterns of Software http://www.dreamsongs.com/
- Schmidt, D. et al. Pattern-Oriented Software Architecture, Vol. 2: Patterns for Concurrent and Networked Objects. John Wiley & Sons.
- There is a Design Patterns Homepage: http://www.hillside.net/patterns/
- Brian Foote deals with design patterns in a somewhat humorous way.
Brian Foote's Paper Index - GoF patterns in .NET: http://www.dofactory.com/Patterns/Patterns.aspx
- The Design Patterns page of the Portland Pattern Repository: http://c2.com/cgi/wiki?CategoryPattern
General Object-Oriented Programming
Frameworks
- Fayad, M. E. et al. Building Application Frameworks. John Wiley & Sons
- Froehlich, G. et al. Designing Object-Oriented Frameworks. This deals with key issues in the design of object-oriented frameworks. (PDF document)
Specific Object-Oriented Languages
- Korienek, G. et al. Squeak: A Quick Trip to ObjectLand. Addison-Wesley.
- Beta is a somewhat “different” yet object-oriented language in the “Scandinavian” tradition of Simula.
Beta homepage - C++:
Understanding C++: An Accelerated Introduction
Bjarne Stroustrup's homepage - Java. The Java Tutorial
- MultiJava is an extension to the Java programming language that facilitates multiple dispatch of method calls.
The MultiJava Project Homepage - Python is an object-oriented scripting language.
Python Homepage - Smalltalk is perhaps, for those who know it, the object-oriented language.
The Squeak system is a fully complete open source implementation.
VisualWorks , another Smalltalk system, is free for non-commercial use.