• DocumentCode
    2442409
  • Title

    Metadata invariants: Checking and inferring metadata coding conventions

  • Author

    Song, Myoungkyu ; Tilevich, Eli

  • Author_Institution
    Dept. of Comput. Sci., Virginia Tech, Blacksburg, VA, USA
  • fYear
    2012
  • fDate
    2-9 June 2012
  • Firstpage
    694
  • Lastpage
    704
  • Abstract
    As the prevailing programming model of enterprise applications is becoming more declarative, programmers are spending an increasing amount of their time and efforts writing and maintaining metadata, such as XML or annotations. Although metadata is a cornerstone of modern software, automatic bug finding tools cannot ensure that metadata maintains its correctness during refactoring and enhancement. To address this shortcoming, this paper presents metadata invariants, a new abstraction that codifies various naming and typing relationships between metadata and the main source code of a program. We reify this abstraction as a domain-specific language. We also introduce algorithms to infer likely metadata invariants and to apply them to check metadata correctness in the presence of program evolution. We demonstrate how metadata invariant checking can help ensure that metadata remains consistent and correct during program evolution; it finds metadata-related inconsistencies and recommends how they should be corrected. Similar to static bug finding tools, a metadata invariant checker identifies metadata-related bugs as a program is being refactored and enhanced. Because metadata is omnipresent in modern software applications, our approach can help ensure the overall consistency and correctness of software as it evolves.
  • Keywords
    meta data; program debugging; software maintenance; specification languages; domain-specific language; enterprise application programming model; metadata coding convention checking; metadata coding convention inferring; metadata invariant checking; naming relationships; program evolution; program source code; static bug finding tools; typing relationships; Computer bugs; Inference algorithms; Java; Programming; Runtime; Syntactics; XML; bug finding; domain-specific languages; enhancement; frameworks; invariants; metadata; refactoring; software maintenance;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering (ICSE), 2012 34th International Conference on
  • Conference_Location
    Zurich
  • ISSN
    0270-5257
  • Print_ISBN
    978-1-4673-1066-6
  • Electronic_ISBN
    0270-5257
  • Type

    conf

  • DOI
    10.1109/ICSE.2012.6227148
  • Filename
    6227148