Identify and compose crosscutting concerns

Identifying and managing early as apects helps to improve modularity in the requirements and architecture design and to detect conflicting concerns early, when trade-offs can be resolved more economically [26].

Some scattered concerns might be too trivial or heterogeneous to capture separately. For instance, if a different type of auditing is required for every transaction, it's unhelpful to decouple auditing's description from its transaction description. However, if some core concepts related to auditing crosscut the other concerns, those should be collected and their points of impact recorded [26].

We identified crosscutting concerns based on crosscutting use cases (Section 5.4.4), since use cases can represent crosscutting concerns, and on legacy requirements documents [18,21,22,23,25], which have already identified some crosscutting concerns. These legacy documents were revisited in order to keep the consistency with current requirements. Thus, the identified crosscutting concerns are concurrency, distribution, exceptional handling, persistence, encryption, standards, performance, and usability. Note that we use the same name of the features (see Figure 5) in order to list the crosscutting concerns, because a concern is a kind of feature [27,28].

According to Moreira et al. [29] it is important to identify coarse-grained relationships among crosscutting concerns. It facilitates negotiation and decision-making among stakeholders. Table 3 shows how each croscutting concern affects other crosscutting concerns. The creation of Table 3 was based on legacy requirements documents [18,21,22,23,25].


Table 3: This table shows the influence of one concern on the others
Concerns \rotatebox{60}{Concurrency} \rotatebox{60}{Distribution} \rotatebox{60}{Exc.Handling} \rotatebox{60}{Performance} \rotatebox{60}{Persistence} \rotatebox{60}{Encryption} \rotatebox{60}{Standards} \rotatebox{60}{Usability}
Concurrency x X X X X
Distribution x X X
Exception x X
handling
Performance x X X
Persistence X X x
Encryption X X x
Standards X x X
Usability x


Note that Security feature (see Figure 5) is composed by Encryption and Captcha features. Although some legacy requirements documents define Security as a crosscutting concern (e.g. MDSOC [23] and Viewpoints [22]), we believe that only Encryption cuts across the system while Captcha does not.

Leonardo Tizzei 2013-02-18