Aspect and impact analysis: getting it right the first time