Sheet 1 / 21© in Bonn - 21 March 2006 Identification of Crosscutting in Software Design Klaas van den Berg – University of Twente José María Conejero – University of Extremadura Juan Hernández – University of Extremadura
Sheet 2 / 21© in Bonn - 21 March 2006 CC != S & T Problem statement CC = …
Sheet 3 / 21© in Bonn - 21 March 2006 Context & Motivation Steps Define crosscutting Identify crosscutting Quantify crosscutting Resolve crosscutting AOSD many solutions! what is the problem?
Sheet 4 / 21© in Bonn - 21 March 2006 Concept Diagram operationalization
Sheet 5 / 21© in Bonn - 21 March 2006 Definitions Crosscutting the tangling and/or scattering of concerns Scattering the spreading of a concern to multiple modules Tangling the intermixing of multiple concerns in a module Aspect a concern that crosscuts an artifact’s decomposition CC != S & T Needed: operationalization CC = …
Sheet 6 / 21© in Bonn - 21 March 2006 Outline Crosscutting pattern definitions of scattering, tangling and crosscutting change impact analysis Representation dependency graph dependency matrix & crosscutting matrix Application change impact analysis / examples / case studies cascaded crosscutting pattern extended crosscutting pattern Open issues
Sheet 7 / 21© in Bonn - 21 March 2006 Crosscutting Pattern source and target
Sheet 8 / 21© in Bonn - 21 March 2006
Sheet 9 / 21© in Bonn - 21 March 2006 Examples Source elementTarget element ConcernModule ConcernRequirement Use Case RequirementArchitectural element Detailed design elementImplementation element Architectural element source and target are abstractions from specific phases, levels, layers, domains,..
Sheet 10 / 21© in Bonn - 21 March 2006 Crosscutting Pattern Pattern: recurring problem and reusable solution Concepts source and target are taken from MDA However, no automated transformations are assumed!
Sheet 11 / 21© in Bonn - 21 March 2006 Crosscutting s1 s3 s4 s5 t1 t2 t3 t4 t5 s2 Elements involved both in scattering and tangling s3 crosscuts s4 source target scattering tangling
Sheet 12 / 21© in Bonn - 21 March 2006 Crosscutting Crosscutting a source element is scattered over target elements and where in at least one of these target elements, multiple source elements are tangled s1 crosscuts s2 source element s1 crosscuts source element s2 for a given mapping between source and target, if s1 is scattered over target elements and in at least one of these target elements, s1 is tangled with source element s2 s1 crosscuts s2 with respect to a mapping to and decomposition of the target
Sheet 13 / 21© in Bonn - 21 March 2006 Change Impact Examples s1 s3 s4 s5 t1 t2 t3 t4 t5 s2 Scattering: change s5 => impacted {t4, t5} Tangling: change s1 => impacted {t1, s2} Crosscutting: change s3 => impacted {t2, t3, s4} to be preserved Propagation of change impact across multiple levels Dependency graph
Sheet 14 / 21© in Bonn - 21 March 2006 Change impact change element v in the mapping (x,v) impact(x,v) = change(x,v) + (preserve(u,v) | u ← preds(v); x ≠ v) + (impact(v,w) | w ← succs(v)) preds predecessors of an element adjacent elements in backward trace succs successors of an element adjacent elements in forward trace
Sheet 15 / 21© in Bonn - 21 March 2006 Representation Dependency graph node: elements in source and target edge: dependency relation between source & target elements Dependency matrix source x target cell: dependency relation between source & target elements Crosscutting matrix source x source cell: crosscutting relation between source elements
Sheet 16 / 21© in Bonn - 21 March 2006 Crosscutting s1 s2 s3 t1 t2 t3 t4 Example s1 crosscuts s3 source = {s1, s2, s3} target = {t1, t2, t3, t4} dependency graph
Sheet 17 / 21© in Bonn - 21 March 2006 Matrices s[1] crosscuts s[3] dependency matrix target t[1]t[2]t[3]t[4] source s[1]1011S s[2]0100NS s[3]0010NS NT T crosscutting matrix source s[1]s[2]s[3] source s[1]001 s[2]000 s[3]000
Sheet 18 / 21© in Bonn - 21 March 2006 Mathematics Dependency matrix :: source x target Scattering matrix :: source x target Tangling matrix :: target x source Crosscutting product matrix :: source x source crosscutting product matrix = scattering matrix x tangling matrix matrix multiplication Crosscutting matrix :: source x source ‘normalized’ crosscutting product matrix
Sheet 19 / 21© in Bonn - 21 March 2006 Case Studies DVD System Gradecki & Lesiecki Logging Dialog system in GUI Mediator Pattern Drawing editor Adapter Pattern
Sheet 20 / 21© in Bonn - 21 March 2006 Across Life Cycle Consecutive levels or phases Traceability links between phases (e.g. concerns, requirements, architecture, design,..) Approach Cascading of crosscutting pattern Transitivity of dependency relations Matrix multiplication of dependency matrices
Sheet 21 / 21© in Bonn - 21 March 2006 Extended Crosscutting Pattern Transitivity of inter-level and intra-level dependencies
Sheet 22 / 21© in Bonn - 21 March 2006 Evaluation Identification of Crosscutting Crosscutting pattern Based on inter-level dependencies Definitions of tangling, scattering and crosscutting Formalization Matrix representation and matrix operations Operationalization of tangling, scattering and crosscutting Across consecutive phases Cascading of crosscutting pattern Extended crosscutting pattern Based on inter-level and intra-level dependencies
Sheet 23 / 21© in Bonn - 21 March 2006 Open Issues Elements in source and target granularity of decomposition composites (vs atomic elements) Dependency relations inter-level dependency types intra-level dependency types directionality and transitivity of relations Change impact in case of crosscutting number of changes (delete, add, modify) severity of changes (effort) Validation & scalability in case studies Tool support