Identifying Crosscutting Concerns Using Fan-in Analysis