• DocumentCode
    492564
  • Title

    Symbolic mining of temporal specifications

  • Author

    Gabel, Mark ; Su, Zhendong

  • Author_Institution
    Dept. of Comput. Sci., Univ. of California, Davis, CA
  • fYear
    2008
  • fDate
    10-18 May 2008
  • Firstpage
    51
  • Lastpage
    60
  • Abstract
    Program specifications are important in many phases of the software development process, but they are often omitted or incomplete. An important class of specifications takes the form of temporal properties that prescribe proper usage of components of a software system. Recent work has focused on the automated inference of temporal specifications from the static or runtime behavior of programs. Many techniques match a specification pattern (represented by a finite state automaton) to all possible combinations of program components and enumerate the possible matches. Such approaches suffer from high space complexity and have not scaled beyond simple, two-letter alternating patterns (e.g. (ab)*). In this paper, we precisely define this form of specification mining and show that its general form is NP-complete. We observe a great deal of regularity in the representation and tracking of all possible combinations of system components. This motivates us to introduce a symbolic algorithm, based on binary decision diagrams (BDDs), that exploits this regularity. Our results show that this symbolic approach expands the tractability of this problem by orders of magnitude in both time and space. It enables us to mine more complex specifications, such as the common three-letter resource acquisition, usage, and release pattern ((ab+c)*). We have implemented our algorithm in a practical tool and used it to find significant specifications in real systems, including Apache Ant and Hibernate. We then used these specifications to find previously unknown bugs.
  • Keywords
    data mining; formal specification; program verification; NP-complete problem; automated inference; binary decision diagram; finite state automaton; high space complexity; program components; program specification; release pattern; resource acquisition; runtime behavior; software development process; software system; specification mining; specification pattern; symbolic algorithm; symbolic mining; temporal properties; temporal specification; usage pattern; Algorithm design and analysis; Boolean functions; Computer bugs; Computer science; Data structures; Learning automata; Pattern matching; Programming; Runtime; Software systems; dynamic analysis; formal specifications; specification mining;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering, 2008. ICSE '08. ACM/IEEE 30th International Conference on
  • Conference_Location
    Leipzig
  • ISSN
    0270-5257
  • Print_ISBN
    978-1-4244-4486-1
  • Electronic_ISBN
    0270-5257
  • Type

    conf

  • DOI
    10.1145/1368088.1368096
  • Filename
    4814116