Software & Systems Modeling

, Volume 15, Issue 3, pp 685–705 | Cite as

Enhanced graph rewriting systems for complex software domains

Dynamic software architecture, non-functional requirements, and correctness by construction
  • Cédric Eichler
  • Thierry Monteil
  • Patricia Stolf
  • Luigi Alfredo Grieco
  • Khalil Drira
Regular Paper

Abstract

Methodologies for correct by construction reconfigurations can efficiently solve consistency issues in dynamic software architecture. Graph-based models are appropriate for designing such architectures and methods. At the same time, they may be unfit to characterize a system from a non-functional perspective. This stems from efficiency and applicability limitations in handling time-varying characteristics and their related dependencies. In order to lift these restrictions, an extension to graph rewriting systems is proposed herein. The suitability of this approach, as well as the restraints of currently available ones, is illustrated, analyzed, and experimentally evaluated with reference to a concrete example. This investigation demonstrates that the conceived solution can (i) express any kind of algebraic dependencies between evolving requirements and properties; (ii) significantly ameliorate the efficiency and scalability of system modifications with respect to classic methodologies; (iii) provide an efficient access to attribute values; (iv) be fruitfully exploited in software management systems; and (v) guarantee theoretical properties of a grammar, like its termination.

Keywords

Constrained and attributed rewriting systems Graph rewriting systems Non-functional requirements Dynamic software architecture Correctness by construction 

References

  1. 1.
    Alaya, M.B., Monteil, T.: Frameself: a generic context-aware autonomic framework for self-management of distributed systems. In: 21st IEEE International Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE), pp. 60–65 (2012)Google Scholar
  2. 2.
    Allen, R., Garlan, D.: A formal basis for architectural connection. ACM Trans. Softw. Eng. Methodol. 6(3), 213–249 (1997)CrossRefGoogle Scholar
  3. 3.
    Allen, R., Douence, R., Garlan, D.: Specifying and analyzing dynamic software architectures. In: Fundamental Approaches to Software Engineering, Lecture Notes in Computer Science, vol. 1382, pp. 21–37. Springer, Berlin (1998)Google Scholar
  4. 4.
    Baleani, M., Ferrari, A., Mangeruca, L., Sangiovanni-Vincentelli, A., Freund, U., Schlenker, E., Wolff, H.J.: Correct-by-construction transformations across design environments for model-based embedded software development. In: Conference on Design, Automation and Test in Europe (DATE), pp. 1044–1049 (2005)Google Scholar
  5. 5.
    Baresi, L., Heckel, R., Thöne, S., Varró, D.: Style-based modeling and refinement of service-oriented architectures. J. Softw. Syst. Model. 5(2), 187–207 (2006)CrossRefGoogle Scholar
  6. 6.
    Bonakdarpour, B., Bozga, M., Jaber, M., Quilbeuf, J., Sifakis, J.: Automated conflict-free distributed implementation of component-based models. In: International Symposium on Industrial Embedded Systems (SIES), pp. 108–117 (2010)Google Scholar
  7. 7.
    Borgetto, D., Casanova, H., Da Costa, G., Pierson, J.M.: Energy-aware service allocation. Future Gener. Comput. Syst. 28(5), 769–779 (2012)CrossRefGoogle Scholar
  8. 8.
    Bradbury, J.S., Cordy, J.R., Dingel, J., Wermelinger, M.: A survey of self-management in dynamic software architecture specifications. In: ACM SIGSOFT Workshop on Self-managed Systems (WOSS), ACM, New York, NY, USA, pp. 28–33 (2004)Google Scholar
  9. 9.
    Caron, E., Desprez, F.: Diet: a scalable toolbox to build network enabled servers on the grid. Int. J. High Perform. Comput. Appl. 20(3), 335–352 (2006)CrossRefGoogle Scholar
  10. 10.
    Chomsky, N.: Three models for the description of language. IEEE Trans. Inf. Theory 2(3), 113–124 (1956)CrossRefMATHGoogle Scholar
  11. 11.
    Ehrig, H., Mahr, B.: Fundamentals of Algebraic Specification. EATCS Monographs in Theoretical Computer Science. An EATCS Series. Springer, Berlin (1985)Google Scholar
  12. 12.
    Ehrig, H., Ehrig, K., Prange, U., Taentzer, G.: Fundamental theory for typed attributed graphs and graph transformation based on adhesive HLR categories. Fundam. Inform. 74(1), 31–61 (2006)MathSciNetMATHGoogle Scholar
  13. 13.
    Eichler, C., Gharbi, G., Guermouche, N., Monteil, T., Stolf, P.: Graph-based formalism for machine-to-machine self-managed communications. In: 22nd IEEE International Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE), pp. 74–79 (2013)Google Scholar
  14. 14.
    Gacek, C., Lemos, R.: Architectural description of dependable software systems. In: Besnard, D., Gacek, C., Jones, C. (eds.) Structure for Dependability: Computer-Based Systems from an Interdisciplinary Perspective, pp. 127–142. Springer, London (2006)CrossRefGoogle Scholar
  15. 15.
    Garlan, D., Monroe, R.T., Wile, D.: Acme: architectural description of component-based systems. In: Leavens, G.T., Sitaraman, M. (eds.) Foundations of Component-Based Systems, pp. 47–68. Cambridge University Press, Cambridge (2000)Google Scholar
  16. 16.
    Gössler, G., Graf, S., Majster-Cederbaum, M., Martens, M., Sifakis, J.: Ensuring properties of interaction systems by construction In: Reps, T., Sagiv, M., Bauer, J. (eds.) Program Analysis and Compilation, Theory and Practice, pp. 201–224. Springer, Berlin (2007)Google Scholar
  17. 17.
    Hirsch, D., Montanari, U.: Consistent transformations for software architecture styles of distributed systems. Electron. Notes Theor. Comput. Sci. 28(0), 4–25 (2000)CrossRefMATHGoogle Scholar
  18. 18.
    Hirsch, D., Inverardi, P., Montanari, U.: Modeling software architectures and styles with graph grammars and constraint solving. In: Donohoe, P. (ed.) Software Architecture, The International Federation for Information Processing, vol. 12, pp. 127–143. Springer, New York (1999)Google Scholar
  19. 19.
    Hoffmann, B.: Graph transformation with variables. In: Formal Methods in Software and System Modeling, vol. 3393 of Lecture Notes in Computer Science, Springer, pp. 101–115 (2005)Google Scholar
  20. 20.
    IEEE: IEEE recommended practice for architectural description of software-intensive systems. IEEE Std 1471-2000, pp. 1–23 (2000)Google Scholar
  21. 21.
    Kacem, M.H., Jmaiel, M., Kacem, A.H., Drira, K.: Evaluation and comparison of ADL based approaches for the description of dynamic of software architectures. In: 7th International Conference on Enterprise Information Systems (ICEIS), Miami, USA, pp. 189–195 (2005)Google Scholar
  22. 22.
    Kandé, M.M., Strohmeier, A.: Towards a uml profile for software architecture descriptions. In: 3rd International Conference on the Unified Modeling Language: Advancing the Standard (UML). Springer, Berlin, Heidelberg, pp. 513–527 (2000)Google Scholar
  23. 23.
    Kephart, J., Chess, D.: The vision of autonomic computing. Computer 36(1), 41–50 (2003)MathSciNetCrossRefGoogle Scholar
  24. 24.
    Kleene, S.C.: On notation for ordinal number. J. Symb. Logic 3(4), 150–155 (1938)MathSciNetCrossRefMATHGoogle Scholar
  25. 25.
    Kleene, S.C.: Introduction to Metamathematics, Bibliotheca mathematica, vol. 1. North-Holland, Amsterdam (1952)MATHGoogle Scholar
  26. 26.
    Le Métayer, D.: Describing software architecture styles using graph grammars. IEEE Trans. Softw. Eng. 24, 521–533 (1998)CrossRefGoogle Scholar
  27. 27.
    Loulou, I., Kacem, A.H., Jmaiel, M., Drira, K.: Towards a unified graph-based framework for dynamic component-based architectures description in Z. In: IEEE/ACS International Conference on Pervasive Services (ICPS). IEEE Computer Society, Los Alamitos, CA, USA, pp. 227–234 (2004)Google Scholar
  28. 28.
    Lun, L., Chi, X.: Relationship between testing criteria for architecture configuration testing based on wright specification. In: International Conference on Computational Intelligence and Software Engineering (CiSE), pp. 1–4 (2010) Google Scholar
  29. 29.
    Magee, J., Kramer, J.: Dynamic structure in software architectures. In: 4th ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE), pp. 3–14 (1996)Google Scholar
  30. 30.
    Oquendo, F.: Pi-method: a model-driven formal method for architecture-centric software engineering. ACM SIGSOFT Softw. Eng. Notes 31, 1–13 (2006)Google Scholar
  31. 31.
    Parr, T., Fisher, K.: LL(*): the foundation of the ANTLR parser generator. SIGPLAN Not. 47(6), 425–436 (2011)CrossRefGoogle Scholar
  32. 32.
    Rodriguez, I.B., Drira, K., Chassot, C., Guennoun, K., Jmaiel, M.: A rule-driven approach for architectural self adaptation in collaborative activities using graph grammars. Int. J. Auton. Comput. 3, 226–245 (2010)CrossRefGoogle Scholar
  33. 33.
    Rong, M., Liu, C., Zhang, G.: Modeling aspect-oriented software architecture based on acme. In: 6th International Conference on Computer Science Education (ICCSE), pp. 1159–1164 (2011)Google Scholar
  34. 34.
    Rozenberg, G. (ed.): Handbook of Graph Grammars and Computing by Graph Transformations. Volume 1: Foundations, World Scientific, Singapore (1997).Google Scholar
  35. 35.
    Saxena, P., Menezes, N., Cocchini, P., Kirkpatrick, D.A.: The scaling challenge: can correct-by-construction design help? In: International Symposium on Physical Design (ISPD), ACM, New York, NY, USA, pp. 51–58 (2003)Google Scholar
  36. 36.
    Selonen, P., Xu, J.: Validating uml models against architectural profiles. SIGSOFT Softw. Eng. Notes 28, 58–67 (2003)CrossRefGoogle Scholar
  37. 37.
    Sharrock, R., Monteil, T., Stolf, P., Hagimont, D., Broto, L.: Non-intrusive autonomic approach with self-management policies applied to legacy infrastructures for performance improvements. Int. J. Adapt. Resil. Auton. Syst. 2(1), 58–76 (2011)CrossRefGoogle Scholar
  38. 38.
    Simalatsar, A., Guo, L., Bozga, M., Passerone, R.: Integration of correct-by-construction bip models into the Metroii design space exploration flow. In: 30th IEEE International Conference on Computer Design (ICCD), pp. 490–491 (2012)Google Scholar
  39. 39.
    Tahar, B.M., Taoufik, S.R., Mourad, K.: Checking non-functional properties of UML2.0 components assembly. In: 22nd IEEE International Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE), pp. 278–283 (2013)Google Scholar
  40. 40.
    Wermelinger, M., Fiadeiro, J.L.: A graph transformation approach to software architecture reconfiguration. Science of Computer Programming 44(2), 133–155. Special Issue on Applications of Graph Transformations (GRATRA 2000) (2002)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2014

Authors and Affiliations

  • Cédric Eichler
    • 1
    • 2
    • 3
  • Thierry Monteil
    • 1
    • 4
  • Patricia Stolf
    • 2
    • 5
  • Luigi Alfredo Grieco
    • 6
  • Khalil Drira
    • 1
  1. 1.LAAS, CNRSToulouseFrance
  2. 2.IRITToulouseFrance
  3. 3.UPSUniv de ToulouseToulouseFrance
  4. 4.INSAUniv de ToulouseToulouseFrance
  5. 5.UTMUniv de ToulouseToulouseFrance
  6. 6.Department of Electrical and Information EngineeringPolitecnico di BariBariItaly

Personalised recommendations