• DocumentCode
    780048
  • Title

    A query algebra for program databases

  • Author

    Paul, Santanu ; Prakash, Atul

  • Author_Institution
    IBM Thomas J. Watson Res. Center, Hawthorne, NY, USA
  • Volume
    22
  • Issue
    3
  • fYear
    1996
  • fDate
    3/1/1996 12:00:00 AM
  • Firstpage
    202
  • Lastpage
    217
  • Abstract
    Querying source code is an essential aspect of a variety of software engineering tasks such as program understanding, reverse engineering, program structure analysis and program flow analysis. In this paper, we present and demonstrate the use of an algebraic source code query technique that blends expressive power with query compactness. The query framework of Source Code Algebra (SCA) permits users to express complex source code queries and views as algebraic expressions. Queries are expressed on an extensible, object-oriented database that stores program source code. The SCA algebraic approach offers multiple benefits such as an applicative query language, high expressive power, seamless handling of structural and flow information, clean formalism and potential for query optimization. We present a case study where SCA expressions are used to query a program in terms of program organization, resource flow, control flow, metrics and syntactic structure. Our experience with an SCA-based prototype query processor indicates that an algebraic approach to source code queries combines the benefits of expressive power and compact query formulation
  • Keywords
    object-oriented databases; process algebra; program diagnostics; query processing; reverse engineering; software engineering; Source Code Algebra; algebraic expressions; applicative query language; clean formalism; compact query formulation; control flow; expressive power; extensible object-oriented database; flow information; program databases; program flow analysis; program organization; program structure analysis; program understanding; query algebra; query compactness; query optimization; resource flow; reverse engineering; seamless information handling; software engineering; software metrics; structural information; syntactic structure; Algebra; Data mining; Database languages; Documentation; Humans; Reverse engineering; Software engineering; Software maintenance; Software systems; Software tools;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/32.489080
  • Filename
    489080