Join point designation diagrams: a visual design notation for join point selections in aspect-oriented software development

Sharing knowledge about program specifications is a crucial task in collaborative software development. Developers need to be able to properly assess the objectives of the program specification in order to adequately deploy or evolve a piece of program. The specification of join point selections (also known as "pointcuts") in Aspect-Oriented Software Development (AOSD) is a piece of a program which frequently tends to grow quite complex, in particular if the join point selections involve selection constraints on the dynamic execution history of the program. In that case, readers of the pointcut specification frequently find themselves confronted with considerable comprehension problems because they need to inspect and realize an intricate and fragmented program specification in order to reconstruct the true objectives of the join point selection. This thesis presents Join Point Designation Diagrams (JPDDs) as a possible solution to the problem. JPDDs are a visual notation that provides an extensive set of join point selection means which are consolidated from a variety of contemporary aspect-oriented programming languages. JPDDs are capable of highlighting different join point selection constraints depending on the conceptual view on program execution which underlies the join point selection. With the help of these means, JPDDs are capable of representing complex join point selections on the dynamic execution of a program in a succinct and concise manner. JPDDs may be used by software developers of different aspect-oriented programming languages to represent their join point selections for the sake of an improved comprehensibility of the join point selections and – thus – for the sake of an easier communication between software developers. This thesis gives empirical evidence that JPDDs indeed facilitate the comprehensibility of join point selections. To do so, it conducts a controlled experiment which compares JPDDs to equivalent pointcut implementations in an aspect-oriented programming language. The experiment shows that JPDDs have a clear benefit over their codified counterparts in most of the case, while only in few cases no such benefit could be measured.

[1]  João Araújo,et al.  MATA: A Unified Approach for Composing UML Aspect Models Based on Graph Transformation , 2009, LNCS Trans. Aspect Oriented Softw. Dev..

[2]  J. Mauchly Significance Test for Sphericity of a Normal $n$-Variate Distribution , 1940 .

[3]  José María Conejero,et al.  Analysis of Crosscutting in Early Software Development Phases Based on Traceability , 2007, LNCS Trans. Aspect Oriented Softw. Dev..

[4]  Hiroyuki Seki,et al.  A Labeled Transition Model A-LTS for History-Based Aspect Weaving and Its Expressive Power , 2007, IEICE Trans. Inf. Syst..

[5]  Rémi Douence,et al.  A Framework for the Detection and Resolution of Aspect Interactions , 2002, GPCE.

[6]  Daniel Amyot,et al.  Towards semantic-based aspect interaction detection , 2008 .

[7]  Tzilla Elrad,et al.  Joinpoint Inference from Behavioral Specification to Implementation , 2007, ECOOP.

[8]  Jürgen Graf,et al.  Using pointcut delta analysis to support evolution of aspect-oriented software , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[9]  G. Glass,et al.  Consequences of Failure to Meet Assumptions Underlying the Fixed Effects Analyses of Variance and Covariance , 1972 .

[10]  Robert J. Walker,et al.  Implementing protocols via declarative event patterns , 2004, SIGSOFT '04/FSE-12.

[11]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[12]  Gustavo Alonso,et al.  Dynamic weaving for aspect-oriented programming , 2002, AOSD '02.

[13]  Optimizing JAsCo dynamic AOP through HotSwap and Jutta , 2004 .

[14]  Stefan Hanenberg,et al.  On Relationships Between Query Models , 2005, ECMDA-FA.

[15]  Gustavo Alonso,et al.  Just-in-time aspects: efficient dynamic weaving for Java , 2003, AOSD '03.

[16]  H. H. Ku,et al.  Contributions to Probability and Statistics, Essays in Honor of Harold Hotelling. , 1961 .

[17]  Jacques Klein,et al.  Weaving Multiple Aspects in Sequence Diagrams , 2007, LNCS Trans. Aspect Oriented Softw. Dev..

[18]  Nape rvile Using Aspects to Abstract and Modularize Statecharts , 2004 .

[19]  Kim Mens,et al.  Co-evolving code and design with intensional views: A case study , 2005, Comput. Lang. Syst. Struct..

[20]  Stefan Hanenberg,et al.  Expressing different conceptual models of join point selections in aspect-oriented design , 2006, AOSD.

[21]  Hidehiko Masuhara,et al.  Dataflow Pointcut in Aspect-Oriented Programming , 2003, APLAS.

[22]  Karl Lieberherr,et al.  Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns , 1995 .

[23]  Jacques Klein,et al.  Aspect-oriented multi-view modeling , 2009, AOSD '09.

[24]  Mira Mezini,et al.  Expressive Pointcuts for Increased Modularity , 2005, ECOOP.

[25]  Ben Shneiderman,et al.  Program indentation and comprehensibility , 1983, CACM.

[26]  Anneke Kleppe,et al.  The Object Constraint Language: Getting Your Models Ready for MDA , 2003 .

[27]  Kim Mens,et al.  Managing the Evolution of Aspect-Oriented Software with Model-Based Pointcuts , 2006, ECOOP.

[28]  G. Box Some Theorems on Quadratic Forms Applied in the Study of Analysis of Variance Problems, I. Effect of Inequality of Variance in the One-Way Classification , 1954 .

[29]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[30]  Moshé M. Zloof Query-by-Example: A Data Base Language , 1977, IBM Syst. J..

[31]  Ramnivas Laddad,et al.  Aspectj in Action: Practical Aspect-Oriented Programming , 2003 .

[32]  Stefan Hanenberg,et al.  A UML-based aspect-oriented design notation for AspectJ , 2002, AOSD '02.

[33]  H. Huynh,et al.  Estimation of the Box Correction for Degrees of Freedom from Sample Data in Randomized Block and Split-Plot Designs , 1976 .

[34]  S. Chiba,et al.  Remote pointcut: a language construct for distributed AOP , 2004, AOSD '04.

[35]  Wim Vanderperren,et al.  Stateful Aspects in JAsCo , 2005, SC@ETAPS.

[36]  Sérgio Soares,et al.  Implementing distribution and persistence aspects with aspectJ , 2002, OOPSLA '02.

[37]  Hidehiko Masuhara,et al.  A Compilation and Optimization Model for Aspect-Oriented Programs , 2003, CC.

[38]  Alexander Knapp,et al.  Enhancing UML state machines with aspects , 2007, MODELS'07.

[39]  Robert F. Cohen,et al.  An experimental study of the basis for graph drawing algorithms , 1997, JEAL.

[40]  Ruzanna Chitchyan,et al.  Persistence as an aspect , 2003, AOSD '03.

[41]  Jacques Klein,et al.  Semantic-based weaving of scenarios , 2006, AOSD.

[42]  S. Shapiro,et al.  An Analysis of Variance Test for Normality (Complete Samples) , 1965 .

[43]  Ralf Lämmel,et al.  What does aspect-oriented programming mean to Cobol? , 2005, AOSD '05.