Advertisement

Reactive Synthesis of Graphical User Interface Glue Code

  • Rüdiger EhlersEmail author
  • Keerthi Adabala
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11781)

Abstract

We present an approach to synthesize glue code for graphical user interfaces. Such code starts computation and I/O threads in response to user interface events and changes the state of the interface according to the interaction scheme envisioned by the UI designer.

Our approach integrates several ideas that work best in combination. For instance, by translating all specification parts to universal very-weak (UVW) automata and building a game from them, we obtain a natural order over the positions in the game that enables us to prune the game graph substantially while constructing it. Furthermore, we present an approach to compute kind strategies that constrain the environment as little as possible and hence make the UIs as responsive as possible. The use of UVWs gives rise to a simple formalization of this idea.

We apply our approach to a case study with an Android (cell phone) application and show experimentally that previous reactive synthesis tools are unable to synthesize controllers for this application.

References

  1. 1.
    Adabala, K., Ehlers, R.: A fragment of linear temporal logic for universal very weak automata. In: Lahiri, S.K., Wang, C. (eds.) ATVA 2018. LNCS, vol. 11138, pp. 335–351. Springer, Cham (2018).  https://doi.org/10.1007/978-3-030-01090-4_20CrossRefGoogle Scholar
  2. 2.
    Alur, R., Henzinger, T.A.: Logics and models of real time: a survey. In: de Bakker, J.W., Huizing, C., de Roever, W.P., Rozenberg, G. (eds.) REX 1991. LNCS, vol. 600, pp. 74–106. Springer, Heidelberg (1992).  https://doi.org/10.1007/BFb0031988CrossRefGoogle Scholar
  3. 3.
    Baier, C., Katoen, J.: Principles of Model Checking. MIT Press, Cambridge (2008)zbMATHGoogle Scholar
  4. 4.
    Bloem, R., Chatterjee, K., Henzinger, T.A., Jobstmann, B.: Better quality in synthesis through quantitative objectives. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, pp. 140–156. Springer, Heidelberg (2009).  https://doi.org/10.1007/978-3-642-02658-4_14CrossRefGoogle Scholar
  5. 5.
    Bloem, R., Chatterjee, K., Jobstmann, B.: Graph games and reactive synthesis. In: Clarke, E., Henzinger, T., Veith, H., Bloem, R. (eds.) Handbook of Model Checking, pp. 921–962. Springer, Cham (2018).  https://doi.org/10.1007/978-3-319-10575-8_27CrossRefGoogle Scholar
  6. 6.
    Bloem, R., Ehlers, R., Könighofer, R.: Cooperative reactive synthesis. In: Finkbeiner, B., Pu, G., Zhang, L. (eds.) ATVA 2015. LNCS, vol. 9364, pp. 394–410. Springer, Cham (2015).  https://doi.org/10.1007/978-3-319-24953-7_29CrossRefGoogle Scholar
  7. 7.
    Bloem, R., Jobstmann, B., Piterman, N., Pnueli, A., Sa’ar, Y.: Synthesis of reactive(1) designs. J. Comput. Syst. Sci. 78(3), 911–938 (2012)MathSciNetCrossRefGoogle Scholar
  8. 8.
    D’Ippolito, N., Braberman, V.A., Piterman, N., Uchitel, S.: Synthesizing nonanomalous event-based controllers for liveness goals. ACM Trans. Softw. Eng. Methodol. 22(1), 9:1–9:36 (2013)Google Scholar
  9. 9.
    Doyen, L., Geeraerts, G., Raskin, J.-F., Reichert, J.: Realizability of real-time logics. In: Ouaknine, J., Vaandrager, F.W. (eds.) FORMATS 2009. LNCS, vol. 5813, pp. 133–148. Springer, Heidelberg (2009).  https://doi.org/10.1007/978-3-642-04368-0_12CrossRefzbMATHGoogle Scholar
  10. 10.
    Ehlers, R., Raman, V.: Slugs: extensible GR(1) synthesis. In: Chaudhuri, S., Farzan, A. (eds.) CAV 2016. LNCS, vol. 9780, pp. 333–339. Springer, Cham (2016).  https://doi.org/10.1007/978-3-319-41540-6_18CrossRefGoogle Scholar
  11. 11.
    Filiot, E., Jin, N., Raskin, J.: Exploiting structure in LTL synthesis. STTT 15(5–6), 541–561 (2013)CrossRefGoogle Scholar
  12. 12.
    Hussmann, H., Meixner, G., Zuehlke, D. (eds.): Model-Driven Development of Advanced User Interfaces, Studies in Computational Intelligence, vol. 340. Springer, Heidelberg (2011).  https://doi.org/10.1007/978-3-642-14562-9CrossRefGoogle Scholar
  13. 13.
    Kress-Gazit, H., Lahijanian, M., Raman, V.: Synthesis for robots: guarantees and feedback for robot behavior. Ann. Rev. Control Robot. Auton. Syst. 1, 211–236 (2018)CrossRefGoogle Scholar
  14. 14.
    Masci, P., Zhang, Y., Jones, P., Curzon, P., Thimbleby, H.: Formal verification of medical device user interfaces using PVS. In: Gnesi, S., Rensink, A. (eds.) FASE 2014. LNCS, vol. 8411, pp. 200–214. Springer, Heidelberg (2014).  https://doi.org/10.1007/978-3-642-54804-8_14CrossRefGoogle Scholar
  15. 15.
    Meyer, P.J., Sickert, S., Luttenberger, M.: Strix: explicit reactive synthesis strikes back!. In: Chockler, H., Weissenbacher, G. (eds.) CAV 2018. LNCS, vol. 10981, pp. 578–586. Springer, Cham (2018).  https://doi.org/10.1007/978-3-319-96145-3_31CrossRefGoogle Scholar
  16. 16.
    Pnueli, A., Rosner, R.: On the synthesis of an asynchronous reactive module. In: Ausiello, G., Dezani-Ciancaglini, M., Della Rocca, S.R. (eds.) ICALP 1989. LNCS, vol. 372, pp. 652–671. Springer, Heidelberg (1989).  https://doi.org/10.1007/BFb0035790CrossRefGoogle Scholar
  17. 17.
    Ryzhyk, L., et al.: User-guided device driver synthesis. In: OSDI, pp. 661–676 (2014)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Clausthal University of TechnologyClausthal-ZellerfeldGermany
  2. 2.University of BremenBremenGermany

Personalised recommendations