Checking Sanity of Software Requirements

  • Jiří Barnat
  • Petr Bauch
  • Luboš Brim
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7504)


In the last decade it became a common practice to formalise software requirements to improve the clarity of users’ expectations. In this work we build on the fact that functional requirements can be expressed in temporal logic and we propose new techniques that automatically detect flaws and suggest improvements of given requirements. Specifically, we describe and experimentally evaluate new approaches to consistency and vacuity checking that identify all inconsistencies and pinpoint their exact source (the smallest inconsistent set). To complete the sanity checking we also deliver a novel semi-automatic completeness evaluation that can assess the coverage of user requirements and suggest missing properties the user might have wanted to formulate. The usefulness of our completeness evaluation is demonstrated in a case study of an aeroplane control system.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Barnat, J., Brim, L., Češka, M., Ročkai, P.: DiVinE: Parallel Distributed Model Checker. In: Proc. of HiBi/PDMC, pp. 4–7 (2010)Google Scholar
  2. 2.
    Blom, S., Fokkink, W.J., Groote, J.F., van Langevelde, I., Lisser, B., van de Pol, J.: μCRL: A Toolset for Analysing Algebraic Specifications. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, pp. 250–254. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  3. 3.
    Chan, W., Anderson, R.J., Bea, P., Burns, S., Modugno, F., Notkin, D., Reese, J.D.: Model Checking Large Software Specifications. IEEE T. Software Eng. 24, 498–520 (1998)CrossRefGoogle Scholar
  4. 4.
    Chockler, H., Kupferman, O., Kurshan, R.P., Vardi, M.Y.: A Practical Approach to Coverage in Model Checking. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, pp. 66–78. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  5. 5.
    Chockler, H., Kupferman, O., Vardi, M.Y.: Coverage Metrics for Temporal Logic Model Checking. In: Margaria, T., Yi, W. (eds.) TACAS 2001. LNCS, vol. 2031, pp. 528–542. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  6. 6.
    Cimatti, A., Clarke, E., Giunchiglia, E., Giunchiglia, F., Pistore, M., Roveri, M., Sebastiani, R., Tacchella, A.: NuSMV 2: An OpenSource Tool for Symbolic Model Checking. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, pp. 359–364. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  7. 7.
    Courcoubetis, C., Vardi, M.Y., Wolper, P., Yannakakis, M.: Memory-Efficient Algorithms for the Verification of Temporal Properties. Form. Method Syst. Des. 1, 275–288 (1992)CrossRefGoogle Scholar
  8. 8.
    Dwyer, M.B., Avrunin, G.S., Corbett, J.C.: Property Specification Patterns for Finite-State Verification. In: Proc. of FMSP, pp. 7–15 (1998)Google Scholar
  9. 9.
    Heimdahl, M.P.E., Leveson, N.G.: Completeness and Consistency Analysis of State-Based Requirements. In: Proc. of ICSE, pp. 3–14 (1995)Google Scholar
  10. 10.
    Hinchey, M., Jackson, M., Cousot, P., Cook, B., Bowen, J.P., Margaria, T.: Software Engineering and Formal Methods. Commun. ACM 51, 54–59 (2008)CrossRefGoogle Scholar
  11. 11.
    Industrial Framework for Embedded Systems Tools,
  12. 12.
    Kupferman, O.: Sanity Checks in Formal Verification. In: Baier, C., Hermanns, H. (eds.) CONCUR 2006. LNCS, vol. 4137, pp. 37–51. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  13. 13.
    Kupferman, O., Vardi, M.Y.: Vacuity Detection in Temporal Model Checking. STTT 4, 224–233 (2003)CrossRefGoogle Scholar
  14. 14.
    Leveson, N.: Completeness in Formal Specification Language Design for Process-Control Systems. In: Proc. of FMSP, pp. 75–87 (2000)Google Scholar
  15. 15.
    Miller, S.P., Tribble, A.C., Heimdahl, M.P.E.: Proving the Shalls. In: Araki, K., Gnesi, S., Mandrioli, D. (eds.) FME 2003. LNCS, vol. 2805, pp. 75–93. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  16. 16.
    Rajan, A., Whalen, M.W., Heimdahl, M.P.E.: Model Validation using Automatically Generated Requirements-Based Tests. In: Proc. of HASE, pp. 95–104 (2007)Google Scholar
  17. 17.
    Roy, S., Das, S., Basu, P., Dasgupta, P., Chakrabarti, P.P.: SAT Based Solutions for Consistency Problems in Formal Property Specifications for Open Systems. In: Proc. of ICCAD, pp. 885–888 (2005)Google Scholar
  18. 18.
    Rozier, K.Y., Vardi, M.Y.: LTL Satisfiability Checking. In: Bošnački, D., Edelkamp, S. (eds.) SPIN 2007. LNCS, vol. 4595, pp. 149–167. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  19. 19.
    Tasiran, S., Keutzer, K.: Coverage Metrics for Functional Validation of Hardware Designs. IEEE Des. Test. Comput. 18(4), 36–45 (2001)CrossRefGoogle Scholar
  20. 20.
    Whalen, M.W., Rajan, A., Heimdahl, M.P.E., Miller, S.P.: Coverage Metrics for Requirements-Based Testing. In: Proc. of ISSTA, pp. 25–36 (2006)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Jiří Barnat
    • 1
  • Petr Bauch
    • 1
  • Luboš Brim
    • 1
  1. 1.Faculty of InformaticsMasaryk UniversityBrnoCzech Republic

Personalised recommendations