Information Technology Reference
In-Depth Information
element (course granularity), or one could consider each operation and each attribute
as separate elements (fine granularity). There is a clear compositional relation
between a class and its attributes and operations. At course granularity, there could be
tangling in mapping two concerns to a single class. At fine granularity, one concern
could be mapped to an attribute and another concern to an operation, with no tangling
in that decomposition. However, in the latter case, one has to consider the intra-level
relationships as well (see Sect. 6.3).
There are usually alternative decompositions both in source and target, and
alternative mappings between source and target. One has to compare combinations of
alternative compositions on quality attributes such as adaptability, reusability and
maintainability. In the last two case studies shown in Sect. 5.5, we presented two
different decompositions of the same problem. On the one hand we decomposed the
system using a traditional object-oriented model. On the other hand we used an
aspect-oriented approach recently presented (see [26]) in order to model crosscutting
concerns. As we showed in that example, depending on the selected decomposition,
the results obtained applying the framework may be different, in some cases removing
crosscutting concerns from the system. However, in order to detect the cases where
aspect-oriented techniques should be used, we need the identification of crosscutting
concerns in the system. The framework presented here is focused on such
identification. Moreover the study of the values obtained in the crosscutting product
matrix may help to assess the degree in which crosscutting is removed from the
system.
6.3 Indirect Trace Dependencies
Elements at a certain level usually have some relationship with other elements at the
same level (intra-level relationships): they are coupled. There are many coupling
types: generalization/specialization, aggregation, data coupling, control coupling,
message coupling, and so on. In the case of a dependency relation of a source element
and a target element, which itself is coupled to a second target element, one could also
conceive a dependency relation between the source element and the second target
element.
Intra-level trace dependencies combined with inter-level trace dependencies may
cause dependencies, which we call an indirect trace dependency based on a pseudo-
transitivity which can be described as follows. Assume source element s[i] has a
coupling relation R' with source element s[j] (see Fig. 14 ). Moreover, source element
s[j] has a dependency relation R with target element t[k]. Then the indirect
dependency relation is ( s[i] R' s[j] )
( s[j] R t[k] ) ⇒ ( s[i] R' R t[k] ). In the same
way, assume source element s[i] has a dependency relation R with target element t[j]
and target element t[j] is coupled with target element t[k] by means of R'. In that case
the indirect dependency relation is ( s[i] R t[j] )
( t[j] R' t[k] ) ⇒ ( s[i] R R' t[k] ).
One should clearly distinguish the direct (inter-level) dependency relation from this
indirect dependency relation. Once we have identified all the direct dependencies, we
must consider the possible indirect dependency relationships emerged from coupling
relations. Intuitively, we are considering such relationships in the different case
studies we showed in Sect. 5. For instance, in the CRS example in Sect. 5.4, we
Search WWH ::




Custom Search