Domain UnderstandingDomain AnthropologyObject DefinitionHeuristicsHeuristic: Let objects assume responsibility for tasks that are wholly or completely delegated to other objects in cases in which the responsibility reflects natural communication patterns in the domain.Heuristic: Delegate responsibilities to get a better distribution and increase reusability.Heuristic: Use anthropomorphization and foreshadowing to determine whether an object should assume a given responsibility.Heuristic: Responsibilities should be distributed among the community of objects in a balanced manner.Heuristic: Always state responsibilities in an active voice describing a service to be performed.Heuristic: Avoid responsibilities that are characteristic specific, that focus on providing a potential user with the value of a single characteristic of the object.Heuristic: Create proxies for objects outside your domain that are sources of information required by objects within your domain.Heuristic: Look for components.