Object Oriented Design
Learning Objective
• Apply the CRC (Class Responsibility Collaborator) technique to
analyze and design the object-oriented model for a problem.
• Articulate the difference between design and architecture.
• Describe ‘design phase’ as a necessary transition step between
problem description and solution implementation.
• Differentiate uses of the word ‘design’:
o (1) design as phase in development process,
o (2) design as work-product (UML diagram)
• Describe large scale designs, and small scale designs.
• Explain how qualities are often tradeoffs, balancing competing
qualities.
• Demonstrate how to breakdown a problem in terms that a
customer can understand.
• Demonstrate using index cards to help represent the breakdown
of the problem where each card notes a specific concept (class)
and its responsibilities and collaborators (dependencies to other
concepts/classes)
Design Patterns
Learning Objectives
• Describe the intent, applicability, and consequences of basic
creational design patterns (e.g., factory method, singleton).
• Explain the structure of a design pattern using a UML class
diagram.
• Explain the behaviour of a design pattern using a UML sequence
diagram
• Derive a Java realization of a design pattern.
Describe the intent, applicability, and consequences of structural
design patterns (e.g., adapter, composite, decorator, proxy).