Skip to main content

Non-intrusive Repair of Safety and Liveness Violations in Reactive Programs

  • Chapter
  • First Online:
Book cover Transactions on Computational Collective Intelligence XVI

Part of the book series: Lecture Notes in Computer Science ((TCCI,volume 8780))

  • 512 Accesses

Abstract

We show how, under certain conditions, programs written in the behavioral programming approach can be modified (e.g., as a result of new requirements or discovered bugs) using automatically-generated code modules. Given a trace of undesired behavior, one can generate a relatively small piece of code, whose execution is interwoven at run time with the rest of the system, and which brings about the desired changes without modifying existing code and without introducing new bugs. At the core of our approach is the ability of a thread of behavior to prevent the triggering of events from other threads. Our repair algorithms apply model checking of safety and liveness properties to the program and transform the counterexamples produced by the model-checker into corrective modules. The work is supported by a proof-of-concept tool, which creates understandable modules that can be further manually managed as part of a process of ongoing incremental system development.

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 EPUB and 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

References

  1. Aminof, B., Ball, T., Kupferman, O.: Reasoning about systems with transition fairness. In: Baader, F., Voronkov, A. (eds.) LPAR 2004. LNCS (LNAI), vol. 3452, pp. 194–208. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  2. Arcuri, A., Yao, X.: A novel co-evolutionary approach to automatic software bug fixing. In: Proceedings of the 10th IEEE Congress on Evolutionary Computation (CEC), pp. 162–168 (2008)

    Google Scholar 

  3. Baier, C., Katoen, J.-P.: Principles of Model Checking. MIT Press, Cambridge (2008)

    MATH  Google Scholar 

  4. Bloem, R., Jobstmann, B., Piterman, N., Pnueli, A., Sa’ar, Y.: Synthesis of reactive(1) designs. J. Comput. Syst. Sci. 78, 911–938 (2012)

    Article  MathSciNet  MATH  Google Scholar 

  5. Chatterjee, K., Henzinger, T.A., Jobstmann, B.: Environment assumptions for synthesis. In: van Breugel, F., Chechik, M. (eds.) CONCUR 2008. LNCS, vol. 5201, pp. 147–161. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  6. Damm, W., Harel, D.: LSCs: breathing life into message sequence charts. J. Form. Methods Syst. Des. 19(1), 45–80 (2001)

    Article  MATH  Google Scholar 

  7. Dijkstra, E.W.: Hierarchical ordering of sequential processes. Acta Inf. 1, 115–138 (1971)

    Article  MathSciNet  Google Scholar 

  8. Harel, D., Kugler, H., Marelly, R., Pnueli, A.: Smart play-out of behavioral requirements. In: Aagaard, M.D., O’Leary, J.W. (eds.) FMCAD 2002. LNCS, vol. 2517, pp. 378–398. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  9. Harel, D., Lampert, R., Marron, A., Weiss, G.: Model-checking behavioral programs. In: Proceedings of the 11th International Conference on Embedded Software (EMSOFT), pp. 279–288 (2011)

    Google Scholar 

  10. Harel, D., Marelly, R.: Come, Let’s Play: Scenario-Based Programming Using LSCs and the Play-Engine. Springer, Berlin (2003)

    Book  Google Scholar 

  11. Harel, D., Marron, A., Weiss, G.: Programming coordinated behavior in Java. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 250–274. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  12. Harel, D., Marron, A., Weiss, G.: Behavioral programming. Commun. ACM 55(7), 90–100 (2012)

    Article  Google Scholar 

  13. Harel, D., Marron, A., Weiss, G., Wiener, G.: Behavioral programming, decentralized control, and multiple time scales. In: Proceedings of the SPLASH Workshop on Programming Systems, Languages, and Applications Based on Agents, Actors, and Decentralized Control (AGERE!), pp. 171–182 (2011)

    Google Scholar 

  14. Harel, D., Pnueli, A.: On the development of reactive systems. In: Apt, K.R. (ed.) Logics and Models of Concurrent Systems. NATO ASI Series, vol. F-13. Springer, New York (1985)

    Google Scholar 

  15. Harel, D., Segall, I.: Planned and traversable play-out: a flexible method for executing scenario-based programs. In: Grumberg, O., Huth, M. (eds.) TACAS 2007. LNCS, vol. 4424, pp. 485–499. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  16. Jin, G., Song, L., Zhang, W., Lu, S., Liblit, B.: Automated atomicity-violation fixing. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) (2011)

    Google Scholar 

  17. Jobstmann, B., Griesmayer, A., Bloem, R.: Program repair as a game. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 226–238. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  18. Manna, Z., Pnueli, A.: The Temporal Logic of Reactive Systems: Specification. Springer, New York (1992)

    Book  Google Scholar 

  19. Pnueli, A., Rosner, R.: On the synthesis of a reactive module. In: Proceedings of the 16th ACM Symposium on Principles of Programming Languages (POPL), pp. 179–190 (1989)

    Google Scholar 

  20. Staber, S., Jobstmann, B., Bloem, R.: Diagnosis is repair. In: Proceedings of the 16th International Workshop on Principles of Diagnosis, pp. 169–174 (2005)

    Google Scholar 

  21. Staber, S., Jobstmann, B., Bloem, R.: Finding and fixing faults. In: Borrione, D., Paul, W. (eds.) CHARME 2005. LNCS, vol. 3725, pp. 35–49. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  22. Valmari, A.: The state explosion problem. In: Reisig, W., Rozenberg, G. (eds.) Lectures on Petri Nets I: Basic Models: Advances in Petri Nets. LNCS, vol. 1491, pp. 429–528. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  23. Visser, W., Havelund, K., Brat, G., Park, S., Lerda, F.: Model checking programs. Autom. Softw. Eng. 10, 203–232 (2003)

    Article  Google Scholar 

  24. Weimer, W., Forrest, S., Le Goues, C., Nguyen, T.: Automatic program repair with evolutionary computation. Commun. ACM 53, 109–116 (2010)

    Article  Google Scholar 

  25. Wiener, G., Weiss, G., Marron, A.: Coordinating and visualizing independent behaviors in Erlang. In: Proceedings of the 9th ACM SIGPLAN Erlang Workshop (2010)

    Google Scholar 

Download references

Acknowledgments

We thank A. Kantor, S. Maoz, Y. Sa’ar, S. Szekely and G. Wiener for their valuable suggestions on the manuscript. The research of D. Harel, G. Katz and A. Marron was supported by The John von Neumann Minerva Center for the Development of Reactive Systems at the Weizmann Institute of Science, by an Advanced Research Grant from the European Research Council (ERC) under the European Community’s 7th Framework Programme (FP7/2007–2013), and by the Israel Science Foundation. The research of G. Weiss was supported by the Lynn and William Frankel Center for CS at Ben-Gurion University, by a reintegration (IRG) grant under the European Community’s FP7 Programme, and by the Israel Science Foundation.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Guy Katz .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Harel, D., Katz, G., Marron, A., Weiss, G. (2014). Non-intrusive Repair of Safety and Liveness Violations in Reactive Programs. In: Kowalczyk, R., Nguyen, N. (eds) Transactions on Computational Collective Intelligence XVI. Lecture Notes in Computer Science(), vol 8780. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-44871-7_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-662-44871-7_1

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-662-44870-0

  • Online ISBN: 978-3-662-44871-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics