Software & Systems Modeling

, Volume 11, Issue 1, pp 127–149 | Cite as

Modeling and enforcing invariants of dynamic software architectures

Regular Paper

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.

Keywords

Software architecture UML profile Formal specification and verification Aspect-oriented programming Runtime enforcement 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)Google Scholar
  2. 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)Google Scholar
  3. 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)Google Scholar
  4. 4.
    OMG: UML 2.0 Superstructure Specification, Final Adopted Specification. OMG document (2003)Google Scholar
  5. 5.
    Spivey M.: The Z notation: a reference manual, Second Edition. Prentice Hall, New York (1992)Google Scholar
  6. 6.
    Meisels, I., Saaltink, M.: The Z/EVES Reference Manual (for Version 1.5). Reference manual, ORA Canada (1997)Google Scholar
  7. 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)Google Scholar
  8. 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)Google Scholar
  9. 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)Google Scholar
  10. 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)Google Scholar
  11. 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)Google Scholar
  12. 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)Google Scholar
  13. 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)MATHCrossRefGoogle Scholar
  14. 14.
    Le Métayer D.: Describing Software Architecture Styles Using Graph Grammars. IEEE Trans. Softw. Eng. 24, 521–533 (1998)CrossRefGoogle Scholar
  15. 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)Google Scholar
  16. 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)Google Scholar
  17. 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)Google Scholar
  18. 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)Google Scholar
  19. 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)Google Scholar
  20. 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)Google Scholar
  21. 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)CrossRefGoogle Scholar
  22. 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)Google Scholar
  23. 23.
    Kallel S., Charfi A., Jmaiel M.: Using aspects for enforcing formal architectural invariants. Electr. Notes Theoret. Comput. Sci. 215, 5–21 (2008)CrossRefGoogle Scholar
  24. 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)Google Scholar
  25. 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)Google Scholar
  26. 26.
    Kitchenham B., Pickard L., Pfleeger S.L.: Case studies for method and tool evaluation. IEEE Softw. 12, 52–62 (1995)CrossRefGoogle Scholar
  27. 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)Google Scholar
  28. 28.
    Khan, K.: JBOSSAOP: Framework for Organizing Cross Cutting Concerns. http://jboss.org/jbossaop/ (2006)
  29. 29.
    Rho, T., Kniesel, G.: Uniform genericity for aspect languages. Technical report IAI-TR-2004-4, University of Bonn, Germany (2004)Google Scholar
  30. 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)Google Scholar
  31. 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)Google Scholar
  32. 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)Google Scholar
  33. 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)Google Scholar
  34. 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)Google Scholar
  35. 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)Google Scholar
  36. 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)Google Scholar
  37. 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)Google Scholar
  38. 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)Google Scholar
  39. 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)Google Scholar
  40. 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)Google Scholar
  41. 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)CrossRefGoogle Scholar
  42. 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)CrossRefGoogle Scholar
  43. 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. 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)Google Scholar
  45. 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)Google Scholar
  46. 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)Google Scholar
  47. 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)Google Scholar
  48. 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)Google Scholar
  49. 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)Google Scholar
  50. 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)CrossRefGoogle Scholar
  51. 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)Google Scholar
  52. 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)Google Scholar
  53. 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)Google Scholar
  54. 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)Google Scholar
  55. 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)Google Scholar
  56. 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)Google Scholar
  57. 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)Google Scholar
  58. 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)Google Scholar
  59. 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)Google Scholar
  60. 60.
    Cazzola W., Pini S.: On the footprints of join points: the blueprint approach. J. Object Technol. 6, 167–192 (2007)CrossRefGoogle Scholar
  61. 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)Google Scholar
  62. 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)Google Scholar
  63. 63.
    Stein, D., Hanenberg, S., Unland, R.: Modeling pointcuts. In: Proceedings of the AOSD Workshop on Aspect-oriented Requirements Engineering and Architecture Design (2004)Google Scholar
  64. 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)Google Scholar
  65. 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)Google Scholar
  66. 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)Google Scholar
  67. 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)Google Scholar

Copyright information

© Springer-Verlag 2010

Authors and Affiliations

  • Slim Kallel
    • 1
    • 2
  • Mohamed Hadj Kacem
    • 1
  • Mohamed Jmaiel
    • 1
  1. 1.ReDCAD LaboratoryUniversity of SfaxSfaxTunisia
  2. 2.Software Technology GroupDarmstadt University of TechnologyDarmstadtGermany

Personalised recommendations