• DocumentCode
    1305606
  • Title

    Automatically checking an implementation against its formal specification

  • Author

    Antoy, Sergio ; Hamlet, Dick

  • Author_Institution
    Dept. of Comput. Sci., Portland State Univ., OR, USA
  • Volume
    26
  • Issue
    1
  • fYear
    2000
  • fDate
    1/1/2000 12:00:00 AM
  • Firstpage
    55
  • Lastpage
    69
  • Abstract
    We propose checking the execution of an abstract data type´s imperative implementation against its algebraic specification. An explicit mapping from implementation states to abstract values is added to the imperative code. The form of specification allows mechanical checking of desirable properties such as consistency and completeness, particularly when operations are added incrementally to the data type. During unit testing, the specification serves as a test oracle. Any variance between computed and specified values is automatically detected. When the module is made part of some application, the checking can he removed, or may remain in place for further validating the implementation. The specification, executed by rewriting, can be thought of as itself an implementation with maximum design diversity, and the validation as a form of multiversion-programming comparison
  • Keywords
    abstract data types; algebraic specification; object-oriented programming; program testing; program verification; abstract data type; algebraic specification; formal specification; imperative code; imperative implementation; implementation checking; multiversion programming; object oriented program testing; rewriting; unit testing; Application software; Computer languages; Equations; Formal specifications; Java; Mechanical factors; Software engineering; Software maintenance; Software prototyping; Software testing;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/32.825766
  • Filename
    825766