Specifying redundancy tactics as crosscutting concerns using aspect-oriented modeling