Object-oriented design: A goal-driven and pattern-based approach
Architectural Styles, Design Patterns, And Objects