A Goal Decomposition Approach for Automatic Mashup Development