problem analysis