TOP-LEVEL VS. LOW-LEVEL DESIGN : UNDERSTANDING THE MAIN DISTINCTIONS