Object-oriented design: A goal-driven and pattern-based approach · Study