Design Problem Solving: A Task Analysis