gap statement and user need decomposition