Skip to main content

Automated Error-Detection and Repair for Compositional Software Specifications

  • Conference paper
Software Engineering and Formal Methods (SEFM 2014)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8702))

Included in the following conference series:

Abstract

The complexity of error diagnosis in requirements specifications, already high, is increased when requirements refer to various system components, on whose interaction the system’s aims depend. Further, finding causes of error, and ways of overcoming them, cannot easily be achieved without a systematic methodology. This has led researchers to explore the combined use of verification and machine-learning to support automated software analysis and repair. However, existing approaches have been limited by using formalisms in which modularity and compositionality cannot be explicitly expressed. In this paper we overcome this limitation. We define a translation from a representative process algebra, Finite State Processes, into the action language \(\mathcal{C}+\). This enables forms of verification not supported by previous methods. We then use a logic-programming equivalent of \(\mathcal{C}+\), to which we apply inductive logic programming for learning repairs to system components while ensuring no new errors are introduced and interactions with other components are maintained. These two phases are iterated until a correct specification is reached, enabling rigorous and scalable support for automated analysis and repair of component-based specifications.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Alrajeh, D., et al.: Elaborating requirements using model checking and inductive learning. IEEE Trans. Software Eng. 39(3), 361–383 (2013)

    Article  Google Scholar 

  2. Borges, R., et al.: Learning and representing temporal knowledge in recurrent networks. IEEE TNN 22(12) (2011)

    Google Scholar 

  3. Clark, K.: Negation as failure. In: Readings in Nonmonotonic Reasoning, pp. 311–325 (1978)

    Google Scholar 

  4. Clarke, E., Kroning, D., Ouaknine, J., Strichman, O.: Completeness and complexity of bounded model checking. In: Steffen, B., Levi, G. (eds.) VMCAI 2004. LNCS, vol. 2937, pp. 85–96. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  5. Corapi, D., et al.: Inductive logic programming as abductive search. In: Proc. ICLP 2010, pp. 54–63 (2010)

    Google Scholar 

  6. Craven, R.: Execution mechanisms for the action language \(\mathcal{C}+\). PhD thesis. Imperial College London (2007)

    Google Scholar 

  7. D’Ippolito, N., et al.: Synthesis of live behaviour models for fallible domains. In: Proc. ICSE 2011, pp. 211–220 (2011)

    Google Scholar 

  8. Filieri, A., et al.: A formal approach to adaptive software: continuous assurance of non-functional requirements. Formal Aspects of Computing 24, 163–186 (2012)

    Article  MATH  MathSciNet  Google Scholar 

  9. Gelfond, M., Lifschitz, V.: The stable model semantics for logic programming. In: Proc. ICLP 1988, pp. 1070–1080 (1988)

    Google Scholar 

  10. Gelfond, M., Lifschitz, V.: Classical negation in logic programs and disjunctive databases. New Generation Computing 9, 365–385 (1991)

    Article  Google Scholar 

  11. Gelfond, M., Lifschitz, V.: Action languages. Electron. Trans. Artif. Intell. 2, 193–210 (1998)

    MathSciNet  Google Scholar 

  12. Giunchiglia, E., et al.: Nonmonotonic causal theories. Artif. Intell. 153(1-2), 49–104 (2004)

    Article  MATH  MathSciNet  Google Scholar 

  13. Hoare, C.: Communicating Sequential Processes. Commun. ACM 21(8), 666–677 (1978)

    Article  MATH  MathSciNet  Google Scholar 

  14. Johnson, K., et al.: An incremental verification framework for component-based software systems. In: Proc. CBSE 2013, pp. 33–42 (2013)

    Google Scholar 

  15. Keller, R.: Formal verification of parallel programs. CACM 19(7), 371–384 (1976)

    Article  MATH  Google Scholar 

  16. Kowalski, R., Sergot, M.: A logic-based calculus of events. New Generation Computing 4, 67–95 (1986)

    Article  Google Scholar 

  17. Krka, I., et al.: Synthesizing partial component-level behavior models from system specifications. In: Proc. ESEC/FSE, pp. 305–314 (2009)

    Google Scholar 

  18. Lamport, L.: The temporal logic of actions. ACM Trans. Program. Lang. Syst. 16(3), 872–923 (1994)

    Article  Google Scholar 

  19. Letier, E., et al.: Deriving event-based transition systems from goal-oriented requirements models. Autom. Softw. Eng. 15(2), 175–206 (2008)

    Article  Google Scholar 

  20. Magee, J., Kramer, J.: Concurrency: state models and java programs. John Wiley and Sons (1999)

    Google Scholar 

  21. Manna, Z., Pnueli, A.: The temporal logic of reactive and concurrent systems. Springer-Verlag New York, Inc. (1992)

    Google Scholar 

  22. Milner, R.: A Calculus of Communicating Systems. Springer, New York (1982)

    Google Scholar 

  23. Muggleton, S., Raedt, L.D.: Inductive logic programming: theory and methods. Journal of Log. Program. 19(20), 629–679 (1994)

    Article  Google Scholar 

  24. Pasareanu, C., et al.: Learning to divide and conquer: applying the l* algorithm to automate assume-guarantee reasoning. Formal Methods in System Design 32, 175–205 (2008)

    Article  MATH  Google Scholar 

  25. Russo, A., Miller, R., Nuseibeh, B., Kramer, J.: An abductive approach for analysing event-based requirements specifications. In: Stuckey, P.J. (ed.) ICLP 2002. LNCS, vol. 2401, pp. 22–37. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  26. Sibay, G.E., Uchitel, S., Braberman, V., Kramer, J.: Distribution of modal transition systems. In: Giannakopoulou, D., Méry, D. (eds.) FM 2012. LNCS, vol. 7436, pp. 403–417. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  27. Sergot, M., Craven, R.: Some Logical Properties of Nonmonotonic Causal Theories. In: Baral, C., Greco, G., Leone, N., Terracina, G. (eds.) LPNMR 2005. LNCS (LNAI), vol. 3662, pp. 198–210. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Alrajeh, D., Craven, R. (2014). Automated Error-Detection and Repair for Compositional Software Specifications. In: Giannakopoulou, D., Salaün, G. (eds) Software Engineering and Formal Methods. SEFM 2014. Lecture Notes in Computer Science, vol 8702. Springer, Cham. https://doi.org/10.1007/978-3-319-10431-7_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-10431-7_9

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-10430-0

  • Online ISBN: 978-3-319-10431-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics