DEFINING HLD VS. LOW-LEVEL DESIGN : THE DESIGN DIVIDE