Renovation of idiomatic crosscutting concerns in embedded systems

Crosscutting concerns are phenomena that are present in almost any (embedded) software system. They arise if the implementation of a concern "a requirement or design decision" does not fit neatly into the modular decomposition of a software system. A crosscutting concern cannot be confined to a single modular unit and therefore becomes scattered across the system and tangled with other concerns. This thesis focuses on the specific class of idiomatic crosscutting concerns, which are crosscutting concerns that are idiomatic in the sense that they are implemented manually by applying an idiom, resulting in many similar pieces of source code. The approach taken is that of renovation, i.e., a step-wise improvement process aimed at easing the evolution of legacy software systems. The legacy software system that is studied in this thesis is the (embedded) control software of an ASML wafer scanner, a device used in the manufacturing process of integrated circuits. This software system consists of 15 million lines of C code. We study whether the use of AOP is beneficial compared to the idiomatic style of implementation used in the ASML software system.

[1]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

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

[3]  Paolo Tonella,et al.  A Survey of Automated Code-Level Aspect Mining Techniques , 2007, LNCS Trans. Aspect Oriented Softw. Dev..

[4]  Richard C. Holt Structural manipulations of software architecture using Tarski relational algebra , 1998, Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261).

[5]  Martijn van Veelen,et al.  Considerations on modeling for early detection of abnormalities in locally autonomous distributed systems , 2007 .

[6]  Bahareh Badban,et al.  Verification Techniques for Extensions of Equality Logic , 2006 .

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

[8]  Sriram K. Rajamani,et al.  The SLAM project: debugging system software via static analysis , 2002, POPL '02.

[9]  Murray Hill,et al.  Lint, a C Program Checker , 1978 .

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

[11]  Gregor Kiczales,et al.  Using aspectC to improve the modularity of path-specific customization in operating system code , 2001, ESEC/FSE-9.

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

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

[14]  Kevin A. Schneider,et al.  HSML: design directed source code hot spots , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[15]  Serge Demeyer,et al.  Reconstruction of successful software evolution using clone detection , 2003, Sixth International Workshop on Principles of Software Evolution, 2003. Proceedings..

[16]  Michael Dyer The Cleanroom Approach to Quality Software Development , 1992, Int. CMG Conference.

[17]  M. Kyas Verifying OCL Specifications of UML models , 2006 .

[18]  William G. Griswold,et al.  Design Recommendations for Concern Elaboration Tools , 2005 .

[19]  Niels P. Veerman Revitalizing modifiability of legacy assets , 2004, J. Softw. Maintenance Res. Pract..

[20]  Andrew Walenstein,et al.  Clone Detector Evaluation Can Be Improved: Ideas from Information Retrieval , 2003 .

[21]  M. Bruntink Aspect Mining using Clone Class Metrics Magiel Bruntink , 2022 .

[22]  N. Schneidewind,et al.  Towards an Ontology of software maintenance , 1999 .

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

[24]  Jan A. Bergstra,et al.  The Discrete Time TOOLBUS - A Software Coordination Architecture , 1998, Science of Computer Programming.

[25]  T. van der Storm Component-based configuration, integration and delivery , 2003 .

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

[27]  Edward N. Adams,et al.  Optimizing Preventive Service of Software Products , 1984, IBM J. Res. Dev..

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

[29]  Stefan Hanenberg,et al.  Refactoring of Aspect-Oriented Software , 2003 .

[30]  Andy Schürr,et al.  GXL: toward a standard exchange format , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

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

[32]  Maria Eva Magdalena Lijding,et al.  Real-Time Scheduling of Tertiary Storage , 2003 .

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

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

[35]  Arie van Deursen,et al.  Program plan recognition for Year 2000 tools , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

[36]  Bram Adams,et al.  Aspect orientation for C: express yourself , 2005 .

[37]  Gilad Mishne,et al.  Source Code Retrieval using Conceptual Similarity , 2004, RIAO.

[38]  Ralf Lämmel,et al.  Parse-tree annotations meet re-engineering concerns , 2003, Proceedings Third IEEE International Workshop on Source Code Analysis and Manipulation.

[39]  B. Gebremichael-Tesfagiorgis,et al.  Expressivity of Timed Automata Models , 2006 .

[40]  Bram Adams,et al.  An aspect for idiom-based exception handling: (using local continuation join points, join point properties, annotations and type parameters) , 2007, SPLAT.

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

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

[43]  Sorin Lerner,et al.  ESP: path-sensitive program verification in polynomial time , 2002, PLDI '02.

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

[45]  Michael Stonebraker,et al.  Migrating Legacy Systems: Gateways, Interfaces, and the Incremental Approach , 1995 .

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

[47]  Leon Moonen,et al.  Java quality assurance by detecting code smells , 2002, Ninth Working Conference on Reverse Engineering, 2002. Proceedings..

[48]  Yee Wei Law,et al.  Key management and link-layer security of wireless sensor networks : Energy-efficient attack and defense , 2005 .

[49]  Dawson R. Engler,et al.  Checking system rules using system-specific, programmer-written compiler extensions , 2000, OSDI.

[50]  Dean Jin,et al.  Ontology-based software analysis and reengineering tool integration: the OASIS service-sharing methodology , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[51]  Radu Marinescu,et al.  Measurement and Quality in Object-Oriented Design , 2005, ICSM.

[52]  den Jeremy Ian Hartog,et al.  Probabilistic Extensions of Semantical Models , 2002 .

[53]  Chen Fu,et al.  Robustness testing of Java server applications , 2005, IEEE Transactions on Software Engineering.

[54]  David B. Stewart,et al.  A study of the applicability of existing exception-handling techniques to component-based real-time software technology , 1998, TOPL.

[55]  Siegfried Nijssen Mining Structured Data , 2006 .

[56]  Hartmut Peter Benz,et al.  Casual Multimedia Process Annotations -- CoMPAs , 2003 .

[57]  W.N. Toy,et al.  Fault-tolerant design of local ESS processors , 1978, Proceedings of the IEEE.

[58]  William R. Bush,et al.  A static analyzer for finding dynamic programming errors , 2000, Softw. Pract. Exp..

[59]  V Victor Bos,et al.  Formal specification and analysis of industrial systems , 2002 .

[60]  Václav Rajlich,et al.  Removing clones from the code , 1999, J. Softw. Maintenance Res. Pract..

[61]  Arie van Deursen,et al.  The ASF+SDF Meta-environment: A Component-Based Language Development Environment , 2001 .

[62]  Barry W. Boehm,et al.  Software Engineering Economics , 1993, IEEE Transactions on Software Engineering.

[63]  F. Bartels,et al.  On Generalised Coinduction and Probabilistic Specification Formats , 2004 .

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

[65]  Wpaj Wil Michiels Performance ratios for the differencing method , 2004 .

[66]  M. Ceccato,et al.  Applying and combining three different aspect Mining Techniques , 2006, Software Quality Journal.

[67]  Eelco Visser,et al.  Scannerless Generalized-LR Parsing , 1997 .

[68]  A. J. Markvoort Towards hybrid molecular simulations , 2006 .

[69]  Emily Hill,et al.  Design and Evaluation of an Automated Aspect Mining Tool , 2004, Software Engineering Research and Practice.

[70]  Sander M. Bohte,et al.  Spiking Neural Networks , 2003 .

[71]  James M. Purtilo,et al.  Parse tree annotations , 1989, CACM.

[72]  H.M.A. van Beek,et al.  Specification and analysis of Internet applications , 2005 .

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

[74]  Cecília M. F. Rubira,et al.  Exceptions and aspects: the devil is in the details , 2006, SIGSOFT '06/FSE-14.

[75]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[76]  Gordon S. Blair,et al.  On the Separation of Concerns in Program Families , 2004 .

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

[78]  Ansgar Fehnker,et al.  Citius, Vilius, Melius : guiding and cost-optimality in model checking of timed and hybrid systems , 2002 .

[79]  Narain H. Gehani,et al.  Exceptional C or C with exceptions , 1992, Softw. Pract. Exp..

[80]  Arie van Deursen,et al.  A Systematic Aspect-Oriented Refactoring and Testing Strategy, and its Application to JHotDraw , 2005, ArXiv.

[81]  Daniel P. Friedman,et al.  Aspect-Oriented Programming is Quantification and Obliviousness , 2000 .

[82]  Linda Mary Wills,et al.  Automated program recognition by graph parsing , 1992 .

[83]  Timothy Lethbridge,et al.  The Dagstuhl Middle Metamodel: A Schema For Reverse Engineering , 2004, ateM.

[84]  Chris Verhoef,et al.  Scaffolding for software renovation , 2000, Proceedings of the Fourth European Conference on Software Maintenance and Reengineering.

[85]  Richard T. Snodgrass,et al.  Supporting Flexible and Efficient Tool Integration , 1986, Advanced Programming Environments.

[86]  Lerina Aversano,et al.  How Clones are Maintained: An Empirical Study , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

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

[88]  Ira D. Baxter,et al.  Design maintenance systems , 1991, CACM.

[89]  Juan Visente Guillen Scholten,et al.  Mobile Channels for Exogenous Coordination of Distributed Systems: Semantics, Implementation and Composition , 2007 .

[90]  Gregor Snelting,et al.  Assessing Modular Structure of Legacy Code Based on Mathematical Concept Analysis , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[91]  Martin P. Robillard,et al.  Static analysis to support the evolution of exception structure in object-oriented systems , 2003, TSEM.

[92]  Colin Potts,et al.  Software-engineering research revisited , 1993, IEEE Software.

[93]  James Coplien,et al.  Advanced C++ Programming Styles and Idioms , 1991, Proceedings. Technology of Object-Oriented Languages and Systems, TOOLS 25 (Cat. No.97TB100239).

[94]  Hans-Arno Jacobsen,et al.  Quantifying aspects in middleware platforms , 2003, AOSD '03.

[95]  Jeroen Doumen,et al.  Searching in encrypted data , 2004 .

[96]  João M. Fernandes,et al.  Refactoring a Java code base to AspectJ: an illustrative example , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

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

[98]  Elliot Soloway,et al.  Designing documentation to compensate for delocalized plans , 1988, CACM.

[99]  Magiel Bruntink,et al.  Linking Analysis and Transformation Tools with Source-Based Mappings , 2006, 2006 Sixth IEEE International Workshop on Source Code Analysis and Manipulation.

[100]  Jens Krinke,et al.  Aspect mining using event traces , 2004, Proceedings. 19th International Conference on Automated Software Engineering, 2004..

[101]  Ys Yaroslav Usenko,et al.  Linearization in muCRL , 2002 .

[102]  James R. Cordy,et al.  The TXL source transformation language , 2006, Sci. Comput. Program..

[103]  Cruz Filipe,et al.  Constructive real analysis : a type-theoretical formalization and applications , 2004 .

[104]  Ka Lok Man,et al.  Formal specification and analysis of hybrid systems , 2006 .

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

[106]  A. vanDeursen De software-evolutieparadox , 2005 .

[107]  Miryung Kim,et al.  An empirical study of code clone genealogies , 2005, ESEC/FSE-13.

[108]  Atze Dijkstra Stepping through Haskell , 2000 .

[109]  de Hayco Jong Flexible heterogeneous software systems , 2007 .

[110]  Y Yuechen Qian,et al.  Data synchronization and browsing for home environments , 2004 .

[111]  John B. Goodenough,et al.  Exception handling: issues and a proposed notation , 1975, CACM.

[112]  Andy Zaidman,et al.  Regaining lost knowledge through dynamic analysis and aspect orientation $an industrial experience report , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

[113]  Marilyn W. Bush Improving software quality: the use of formal inspections at the JPL , 1990, ICSE '90.

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

[115]  Hans-Arno Jacobsen,et al.  PRISM is research in aSpect mining , 2004, OOPSLA '04.

[116]  J. Ketema,et al.  Bohm-Like Trees for Rewriting , 2006 .

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

[118]  Daniel R. Tauritz,et al.  Adaptive Information Filtering: Concepts and Algorithms , 2002 .

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

[120]  Fergus Nicol,et al.  Patterns of Software: Tales from the Software Community , 1998 .

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

[122]  Joost Noppen,et al.  Imperfect Information in Software Design Processes , 2007 .

[123]  Mark Lillibridge,et al.  Extended static checking for Java , 2002, PLDI '02.

[124]  Miryung Kim,et al.  An ethnographic study of copy and paste programming practices in OOPL , 2004, Proceedings. 2004 International Symposium on Empirical Software Engineering, 2004. ISESE '04..

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

[126]  Jens Krinke,et al.  Identifying similar code with program dependence graphs , 2001, Proceedings Eighth Working Conference on Reverse Engineering.

[127]  F. Alkemade,et al.  Evolutionary agent-based economics , 2004 .

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

[129]  Brian A. Malloy,et al.  Program annotation in XML: a parse-tree based approach , 2002, Ninth Working Conference on Reverse Engineering, 2002. Proceedings..

[130]  Michael Mortensen Hewlett-Packard Refactoring Idiomatic Exception Handling in C + + : Throwing and Catching Exceptions with Aspects , 2007 .

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

[132]  Hausi A. Müller,et al.  A reverse-engineering approach to subsystem structure identification , 1993, J. Softw. Maintenance Res. Pract..

[133]  Ran Ettinger,et al.  Untangling: a slice extraction refactoring , 2004, AOSD '04.

[134]  Atul Prakash,et al.  A Framework for Source Code Search Using Program Patterns , 1994, IEEE Trans. Software Eng..

[135]  Flaviu Cristian,et al.  Exception Handling and Tolerance of Software Faults , 1995 .

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

[137]  Christopher G. Lasater,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[138]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[139]  William G. Griswold,et al.  Exploiting the map metaphor in a tool for software evolution , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[140]  Meir M. Lehman,et al.  Program evolution: processes of software change , 1985 .

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

[142]  Arie van Deursen,et al.  Building documentation generators , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[143]  Andrew Clement,et al.  Large-scale AOSD for middleware , 2004, AOSD '04.

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

[145]  Andres Löh,et al.  Exploring generic Haskell , 2004 .

[146]  Serge Demeyer,et al.  Evaluating clone detection techniques from a refactoring perspective , 2004 .

[147]  Susan Horwitz,et al.  Using Slicing to Identify Duplication in Source Code , 2001, SAS.

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

[149]  Thomas W. Reps,et al.  Identifying Modules via Concept Analysis , 1999, IEEE Trans. Software Eng..

[150]  Mark Harman,et al.  Automated refactoring of object oriented code into aspects , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

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

[152]  Christian Lindig Fast Concept Analysis , 2000 .

[153]  J. Howard Johnson,et al.  Identifying redundancy in source code using fingerprints , 1993, CASCON.

[154]  Rudolf Ferenc,et al.  Data exchange with the columbus schema for c++ , 2002, Proceedings of the Sixth European Conference on Software Maintenance and Reengineering.

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

[156]  Cristina V. Lopes,et al.  A study on exception detection and handling using aspect-oriented programming , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[157]  Martin P. Robillard,et al.  Regaining Control of Exception Handling , 1999 .

[158]  Gail C. Murphy,et al.  Managing crosscutting concerns during software evolution tasks: an inquisitive study , 2002, AOSD '02.

[159]  James R. Cordy Generalized Selective XML Markup of Source Code Using Agile Parsing , 2003, IWPC.

[160]  M. Niqui,et al.  Formalising Exact Arithmetic. Representations, Algorithms and Proofs , 2004 .

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

[162]  Robert S. Arnold Software Reengineering , 1993 .

[163]  Mariano Ceccato,et al.  Aspect mining through the formal concept analysis of execution traces , 2004, 11th Working Conference on Reverse Engineering.

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

[165]  P. Zoeteweij,et al.  Composing constraint solvers , 2005 .

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

[167]  John W. Perry Advanced C Programming by Example , 1998 .

[168]  William G. Griswold,et al.  Automated support for program refactoring using invariants , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[169]  Arie van Deursen,et al.  Isolating idiomatic crosscutting concerns , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[170]  B. Littlewood,et al.  Dependability assessment of software-based systems: state of the art , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

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

[172]  Simona Orzan,et al.  On Distributed Verification and Verified Distribution , 2004 .

[173]  Andrian Marcus,et al.  Identification of high-level concept clones in source code , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[174]  P. A. Lee Exception handling in C programs , 1983, Softw. Pract. Exp..

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

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

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

[178]  Brenda S. Baker,et al.  On finding duplication and near-duplication in large software systems , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[179]  C.-B. Breunesse On JML: topics in tool-assisted verification of Java programs , 2006 .

[180]  Bernhard Ganter,et al.  Formal Concept Analysis: Mathematical Foundations , 1998 .

[181]  Magdalena Balazinska,et al.  Advanced clone-analysis to support object-oriented system refactoring , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

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

[183]  Gregor Kiczales,et al.  Overcoming the Prevalent Decomposition in Legacy Code , 2001 .

[184]  Paul Anderson,et al.  Tool Support for Fine-Grained Software Inspection , 2003, IEEE Softw..

[185]  T. Kuipers,et al.  Techniques for understanding legacy software systems , 2002 .

[186]  M. B. van der Zwaag,et al.  Models and logics for process algebra , 2002 .

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

[188]  James R. Cordy,et al.  How to make a bridge between transformation and analysis technologies? , 2005, Transformation Techniques in Software Engineering.

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

[190]  Ettore Merlo,et al.  Experiment on the automatic detection of function clones in a software system using metrics , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[191]  Kevin A. Schneider,et al.  Processing software source text in automated design recovery and transformation , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

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

[193]  Harald Winroth Exception Handling in ANSI C , 1993 .

[194]  Chris Verhoef,et al.  Generation of components for software renovation factories from context-free grammars , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

[195]  Arie van Deursen,et al.  An initial experiment in reverse engineering aspects , 2004, 11th Working Conference on Reverse Engineering.

[196]  Leon Moonen,et al.  Exploring software systems , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[197]  Stanley M. Sutton,et al.  Multi-Dimensional Separation of Concerns , 1999 .

[198]  David A. Wagner,et al.  MOPS: an infrastructure for examining security properties of software , 2002, CCS '02.

[199]  Martijn M. Schrage,et al.  Proxima: a presentation-oriented editor for structured documents , 2000 .

[200]  Yun Yang,et al.  Problems creating task-relevant clone detection reference data , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

[201]  S. P. Luttik Choice quantification in process algebra , 2002 .

[202]  Shinji Kusumoto,et al.  CCFinder: A Multilinguistic Token-Based Code Clone Detection System for Large Scale Source Code , 2002, IEEE Trans. Software Eng..

[203]  Mark Harman,et al.  Tool-Supported Refactoring of Existing Object-Oriented Code into Aspects , 2006, IEEE Transactions on Software Engineering.

[204]  Leon Moonen,et al.  Generating robust parsers using island grammars , 2001, Proceedings Eighth Working Conference on Reverse Engineering.

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

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

[207]  Michael Eichberg,et al.  Enforcing system-wide properties , 2004, 2004 Australian Software Engineering Conference. Proceedings..

[208]  Junfeng Yang,et al.  Using model checking to find serious file system errors , 2004, TOCS.

[209]  Michael W. Godfrey,et al.  "Cloning Considered Harmful" Considered Harmful , 2006, 2006 13th Working Conference on Reverse Engineering.

[210]  Ling Cheung,et al.  Reconciling nondeterministic and probabilistic choices , 2006 .

[211]  Arie van Deursen,et al.  Research Issues in the Renovation of Legacy Systems , 1999, FASE.

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

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

[214]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[215]  Stéphane Ducasse,et al.  Tool Support for Refactoring Duplicated OO Code , 1999, ECOOP Workshops.

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

[217]  Dean W. Gonzalez,et al.  “=” considered harmful , 1991, ALET.

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

[219]  Oscar Nierstrasz,et al.  Object-oriented reengineering patterns , 2004, Proceedings. 26th International Conference on Software Engineering.

[220]  Arie van Deursen,et al.  Identifying Crosscutting Concerns Using Fan-In Analysis , 2006, TSEM.

[221]  Stéphane Ducasse,et al.  A language independent approach for detecting duplicated code , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[222]  Arie van Deursen,et al.  Identifying objects using cluster and concept analysis , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[223]  Kim Mens,et al.  Mining aspectual views using formal concept analysis , 2004, Source Code Analysis and Manipulation, Fourth IEEE International Workshop on.

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

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

[226]  EO Esko Dijk Indoor ultrasonic position estimation using a single base station , 2004 .

[227]  Hausi A. Müller,et al.  The Year 2000 Problem: Issues and Implications. , 1997 .

[228]  Gao Design and verification of lock-free parallel algorithms , 2005 .

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

[230]  Richard C. Holt,et al.  E/R schema for the Datrix C/C++/Java exchange format , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[231]  G Giovanni Russello,et al.  Separation and adaptation of concerns in a shared data space , 2006 .

[232]  Saurabh Sinha,et al.  Criteria for testing exception-handling constructs in Java programs , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[233]  Martin P. Robillard,et al.  Separating features in source code: an exploratory study , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[234]  Dawson R. Engler,et al.  Proceedings of the 5th Symposium on Operating Systems Design and Implementation Cmc: a Pragmatic Approach to Model Checking Real Code , 2022 .