• DocumentCode
    588596
  • Title

    Refactoring in the presence of annotations

  • Author

    Noguera, Carlos ; Kellens, A. ; De Roover, Coen ; Jonckers, Viviane

  • Author_Institution
    Software Languages Lab., Vrije Univ., Brussels, Belgium
  • fYear
    2012
  • fDate
    23-28 Sept. 2012
  • Firstpage
    337
  • Lastpage
    346
  • Abstract
    Current-day programming languages include constructs to embed meta-data in a program´s source code in the form of annotations. More than mere documentation, these annotations are used in modern frameworks to map source-level entities to domain-specific ones. A common example being the Hibernate Object-Relational Mapping framework that relies on annotations to declare persistence configurations. While the presence of annotations extends the base semantics of the language, it also imposes restrictions on the annotated program. In this paper we consider the manner in which annotations affect automated refactorings, and in particular how they break their behavior preservation. As refactorings, during their condition checking phase, ignore the annotation´s restrictions they can no longer guarantee the preservation of the domain-specific mappings. To address this problem, we propose to make the restrictions of the annotations explicit, and use them to steer the refactoring process. A prototype extension of the Eclipse IDE´s refactoring engine is used to demonstrate our approach on three annotation libraries: Java Persistence API, AspectJ5 and Simple XML serialization.
  • Keywords
    Java; XML; application program interfaces; programming language semantics; programming languages; software maintenance; AspectJ5; Eclipse IDE refactoring engine; Java Persistence API; Simple XML serialization; annotation form; application program interface; behavior preservation; domain-specific entity; extensible markup language; hibernate object-relational mapping framework; language semantics; meta data; persistence configuration; program refactoring; programming language; source-level entity; Conferences; Databases; Engines; Java; Libraries; Semantics; Software maintenance; Annotations; Refactoring; Tool support;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Maintenance (ICSM), 2012 28th IEEE International Conference on
  • Conference_Location
    Trento
  • ISSN
    1063-6773
  • Print_ISBN
    978-1-4673-2313-0
  • Type

    conf

  • DOI
    10.1109/ICSM.2012.6405291
  • Filename
    6405291