Cognitive Patterns: Problem-Solving Frameworks for Object Technology