HIGH-LEVEL DESIGN VS. LLD : UNDERSTANDING THE SOLUTION SEPARATION