Skip to main content
Log in

Modeling and enforcing invariants of dynamic software architectures

  • Regular Paper
  • Published:
Software & Systems Modeling Aims and scope Submit manuscript

Abstract

In this paper, we propose an “end-to-end” approach that supports dynamic reconfiguration of software architectures taking advantage of graphical modeling, formal methods and aspect-oriented programming. There are three ingredients of the proposal. The specification end of the solution is covered by a new UML profile enabling to specify the desired architectural style (model), its invariants and the intended reconfiguration operations. In order to verify the consistency of the model and the preservation of the invariants after every reconfiguration, we automatically generate formal specifications in Z notation from the defined model. At the runtime enforcing end of the solution, we propose to encode the enforcement logic as aspect in the AspectJ language. The third important ingredient that makes our approach end-to-end is the automatic translation of formal specifications into aspect-based enforcement code.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Allen, R., Douence, R., Garlan, D.: Specifying and Analyzing Dynamic Software Architectures. In: Proceedings of the 1st Internationsl Conference on Fundamental Approaches to Software Engineering. Volume 1382 of Lecture Notes in Computer Science, pp. 21–37. Springer, Berlin (1998)

  2. Garlan, D., Schmerl, B.: Model-based adaptation for self-healing systems. In: Proceedings of the 1st Workshop on Self-healing Systems, pp. 27–32. ACM, New York (2002)

  3. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.M., Irwin, J.: Aspect-oriented Programming. In: Proceedings of the 11th European Conference on Object-oriented Programming. Lecture Notes in Computer Science, vol. 1241, pp. 220–242. Springer, Berlin (1997)

  4. OMG: UML 2.0 Superstructure Specification, Final Adopted Specification. OMG document (2003)

  5. Spivey M.: The Z notation: a reference manual, Second Edition. Prentice Hall, New York (1992)

    Google Scholar 

  6. Meisels, I., Saaltink, M.: The Z/EVES Reference Manual (for Version 1.5). Reference manual, ORA Canada (1997)

  7. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An Overview of AspectJ. In: Proceedings of the 15th European Conference on Object-oriented Programming. Lecture Notes in Computer Science, vol. 2072, pp. 327–353. Springer, Berlin (2001)

  8. Bockisch, C., Kanthak, S., Haupt, M., Arnold, M., Mezini, M.: Efficient control flow quantification. In: Proceedings of the 21st Annual ACM SIGPLAN Conference on Object-oriented Programming Systems, Languages, and Applications, pp. 125–138. ACM, New York (2006)

  9. Guennoun, K., Drira, K., Chassot, C.: Architectural adaptability management for mobile cooperative systems. In: Proceedings of the International Conference on Multimedia and Ubiquitous Engineering, pp. 1130–1135. IEEE Computer Society (2007)

  10. Loulou, I., Hadj Kacem, A., Jmaiel, M., Drira, K.: Formal design of structural and dynamic features of publish/subscribe architectural styles. In: Proceedings of the 1st European Conference on Software Architecture. Lecture Notes in Computer Science, vol. 4758, pp. 44–59. Springer, Berlin (2007)

  11. Hadj Kacem, M., Miladi, M.N., Jmaiel, M., Hadj Kacem, A., Drira, K.: Towards a UML profile for the description of dynamic software architectures. In: Proceedings of the International Conference on Component-oriented Enterprise Applications, pp. 25–39 (2005)

  12. Hadj Kacem, M., Jmaiel, M., Hadj Kacem, A., Drira, K.: Describing dynamic software architectures using an extended UML model. In: Proceedings of the 21st Annual Symposium on Applied Computing, Track—Model Transformation. Volume 2, pp. 1245–1249. ACM, New York (2006)

  13. Gogolla M., Büttner F., Richters M.: USE: A UML-based specification environment for validating UML and OCL. Sci. Comput. Program 69, 27–34 (2007)

    Article  MATH  Google Scholar 

  14. Le Métayer D.: Describing Software Architecture Styles Using Graph Grammars. IEEE Trans. Softw. Eng. 24, 521–533 (1998)

    Article  Google Scholar 

  15. Hirsch, D., Montanari, P.I.U.: Graph grammars and constraint solving for software architecture styles. In: Proceedings of the Third International Workshop on Software Architecture, pp. 69–72. ACM, New York (1998)

  16. Miladi, M.N., Kacem, M.H., Boukhris, A., Jmaiel, M., Drira, K.: A uml rule-based approach for describing and checking dynamic software architectures. In: Proceedings of the 6th ACS/IEEE International Conference on Computer Systems and Applications, pp. 1107–1114. IEEE (2008)

  17. Sengupta, S., Bhattacharya, S.: Formalization of UML diagrams and their consistency verification: A Z notation based approach. In: Proceedings of the 1st Conference on India Software Engineering, pp. 151–152. ACM, New York (2008)

  18. Dupuy, S., Ledru, Y., Chabre-Peccoud, M.: An overview of RoZ: a tool for integrating UML and Z specifications. In: Proceedings of the 12th International Conference on Advanced Information Systems Engineering. Lecture Notes in Computer Science, vol. 1789, pp. 417–430. Springer, Berlin (2000)

  19. Loulou, I., Hadj Kacem, A., Jmaiel, M., Drira, K.: Towards a unified graph-based framework for dynamic component-based architectures description in Z. In: Proceedings of the IEEE/ACS International Conference on Pervasive Services, pp. 227–234. IEEE Computer Society (2004)

  20. Hadj Kacem, M., Jmaiel, M., Hadj Kacem, A., Drira, K.: An UML-based approach for validation of software architecture descriptions. In: Proceedings of the 2nd International Conference on Trends in Enterprise Application Architecture. Lecture Notes in Computer Science, vol. 4473, pp. 158–171. Springer, Berlin (2007)

  21. Abowd G.D., Allen R., Garlan D.: Formalizing style to understand descriptions of software architecture. ACM Trans. Softw. Eng. Method. 4, 319–364 (1995)

    Article  Google Scholar 

  22. Kallel, S., Charfi, A., Mezini, M., Jmaiel, M.: Combining formal methods and aspects for specifying and enforcing architectural invariants. In: Proceedings of the 9th International Conference on Coordination Models and Languages. Lecture Notes in Computer Science, vol. 4467, pp. 211–230. Springer, Berlin (2007)

  23. Kallel S., Charfi A., Jmaiel M.: Using aspects for enforcing formal architectural invariants. Electr. Notes Theoret. Comput. Sci. 215, 5–21 (2008)

    Article  Google Scholar 

  24. Michelsen, C.D., Dominick, W.D., Urban, J.E.: A methodology for the objective evaluation of the user/system interfaces of the madam system using software engineering principles. In: Proceedings of the 18th Annual Southeast Regional Conference, pp. 103–109. ACM, New York (1980)

  25. Sacha, K.: Evaluation of software quality. In: Proceeding of the 2005 Conference on Software Engineering: Evolution and Emerging Technologies, pp. 381–388. IOS Press, Amsterdam (2005)

  26. Kitchenham B., Pickard L., Pfleeger S.L.: Case studies for method and tool evaluation. IEEE Softw. 12, 52–62 (1995)

    Article  Google Scholar 

  27. Kaplan, S.M., Loyall, J.P., K.Goering, S.: Specifying concurrent languages and systems with delta-grammars. In: Research Directions in Concurrent Object-oriented Programming, pp. 235–256. MIT Press, Cambridge (1993)

  28. Khan, K.: JBOSSAOP: Framework for Organizing Cross Cutting Concerns. http://jboss.org/jbossaop/ (2006)

  29. Rho, T., Kniesel, G.: Uniform genericity for aspect languages. Technical report IAI-TR-2004-4, University of Bonn, Germany (2004)

  30. Ostermann, K., Mezini, M., Bockisch, C.: Expressive pointcuts for increased modularity. In: Proceedings of the 19th European Conference on Object-oriented Programming. Lecture Notes in Computer Science, vol. 3586, pp. 214–240. Springer, Berlin (2005)

  31. Bradbury, J.S., Cordy, J.R., Dingel, J., Wermelinger, M.: A Survey of self management in dynamic software architecture specifications. In: Proceedings of the 1st ACM SIGSOFT International Workshop on Self-Managed Systems, pp. 28–33. ACM, New York (2004)

  32. van Lamsweerde, A.: Formal specification: a Roadmap. In: Proceedings of the Conference on the Future of Software Engineering, pp. 147–159. ACM, New York (2000)

  33. Endler, M., Wei, J.: Programming generic dynamic reconfigurations for distributed applications. In: Proceedings of the International Workshop Configurable Distributed Systems, pp. 68–79. IEEE (1992)

  34. van Glabbeek, R.J.: Bounded nondeterminism and the approximation induction principle in process algebra. In: Proceedings of the 4th Annual Symposium on Theoretical Aspects of Computer Sciences. Lecture Notes in Computer Science, vol. 247, pp. 336–347. Springer, Berlin (1987)

  35. Magee, J., Dulay, N., Eisenbach, S., Kramer, J.: Specifying distributed software architectures. In: Proceedings of the 5th European Software Engineering Conference. Lecture Notes in Computer Science, vol. 989, pp. 137–153. Springer, Berlin (1995)

  36. Miladi, M.N., Krichen, I., Jmaiel, M., Drira, K.: An xADL Extension for managing dynamic deployment in distributed service oriented architectures. In: Prooceedings of the Third IPM International Conference on Fundamentals of Software Engineering. Lecture Notes in Computer Science, vol. 5961. Springer, Berlin (2009)

  37. Vergnaud, T., Pautet, L., Kordon, F.: Using the AADL to describe distributed applications from middleware to software components. In: Proceedings of the 10th International Conference on Reliable Software Techologies Ada-Europe. Lecture Notes in Computer Science, vol. 3555, pp. 67–78. Springer, Berlin (2005)

  38. Leclercq, M., Ozcan, A.E., Quema, V., Stefani, J.B.: Supporting heterogeneous architecture descriptions in an extensible toolset. In: Proceedings of the 29th International Conference on Software Engineering, pp. 209–219. IEEE (2007)

  39. Pérez-Martinez, J.E., Sierra-Alonso, A.: UML 1.4 versus UML 2.0 as languages to describe software architectures. In: Proceedings of the European Workshop on Software Architecture. Lecture Notes in Computer Science, vol. 3047, pp. 88–102. Springer, Berlin (2004)

  40. Medvidovic, N., Rosenblum, D.S., Taylor, R.N.: A language and environment for architecture-based software development and evolution. In: Proceedings of the 21st International Conference on Software Engineering, pp. 44–53. ACM, New York (1999)

  41. Medvidovic N., Rosenblum D.S., Redmiles D.F., Robbins J.E.: Modeling software architectures in the unified modeling language. ACM Trans. Softw. Eng. Method 11, 2–57 (2002)

    Article  Google Scholar 

  42. Pérez-Martinez J.E.: Heavyweight extensions to the UML metamodel to describe the C3 architectural style. SIGSOFT Softw. Eng. Notes 28, 5–11 (2003)

    Article  Google Scholar 

  43. Yang Q., Yang X.C., Xu M.W.: A framework for dynamic software architecture-based self-healing. SIGSOFT Softw. Eng. Notes 30, 1–4 (2005)

    Google Scholar 

  44. Georgas, J.C., Taylor, R.N.: Towards a knowledge-based approach to architectural adaptation management. In: Proceedings of the 1st ACM SIGSOFT Workshop on Self-managed Systems, pp. 59–63. ACM, New York (2004)

  45. Kramer, J., Magee, J.: Self-managed systems: an architectural challenge. In: Proceedings of the 2007 Future of Software Engineering, pp. 259–268. IEEE Computer Society (2007)

  46. Tisato, F., Savigni, A., Cazzola, W., Sosio, A.: Architectural reflection: realising software architectures via reflective activities. In: Revised Papers from the Second International Workshop on Engineering Distributed Objects, pp. 102–115. Springer, Berlin (2001)

  47. Cazzola, W., Ghoneim, A., Saake, G.: RAMSES: a reflective middleware for software evolution. In: Proceedings of the 1st ECOOP Workshop on Reflection, AOP and Meta-data for Software Evolution, pp. 21–26 (2004)

  48. Cazzola, W., Ghoneim, A., Saake, G.: System evolution through design information evolution: a case study. In: Proceedings of the 13th International Conference on Intelligent and Adaptive Systems and Software Engineering, pp. 145–150. ISCA (2004)

  49. Dowling, J., Cahill, V.: Self-managed decentralised systems using k-components and collaborative reinforcement learning. In: Proceedings of the 1st ACM SIGSOFT Workshop on Self-managed Systems, pp. 39–43. ACM, New York (2004)

  50. Pessemier N., Seinturier L., Duchien L., Coupaye T.: A component-based and aspect-oriented model for software evolution. Int. J. Comput. Appl. Technol. 31, 94–105 (2008)

    Article  Google Scholar 

  51. Dowling, J., Cahill, V.: The k-component architecture meta-model for self-adaptive software. In: Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns. Lecture Notes in Computer Science, vol. 2192, pp. 81–88. Springer, Berlin (2001)

  52. Moreira, R.S., Blair, G.S., Carrapatoso, E.: Supporting adaptable distributed systems with formaware. In: Proceedings of the 24th International Conference on Distributed Computing Systems Workshops, pp. 320–325. IEEE Computer Society (2004)

  53. Cheng, S.W., Garlan, D., Schmerl, B.R., Sousa, J.P., Spitnagel, B., Steenkiste, P.: Using architectural style as a basis for system self-repair. In: Proceedings of 3rd IEEE/IFIP Conference on Software Architecture, pp. 45–59. Kluwer, Dordretcht (2002)

  54. Oreizy, P., Medvidovic, N., Taylor, R.N.: Runtime software adaptation: framework, approaches, and styles. In: Companion of the 30th International Conference on Software Engineering, pp. 899–910. ACM, New York (2008)

  55. Yu, H., Liu, D., Shao, Z., He, X.: Modeling complex software systems using an aspect extension of object-z. In: Proceedings of the 8th International Conference on Software Engineering and Knowledge Engineering, pp. 11–16 (2006)

  56. Georg, G., Ray, I., France, R.: Using aspects to design a secure system. In: Proceedings of the Eighth International Conference on Engineering of Complex Computer Systems, pp. 117–126. IEEE Computer Society (2002)

  57. Pavlich-Mariscal, J., Michel, L., Demurjian, S.: Enhancing UML to model custom security aspects. In: Proceedings of the 11th International Workshop on Aspect-oriented Modeling, p. 10 (2007)

  58. Iqbal, A., Elrad, T.: Modeling timing constraints of real-time systems as crosscutting concerns. In: Proceedings of the 10th International Workshop on Aspect-oriented Modeling, p. 10 (2006)

  59. Cooper, K., Dai, L., Dascalu, S., Mehta, N., Velagapudi, S.: Towards aspect-oriented model-driven code generation in the formal design analysis framework. In: Proceedings of the 2007 International Conference on Software Engineering Research and Practice, pp. 628–633. CSREA Press, Las Vegas (2007)

  60. Cazzola W., Pini S.: On the footprints of join points: the blueprint approach. J. Object Technol. 6, 167–192 (2007)

    Article  Google Scholar 

  61. Cazzola, W., Pini, S.: AOP vs Software evolution: a score in favor of the blueprint. In: Proceedings of RAM-SE’07-ECOOP’07 Workshop on Reflection, AOP, and Meta-Data for Software Evolution, Fakultät für Informatik, pp. 81–91. Universität Magdeburg (2007)

  62. Klein, J., Hélouët, L., Jézéquel, J.M.: Semantic-based weaving of scenarios. In: Proceedings of the 5th International Conference on Aspect-oriented Software Development, pp. 27–38. ACM, New York (2006)

  63. Stein, D., Hanenberg, S., Unland, R.: Modeling pointcuts. In: Proceedings of the AOSD Workshop on Aspect-oriented Requirements Engineering and Architecture Design (2004)

  64. Jia, X., Skevoulis, S.: Code Synthesis Based on Object-oriented Design Models and Formal Specifications. In: Proceedings of the 22nd International Computer Software and Applications Conference, pp. 393–399. IEEE Computer Society (1998)

  65. Ramkarthik, S., Zhang, C.: Generating Java Skeletal Code with Design Contracts from Specifications in a Subset of Object Z. In: Proceedings of the 5th IEEE/ACIS International Conference on Computer and Information Science, pp. 405–411. IEEE Computer Society (2006)

  66. Allan, C., Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: Adding trace matching with free variables to aspectj. In: Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented Programming, Systems, Languages, and Applications, pp. 345–364. ACM, New York (2005)

  67. Farooq, U., Lam, C.P., Li, H.: Transformation Methodology for UML 2.0 Activity diagram into colored petri nets. In: Proceedings of the third Conference on IASTED International Conference, pp. 128–133. ACTA Press (2007)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Slim Kallel.

Additional information

Communicated by Prof. Gordon Blair

Rights and permissions

Reprints and permissions

About this article

Cite this article

Kallel, S., Hadj Kacem, M. & Jmaiel, M. Modeling and enforcing invariants of dynamic software architectures. Softw Syst Model 11, 127–149 (2012). https://doi.org/10.1007/s10270-010-0162-z

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-010-0162-z

Keywords

Navigation