Abstract
Component-based systems evolve as a new component is added or an existing one is replaced by a newer version. Hence, it is appealing to assure the new system still preserves its safety properties. However, instead of inspecting the new system as a whole, which may result in a large state space, it is beneficial to reuse the verification results by inspecting the newly added component in isolation. To this aim, we study the problem of model checking component-based asynchronously communicating systems in the presence of an unspecified component against safety properties. Our solution is based on assume-guarantee reasoning, adopted for asynchronous environments, which generates the weakest assumption. If the newly added component conforms to the assumption, then the whole system still satisfies the property. To make the approach efficient and convergent, we produce an overapproximated interface of the missing component and by its composition with the rest of the system components, we achieve an overapproximated specification of the system, from which we remove those traces of the system that violate the property and generate an assumption for the missing component. We have implemented our approach on two case studies. Furthermore, we compared our results with the state of the art direct approach. Our resulting assumptions are smaller in size and achieved faster.




















Similar content being viewed by others
Notes
Scala programming language supports actor-models http://www.scala-lang.org.
wiki.ros.org/Robots/Husky.
wiki.ros.org/Robots/Turtlebot.
This encoding is available at http://fghassemi.adhoc.ir/AGcode.zip.
References
Agha, G., Mason, I.A., Smith, S.F., Talcott, C.L.: A foundation for actor computation. J. Funct. Program. 7(1), 1–72 (1997)
Agha, G.A.: Actors: a model of concurrent computation in distributed systems. Tech. rep., DTIC Document (1985)
Agha, G.A.: The structure and semantics of actor languages. In: Workshop/School/Symposium of the REX Project (Research and Education in Concurrent Systems), pp. 1–59. Springer, Berlin (1990)
Agha, G.A., Mason, I.A., Smith, S.F., Talcott, C.L.: A foundation for actor computation. J. Funct. Program. 7(01), 1–72 (1997)
Almonaies, A.A., Cordy, J.R., Dean, T.R.: Legacy system evolution towards service-oriented architecture. In: International Workshop on SOA Migration and Evolution, pp. 53–62 (2010)
Alpern, B., Schneider, F.B.: Recognizing safety and liveness. Distrib. Comput. 2(3), 117–126 (1987)
Alur, R., Madhusudan, P., Nam, W.: Symbolic compositional verification by learning assumptions. In: International Conference on Computer Aided Verification, pp. 548–562. Springer, Berlin (2005)
Andersen, H.R., Stirling, C., Winskel, G.: A compositional proof system for the modal mu-calculus. In: Ninth Annual Symposium on Logic in Computer Science, pp. 144–153. IEEE Computer Society (1994)
Angluin, D.: Learning regular sets from queries and counterexamples. Inf. Comput. 75(2), 87–106 (1987)
Asaadi, H.R., Khosravi, R., Mousavi, M., Noroozi, N.: Towards model-based testing of electronic funds transfer systems. In: International Conference on Fundamentals of Software Engineering, pp. 253–267. Springer, Berlin (2011)
Baier, C., Katoen, J.P., Larsen, K.G.: Principles of Model Checking. MIT Press, Cambridge (2008)
Bergstra, J.A., Klop, J.W.: Process algebra for synchronous communication. Inf. Control 60(1–3), 109–137 (1984)
Bloom, B., Fokkink, W., Van Glabbeek, R.J.: Precongruence formats for decorated trace semantics. ACM Trans. Comput. Log. 5(1), 26–78 (2004)
Bobaru, M.G., Pasareanu, C.S., Giannakopoulou, D.: Automated assume-guarantee reasoning by abstraction refinement. In: International Conference on Computer Aided Verification, pp. 135–148. Springer, Berlin (2008)
Boreale, M., De Nicola, R., Pugliese, R.: Trace and testing equivalence on asynchronous processes. Inf. Comput. 172(2), 139–164 (2002)
Brookes, S.D., Rounds, W.C.: Behavioural equivalence relations induced by programming logics. In: International Colloquium on Automata, Languages, and Programming, pp. 97–108. Springer, Berlin (1983)
Canfora, G., Fasolino, A.R., Frattolillo, G., Tramontana, P.: A wrapping approach for migrating legacy system interactive functionalities to service oriented architectures. J. Syst. Softw. 81(4), 463–480 (2008)
Cassandras, C.G., Lafortune, S.: Introduction to Discrete Event Systems. Springer, Berlin (2009)
Chaki, S., Strichman, O.: Optimized l*-based assume-guarantee reasoning. In: International Conference on Tools and Algorithms for the Construction and Analysis of Systems, pp. 276–291. Springer, Berlin (2007)
Cheung, S.C., Kramer, J.: Checking safety properties using compositional reachability analysis. ACM Trans. Softw. Eng. Methodol. 8(1), 49–78 (1999)
Clarke, E.M., Grumberg, O., Peled, D.: Model Checking. MIT Press, Cambridge (1999)
Clarke, E.M., Long, D.E., McMillan, K.L.: Compositional model checking. In: Proceedings of 4th Annual Symposium on Logic in Computer Science, pp. 353–362. IEEE (1989)
Cobleigh, J.M., Avrunin, G.S., Clarke, L.A.: Breaking up is hard to do: an evaluation of automated assume-guarantee reasoning. ACM Trans. Softw. Eng. Methodol. 17(2), 7 (2008)
Cobleigh, J.M., Giannakopoulou, D., Pasareanu, C.S.: Learning assumptions for compositional verification. In: International Conference on Tools and Algorithms for the Construction and Analysis of Systems, pp. 331–346. Springer, Berlin (2003)
Cortadella, J., Kishinevsky, M., Kondratyev, A., Lavagno, L., Yakovlev, A.: Petrify: a tool for manipulating concurrent specifications and synthesis of asynchronous controllers. IEICE Trans. Inf. Syst. 80(3), 315–325 (1997)
Cortadella, J., Kishinevsky, M., Kondratyev, A., Lavagno, L., Yakovlev, A.: Logic Synthesis for Asynchronous Controllers and Interfaces, vol. 8. Springer, Berlin (2012)
Dai, G., Bai, X., Zhao, C.: A framework for model checking web service compositions based on bpel4ws. In: International Conference on e-Business Engineering, pp. 165–172. IEEE (2007)
De Nicola, R., Hennessy, M.: Testing equivalences for processes. Theor. Comput. Sci. 34, 83–133 (1984)
Fabian, M., Lennartson, B.: On non-deterministic supervisory control. In: Proceedings of the 35th IEEE Conference on Decision and Control, vol. 2, pp. 2213–2218. IEEE (1996)
Feng, X., Ferreira, R., Shao, Z.: On the relationship between concurrent separation logic and assume-guarantee reasoning. In: European Symposium on Programming, pp. 173–188. Springer, Berlin (2007)
Fokkink, W., Van Glabbeek, R., De Wind, P.: Compositionality of hennessy-milner logic by structural operational semantics. Theor. Comput. Sci. 354(3), 421–440 (2006)
Foster, H., Uchitel, S., Magee, J., Kramer, J.: Ws-engineer: a model-based approach to engineering web service compositions and choreography. In: Test and Analysis of Web Services, pp. 87–119. Springer, Berlin (2007)
Gao, C., Liu, R., Song, Y., Chen, H.: A model checking tool embedded into services composition environment. In: International Conference on Grid and Cooperative Computing, pp. 355–362. IEEE (2006)
Giannakopoulou, D., Pasareanu, C.S., Barringer, H.: Component verification with automatically generated assumptions. Autom. Softw. Eng. 12(3), 297–320 (2005)
Grinchtein, O., Leucker, M., Piterman, N.: Inferring network invariants automatically. In: International Joint Conference on Automated Reasoning, pp. 483–497. Springer, Berlin (2006)
Groote, J.F., Mousavi, M.R.: Modeling and Analysis of Communicating Systems. MIT Press, Cambridge (2014)
Grumberg, O., Long, D.E.: Model checking and modular verification. ACM Trans. Program. Lang. Syst. 16(3), 843–871 (1994)
Gupta, A., McMillan, K.L., Fu, Z.: Automated assumption generation for compositional verification. In: International Conference on Computer Aided Verification, pp. 420–432. Springer, Berlin (2007)
Hashimi, S.: Service-oriented architecture explained. Available at http://www.windowsdevcenter.com/pub/a/dotnet/2003/08/18/soa_explained.html (2003)
Hewitt, C.: Orgs for scalable, robust, privacy-friendly client cloud computing. IEEE Internet Comput. 12(5), 96 (2008)
Hewitt, C.: Actorscript(tm): Industrial strength integration of local and nonlocal concurrency for client-cloud computing. CoRR abs/0907.3330 (2009). http://arxiv.org/abs/0907.3330
Heymann, M., Lin, F.: Discrete-event control of nondeterministic systems. IEEE Trans. Autom. Control 43(1), 3–17 (1998)
Huth, M., Ryan, M.: Logic in Computer Science: Modelling and Reasoning About Systems. Cambridge University Press, Cambridge (2004)
Johnsen, E.B., Owe, O.: An asynchronous communication model for distributed concurrent objects. Softw. Syst. Model. 6(1), 39–58 (2007)
Johnsen, E.B., Owe, O., Yu, I.C.: Creol: a type-safe object-oriented model for distributed concurrent systems. Theoret. Comput. Sci. 365(1), 23–66 (2006)
Jones, C.B.: Specification and design of (parallel) programs. IFIP Congress 83, 321–332 (1983)
Karmani, R.K., Shali, A., Agha, G.A.: Actor frameworks for the JVM platform: a comparative analysis. In: Proceedings of the 7th International Conference on Principles and Practice of Programming in Java, pp. 11–20. ACM (2009)
Kupferman, O., Lampert, R.: On the construction of fine automata for safety properties. In: Automated Technology for Verification and Analysis, 4th International Symposium. Lecture Notes in Computer Science, vol. 4218, pp. 110–124. Springer, Berlin (2006)
Larsen, K.G.: Context-dependent bisimulation between processes (1986)
Larsen, K.G., Xinxin, L.: Compositionality through an operational semantics of contexts. J. Log. Comput. 1(6), 761–795 (1991)
Lewis, G., Morris, E., Smith, D., O’Brien, L.: Service-oriented migration and reuse technique (smart). In: 13th IEEE International Workshop on Software Technology and Engineering Practice, pp. 222–229. IEEE (2005)
Linthicum, D.S.: Enterprise Application Integration. Addison-Wesley, Reading (2000)
Markovski, J.: A process-theoretic approach to supervisory coordination under partial observation. Sci. Comput. Program. 115, 127–145 (2016)
Nam, W., Alur, R.: Learning-based symbolic assume-guarantee reasoning with automatic decomposition. In: International Symposium on Automated Technology for Verification and Analysis, pp. 170–185. Springer, Berlin (2006)
Nam, W., Madhusudan, P., Alur, R.: Automatic symbolic compositional verification by learning assumptions. Formal Methods Syst. Des. 32(3), 207–234 (2008)
van Noord, G.: Treatment of epsilon moves in subset construction. Comput. Linguist. 26(1), 61–76 (2000)
Overkamp, A.: Supervisory control using failure semantics and partial specifications. IEEE Trans. Autom. Control 42(4), 498–510 (1997)
Parveen, T., Tilley, S.: A research agenda for testing soa-based systems. In: 2nd Annual IEEE Systems Conference, pp. 1–6. IEEE (2008)
Pasareanu, C.S., Giannakopoulou, D., Bobaru, M.G., Cobleigh, J.M., Barringer, H.: Learning to divide and conquer: applying the l* algorithm to automate assume-guarantee reasoning. Formal Methods Syst. Des. 32(3), 175–205 (2008)
Pena, J.M., Oliveira, A.L.: A new algorithm for exact reduction of incompletely specified finite state machines. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 18(11), 1619–1632 (1999)
Pnueli, A.: In transition from global to modular temporal reasoning about programs. In: Logics and Models of Concurrent Systems, pp. 123–144. Springer, Berlin (1985)
Raclet, J.B.: Residual for component specifications. Electron. Notes Theor. Comput. Sci. 215, 93–110 (2008)
Ramadge, P., Wonham, W.: Supervisory control of a class of discrete event processes. In: Analysis and Optimization of Systems, pp. 475–498. Springer, Berlin (1984)
Ramadge, P.J., Wonham, W.M.: Supervisory control of a class of discrete event processes. SIAM J. Control Optim. 25(1), 206–230 (1987)
Sen, K.: Concolic testing and constraint satisfaction. In: International Conference on Theory and Applications of Satisfiability Testing. Lecture Notes in Computer Science, vol. 6695, pp. 3–4. Springer, Berlin (2011)
Sirjani, M.: Rebeca: Theory, Applications, and Tools, pp. 102–126. Springer, Berlin (2007)
Sirjani, M., Movaghar, A., Shali, A., De Boer, F.S.: Modeling and verification of reactive systems using rebeca. Fundam. Informaticae 63(4), 385–410 (2004)
Szyperski, C.: Component Software: Beyond Object-oriented Programming, 2nd edn. Addison-Wesley Longman Publishing Co., Inc, Boston (2002)
Thati, P., Ziaei, R., Agha, G.: A theory of may testing for actors. In: IFIP TC6/WG6.1 Fifth International Conference on Formal Methods for Open Object-Based Distributed Systems. IFIP Conference Proceedings, vol. 209, pp. 147–162. Kluwer, Dordrecht (2002)
Van Hulst, A.C., Reniers, M.A., Fokkink, W.J.: Maximal synthesis for hennessy-milner logic. ACM Trans. Embed. Comput. Syst. 14(1), 10 (2015)
Wan, K.M., Lei, P., Chatwin, C., Young, R.: Service-oriented architecture. Encycl. E-Commer. E-Gov. Mob. Commer. 160(1), 998–1002 (2006)
Zakeriyan, A., Khamespanah, E., Sirjani, M., Khosravi, R.: Jacco: more efficient model checking toolset for java actor programs. In: Proceedings of the 5th International Workshop on Programming Based on Actors, Agents, and Decentralized Control, pp. 37–44. ACM (2015)
Zheng, Y., Zhou, J., Krause, P.: A model checking based test case generation framework forweb services. In: International Conference on Information Technology, pp. 715–722. IEEE (2007)
Acknowledgements
We would like to thank Mohammad Reza Mousavi for his helpful discussion on the paper.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Abbasi, R., Ghassemi, F. & Khosravi, R. Verification of asynchronous systems with an unspecified component. Acta Informatica 56, 161–203 (2019). https://doi.org/10.1007/s00236-018-0317-x
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00236-018-0317-x