Resource-based Verification for Robust Composition of Aspects

Aspect Oriented Software Development has been proposed as a means to improve modularization of software in the presence of crosscutting concerns. Compared to object-oriented or procedural approaches, Aspect Oriented Programming (AOP) has not yet been applied in many industrial applications. In this thesis we investigate the application of AOP within an industrial context and propose a novel solution to the problem of behavioral conflicts between aspects. We report on our experience transferring an aspect-oriented solution to a company called Advanced Semi-conductor Material Lithography (ASML). We investigate the acceptance criteria for AOP in industry, based on two industrial cases studies. We present a process that includes quantification of the benefits of AOP and elicitation of key worries expressed by stakeholders. We conducted a controlled experiment to assess the advantages and disadvantages of an aspect-based approach using a tracing example. Twenty developers from ASML were requested to carry out five maintenance scenarios. This experiment has shown that, in case the tracing concern is implemented using an AOP implementation instead of a procedural language, the development effort is on average 6% reduced while the impact of errors is reduced by 77%, for maintaining code related to tracing. For a subset of the scenarios, the results were statistically significant on a confidence interval of 95%.

[1]  Gregor Kiczales,et al.  D: A Language Framework for Distributed Programming , 1997 .

[2]  Gabriele Lenzini,et al.  Integration of Analysis Techniques in Security and Fault-Tolerance , 2005 .

[3]  Amela Karahasanovic,et al.  A survey of controlled experiments in software engineering , 2005, IEEE Transactions on Software Engineering.

[4]  Bengt Jonsson,et al.  Probabilistic Process Algebra , 2001 .

[5]  Kathi Fisler,et al.  Verifying aspect advice modularly , 2004, SIGSOFT '04/FSE-12.

[6]  Olga Tveretina,et al.  A Decision Procedure for Equality Logic with Uninterpreted Functions , 2004, AISC.

[7]  Ivan S. Zapreev Model checking Markov chains : techniques and tools , 2008 .

[8]  M. de Jonge,et al.  To reuse or to be reused. Techniques for component composition and construction , 2003 .

[9]  Mehmet Aksit,et al.  Applying AOP in an Industrial Context: An Experience Paper , 2006 .

[10]  Martin Bravenboer,et al.  Exercises in Free Syntax. Syntax Definition, Parsing, and Assimilation of Language Conglomerates , 2003 .

[11]  M. A. Valero Espada,et al.  Modal Abstraction and Replication of Processes with Data , 2005 .

[12]  Arjen van Weelden,et al.  Putting Types To Good Use , 2007 .

[13]  Mohammad Ali Abam New data structures and algorithms for mobile data , 2007 .

[14]  Uwe Hohenstein,et al.  How to Convince Industry of AOP , 2007 .

[15]  R Ronald Ruimerman,et al.  Modeling and remodeling in bone tissue , 2005 .

[16]  Joost Visser,et al.  Generic traversal over typed source code representations , 2003 .

[17]  Arie van Deursen,et al.  Discovering faults in idiom-based exception handling , 2006, ICSE '06.

[18]  Ivan Kurtev,et al.  Adaptability of model transformations , 2005 .

[19]  Istvan Nagy On the Design of Aspect-Oriented Composition Models for Software Evolution , 2006 .

[20]  Thomas Wolle,et al.  Computational aspects of treewidth : Lower bounds and network reliability , 2005 .

[21]  Jurgen Vinju,et al.  Analysis and transformation of source code by parsing and rewriting , 2005 .

[22]  Mariëlle Stoelinga,et al.  Alea jacta est : verification of probabilistic, real-time and parametric systems , 2002 .

[23]  E. Dijkstra On the Role of Scientific Thought , 1982 .

[24]  Peter Verbaan,et al.  The Computational Complexity of Evolving Systems , 2006 .

[25]  Mehmet Aksit,et al.  Reasoning About Semantic Conflicts Between Aspects , 2005 .

[26]  Aad Mathssen,et al.  Logical Calculi for Reasoning with Binding , 2008 .

[27]  Carlos José Pereira de Lucena,et al.  Modularizing design patterns with aspects: a quantitative study , 2005, AOSD '05.

[28]  Cecília M. F. Rubira,et al.  Extracting Error Handling to Aspects: A Cookbook , 2007, 2007 IEEE International Conference on Software Maintenance.

[29]  Tomas Krilavicius,et al.  Hybrid Techniques for Hybrid Systems , 2006 .

[30]  Lodewijk Bergmans,et al.  Static and Dynamic Detection of Behavioral Conflicts Between Aspects , 2007, RV.

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

[32]  Cfj Christian Lange,et al.  Assessing and improving the quality of modeling : a series of empirical studies about the UML , 2007 .

[33]  AJ Arjan Mooij,et al.  Constructive formal methods and protocol standardization , 2006 .

[34]  T. van deStorm Component-Based Configuration, Integration and Delivery , 2007 .

[35]  Anton Wijs,et al.  Silent steps in transition systems and Markov chains , 2007 .

[36]  Bastiaan Heeren,et al.  Top quality type error Messages , 2005 .

[37]  Jjd Joep Aerts Random redundant storage for video on demand , 2003 .

[38]  Tac Tim Willemse Semantics and verification in process algebras with data and timing , 2003 .

[39]  T. D. Vu,et al.  Semantics and applications of process and program algebra , 2007 .

[40]  Shmuel Katz,et al.  Aspects and Superimpositions , 1999, ECOOP Workshops.

[41]  Goran Frehse,et al.  Compositional verification of hybrid systems using simulation relations , 2005 .

[42]  Iris Loeb Natural Deduction, Sharing By Presentation , 2007 .

[43]  A. L. de Groot,et al.  Practical Automaton proofs in PVS , 2000 .

[44]  Cjf Cas Cremers Scyther : semantics and verification of security protocols , 2006 .

[45]  Shmuel Katz Aspect Categories and Classes of Temporal Properties , 2006, LNCS Trans. Aspect Oriented Softw. Dev..

[46]  Matthew B. Dwyer,et al.  Using the Bandera Tool Set to Model-Check Properties of Concurrent Java Software , 2001, CONCUR.

[47]  Marcel Kyas,et al.  Verifying OCL specifications of UML models: tool support and compositionakity , 2006 .

[48]  Robert J. Walker,et al.  An initial assessment of aspect-oriented programming , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[49]  Mattia Monga,et al.  Slicing AspectJ Woven Code , 2005 .

[50]  Cheun Ngen Chong Experiments in rights control : expression and enforcement , 2005 .

[51]  Erika Ábrahám,et al.  An Assertional Proof System for Multithreaded Java - Theory and Tool Support , 2005 .

[52]  Robert J. Walker,et al.  Evaluating Emerging Software Development Technologies: Lessons Learned from Assessing Aspect-Oriented Programming , 1999, IEEE Trans. Software Eng..

[53]  G. Rozenberg,et al.  Effective models for the structure of ð-calculus processes with replication , 2001 .

[54]  Gregor Kiczales,et al.  RG: A Case-Study for Aspect-Oriented Programming , 1997 .

[55]  Ana Sokolova,et al.  Coalgebraic analysis of probabilistic systems , 2005 .

[56]  Arie van Deursen,et al.  On the use of clone detection for identifying crosscutting concern code , 2005, IEEE Transactions on Software Engineering.

[57]  Dino Salvo Distefano,et al.  On model checking the dynamics of object-based software : a foundational approach , 2003 .

[58]  P. Shrout Quasi-experimentation: Design and analysis issues for field settings: by Thomas D. Cook and Donald T. Campbell. Chicago: Rand McNally, 1979 , 1980 .

[59]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[60]  Shmuel Katz,et al.  MAVEN: Modular Aspect Verification , 2007, TACAS.

[61]  Hojjat Adeli,et al.  Spiking Neural Networks , 2009, Int. J. Neural Syst..

[62]  Shmuel Katz,et al.  A superimposition control construct for distributed systems , 1993, TOPL.

[63]  Lodewijk Bergmans,et al.  An Object-Oriented Language-Database Integration Model: The Composition-Filters Approach , 1992, ECOOP.

[64]  Dirk Doornenbal Analysis and redesign of the compose*language , 2006 .

[65]  Sebastian Maneth,et al.  Models of tree translation , 2004 .

[66]  R van Engelen,et al.  Ideals : evolvability of software-intensive high-tech systems : a collaborative research project on maintaining complex embedded systems , 2007 .

[67]  Shari Lawrence Pfleeger,et al.  Preliminary Guidelines for Empirical Research in Software Engineering , 2002, IEEE Trans. Software Eng..

[68]  Maurice H. ter Beek,et al.  Team Automata: A Formal Approach to the Modeling of Collaboration Between System Components , 2003 .

[69]  Mohammad Reza Mousavi,et al.  Structuring structural operational semantics , 2005 .

[70]  Jeroen Eggermont,et al.  Data Mining using Genetic Programming : Classification and Symbolic Regression , 2005 .

[71]  Ricardo Corin,et al.  Analysis Models for Security Protocols , 2006 .

[72]  Ichiro Hasuo,et al.  Tracing Anonymity with Coalgebras , 2008 .

[73]  Nikolay Kavaldjiev,et al.  A run-time reconfigurable Network-on-Chip for streaming DSP applications , 2006 .

[74]  John Dawes,et al.  The VDM-SL Reference Guide , 1991 .

[75]  Laurence Duchien,et al.  CompAr: Ensuring Safe Around Advice Composition , 2005, FMOODS.

[76]  Arie van Deursen,et al.  Simple crosscutting concerns are not so simple: analysing variability in large-scale idioms-based implementations , 2007, AOSD.

[77]  Mario Südholt,et al.  An expressive aspect language for system applications with Arachne , 2005, AOSD '05.

[78]  RJ Roy Willemen,et al.  School timetable construction : algorithms and complexity , 2002 .

[79]  Mehmet Aksit,et al.  Formal model for SECRET , 2005 .

[80]  Kim B. Clark,et al.  Design Rules: The Power of Modularity Volume 1 , 1999 .

[81]  Laura Brandán Briones,et al.  Theories for Model-based Testing: Real-time and Coverage , 2007 .

[82]  Atze Dijkstra Stepping through Haskell , 2000 .

[83]  Lodewijk Bergmans,et al.  Composing Aspects at Shared Join Points , 2005, NODe/GSEM.

[84]  Anton Wijs,et al.  What to do next? Analysing and optimising system behaviour in time , 2007 .

[85]  A. J. de Roo Towards More Robust Advice: Message Flow Analysis for Composition Filters and its Application , 2007 .

[86]  Anand R. Tripathi,et al.  Data abstraction mechanisms in SINA/ST , 1988, OOPSLA '88.

[87]  Michael Eichberg,et al.  Integrating and Scheduling an Open Set of Static Analyses , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[88]  de Ism Ivo Jong Integration and test strategies for complex manufacturing machines , 2008 .

[89]  Bastiaan Stephan Graaf,et al.  Model-Driven Evolution of Software Architectures , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[90]  M. T. de Berg,et al.  Multi-functional geometric data structures , 2003 .

[91]  Dmitri Jarnikov,et al.  QoS framework for video streaming in home networks , 2007 .

[92]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[93]  Jean-Marc Jézéquel,et al.  Design by Contract: The Lessons of Ariane , 1997, Computer.

[94]  Daan Leijen,et al.  The λ Abroad - A Functional Approach to Software Components , 2003 .

[95]  Magiel Bruntink,et al.  Renovation of idiomatic crosscutting concerns in embedded systems , 2005 .

[96]  Michel A. Reniers,et al.  Hybrid process algebra , 2005, J. Log. Algebraic Methods Program..

[97]  Marius Adrian Marin,et al.  An Integrated System to Manage Crosscutting Concerns in Source Code , 2008 .

[98]  Hui Gao,et al.  Design and verification of lock-free parallel algorithms , 2005 .

[99]  Arend Rensink,et al.  A Graph-Transformation-Based Semantics for Analysing Aspect Interference , 2006 .

[100]  N.J.M. van den Nieuwelaar,et al.  Supervisory machine control by predictive-reactive scheduling , 2004 .

[101]  Reinder J. Bril,et al.  Real-time scheduling for media processing using conditionally guaranteed budgets , 2004 .

[102]  Martijn Hendriks,et al.  Model checking timed automata : techniques and applications , 2006 .

[103]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[104]  Wolter Pieters,et al.  La volonté machinale: understanding the electronic voting controversy , 2008 .

[105]  Carlos José Pereira de Lucena,et al.  Composing design patterns: a scalability study of aspect-oriented programming , 2006, AOSD.

[106]  Martijn Warnier,et al.  Language based security for Java and JML , 2006 .

[107]  R. Boumen,et al.  Integration and test plans for complex manufacturing systems , 2007 .

[108]  Eelco Dolstra,et al.  The purely functional software deployment model , 2006 .

[109]  Nancy A. Lynch,et al.  Atomic Transactions: In Concurrent and Distributed Systems , 1993 .