• DocumentCode
    756777
  • Title

    Design by Contract to Improve Software Vigilance

  • Author

    Traon, Yves Le ; Baudry, Benoit ; Jézéquel, Jean-Marc

  • Author_Institution
    France Telecom R&D, Lannion
  • Volume
    32
  • Issue
    8
  • fYear
    2006
  • Firstpage
    571
  • Lastpage
    586
  • Abstract
    Design by contract is a lightweight technique for embedding elements of formal specification (such as invariants, pre and postconditions) into an object-oriented design. When contracts are made executable, they can play the role of embedded, online oracles. Executable contracts allow components to be responsive to erroneous states and, thus, may help in detecting and locating faults. In this paper, we define vigilance as the degree to which a program is able to detect an erroneous state at runtime. Diagnosability represents the effort needed to locate a fault once it has been detected. In order to estimate the benefit of using design by contract, we formalize both notions of vigilance and diagnosability as software quality measures. The main steps of measure elaboration are given, from informal definitions of the factors to be measured to the mathematical model of the measures. As is the standard in this domain, the parameters are then fixed through actual measures, based on a mutation analysis in our case. Several measures are presented that reveal and estimate the contribution of contracts to the overall quality of a system in terms of vigilance and diagnosability
  • Keywords
    formal specification; object-oriented methods; object-oriented programming; program debugging; program diagnostics; program verification; software fault tolerance; software metrics; software quality; design by contract; embedded online oracle; executable contract; formal specification; mathematical model; mutation analysis; object-oriented design method; program runtime erroneous state detection; software diagnosability; software fault detection; software metrics; software quality measure; software vigilance improvement; Contracts; Embedded software; Fault detection; Formal specifications; Mathematical model; Measurement standards; Object oriented modeling; Runtime; Software measurement; Software quality; Object-oriented design methods; diagnostics; metrics.; programming by contract;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2006.79
  • Filename
    1703388