Abstract
The analysis of software architecture plays an important role in understanding the system structures and facilitate proper implementation of user requirements. Despite its importance in the software engineering practice, the lack of formal description and verification support in this domain hinders the development of quality architectural models. To tackle this problem, in this work, we develop an approach for modeling and verifying software architectures specified using Monterey Phoenix (MP) architecture description language. MP is capable of modeling system and environment behaviors based on event traces, as well as supporting different architecture composition operations and views. First, we formalize the syntax and operational semantics for MP; therefore, formal verification of MP models is feasible. Second, we extend MP to support shared variables and stochastic characteristics, which not only increases the expressiveness of MP, but also widens the properties MP can check, such as quantitative requirements. Third, a dedicated model checker for MP has been implemented, so that automatic verification of MP models is supported. Finally, several experiments are conducted to evaluate the applicability and efficiency of our approach
Similar content being viewed by others
Notes
Without losing generality, we assume there is only one initial state in a PA.
Events and actions are interchangeable in this thesis.
References
Allen, R., Douence, R., Garlan, D.: Specifying and analyzing dynamic software architectures. In: Astesiano, E. (ed) Fundamental Approaches to Software Engineering (FASE), vol. 1382, pp. 21–37. Springer, Berlin
Allen, R., Garlan, D.: A formal basis for architectural connection. ACM Trans. Softw. Eng. Methodol. 6(3), 213–249 (1997)
Auguston, M.: Monterey phoenix, or how to make software architecture executable. In: Arora, S., Leavens, G.T. (eds.) OOPSLA Companion, pp. 1031–1040. ACM, NY, USA (2009)
Auguston, M.: Software architecture built from behavior models. ACM SIGSOFT Softw. Eng. Notes 34(5), 1–15 (2009)
Auguston, M., Whitcomb, C.: System architecture specification based on behavior models. In: Proceedings of the 15th ICCRTS Conference (International Command and Control Research and Technology Symposium), Santa Monica, CA, June 22–24 (2010)
Baier, C., Katoen, J.: Principles of Model Checking. The MIT Press, Cambridge (2008)
Chaki, S., Clarke, E.M., Ouaknine, J., Sharygina, N., Sinha, N.: State/event-based software model checking. In: Leuschel, M., Wehrheim, H. (eds.) IFM, vol. 2999 of LNCS, pp. 128–147. Springer, Berlin (2004)
Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. The MIT Press, Cambridge (1999)
Corradini, F., Inverardi, P., Wolf, A.L.: On relating functional specifications to architectural specifications: a case study. Sci. Comput. Program. 59(3), 171–208 (2006)
Garlan, D., Monroe, R.T., Wile, D.: Acme: an architecture description interchange language. In: Johnson, J.H. (ed.) CASCON, p. 7, IBM, Toronto (1997)
Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21, 666–677 (1978)
Inverardi, P., Wolf, A.L.: Formal specification and analysis of software architectures using the chemical abstract machine model. IEEE Trans. Softw. Eng. 21(4), 373–386 (1995)
Jackson, D.: Alloy: a lightweight object modelling notation. ACM Trans. Softw. Eng. Methodol. 11(2), 256–290 (2002)
Kim, J.S., Garlan, D.: Analyzing architectural styles with alloy. In : Proceedings of the ISSTA 2006 Workshop on Role of Software Architecture for Testing and Analysis, ROSATEA ’06, pp. 70–80. ACM, New York (2006)
Kwiatkowska, M., Norman, G., Parker, D.: PRISM 4.0: verification of probabilistic real-time systems. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV, Snowbird, vol. 6806, pp. 585–591, Springer, Heidelberg (2011)
Liu, Y., Sun, J., Dong, J.S.: An analyzer for extended compositional process algebras. In: Schäfer, W., Dwyer, M.B., Gruhn, V. (eds.) ICSE Companion, pp. 919–920. ACM, Leipzig, Germany (2008)
Liu, Y., Sun, J., Dong, J.S.: Pat 3:aAn extensible architecture for building multi-domain model checkers. In: Dohi, T., Cukic, B. (eds.) ISSRE, pp. 190–199. IEEE, Hiroshima, Japan (2011)
Mahony, B.P., Dong, J.S.: Blending object-Z and timed CSP: an introduction to TCOZ. In: Proceedings of the 20th International Conference on Software Engineering (ICSE 1998), pp. 95–104 (1998)
Pnueli. A.: The temporal logic of programs. In: Gruska, J. (ed.) FOCS, pp. 46–57. IEEE, Rhode Island, USA (1977)
Roscoe., A.W.: The Theory and Practice of Concurrency. Prentice Hall PTR, Englewood Cliffs (1997)
Schrijver, A.: Combinatorial Optimization: Polyhedra and Efficiency. Springer, Berlin (2003)
Selvin, S.: On the monty hall problem (letter to the editor). Am. Stat. 29(3), 134 (1975)
Selvin, S.: A problem in probability (letter to the editor). Am. Stat. 29(1), 67–71 (1975)
Smith, G.: The Object-Z Specification Language. Kluwer Academic Publisher, Dordrecht (2000)
Spivey, J.M.: The Z Notation: A Reference Manual. Prentice-Hall Inc., Upper Saddle River (1989)
Stoelinga, M.: An introduction to probabilistic automata. Bull. EATCS 78, 176–198 (2002)
Sun, J., Liu, Y., Dong, J.S., Pang, J.: PAT: towards flexible verification under fairness. In: Bouajjani, A., Maler, O. (eds.) CAV, vol. 5643 of LNCS, pp. 709–714. Springer, Berlin (2009)
Sun, J., Song, S.Z., Liu. Y.: Model checking hierarchical probabilistic systems. In: Dong, J.S., Zhu, H. (eds.) Formal Methods and Software Engineering, ICFEM, vol. 6447, pp. 388–403. Springer, Berlin (2010).
Tan, L., Krings, A.: An adaptive N-variant software architecture for multi-core platforms: models and performance analysis. In: Proceedings of the International Conference on Computational Science and Its Applications, Part II (ICCSA’11), pp. 490–505 (2011)
Zhang, J., Liu, Y., Auguston, M., Sun, J., Dong, J.S.: Using monterey phoenix to formalize and verify system architectures. In: Leung, K.R.P.H., Muenchaisri, P. (eds.) APSEC, pp. 644–653. IEEE, Hong Kong, China (2012)
Zhang, P., Muccini, H., Li, B.: A classification and comparison of model checking software architecture techniques. J. Syst. Softw. 83(5), 723–744 (2010)
Acknowledgments
This work is supported by “Formal Verification on Cloud” project under Grant No: M4081155.020 and “Verification of Security Protocol Implementations” project under Grant No: M4080996.020.
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Dr. Perry Alexander.
This work is a substantial extension of [30]. In [30], we presented the formal syntax and operational semantics of Monterey Phoenix (MP) language. Further, a new model checker for MP was implemented, and several representative examples were conducted to show its applicability. In this work, we extend [30] mainly in two ways. First, we extend the formal syntax of MP to support probabilistic characteristics. The semantic model of MP is switched from Labeled Transition Systems (LTS) to Probabilistic Automata (PA). Therefore, the model checker of MP now supports modeling and verifying stochastic software architectures. Second, shared variables are now supported in MP, which makes the modeling of MP expressive and convenient. In a nutshell, the extensions of MP in this work increase its expressiveness to cover more scenarios.
Rights and permissions
About this article
Cite this article
Song, S., Zhang, J., Liu, Y. et al. Formalizing and verifying stochastic system architectures using Monterey Phoenix. Softw Syst Model 15, 453–471 (2016). https://doi.org/10.1007/s10270-014-0411-7
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-014-0411-7