Property-Preserving Evolution of Components Using VPA-Based Aspects

  • Dong Ha Nguyen
  • Mario Südholt
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4803)

Abstract

Protocols that govern the interactions between software components are a popular means to support the construction of correct component-based systems. Previous studies have, however, almost exclusively focused on static component systems that are not subject to evolution. Evolution of component-based systems with explicit interaction protocols can be defined quite naturally using aspects (in the sense of AOP) that modify component protocols. A major question then is whether aspect-based evolutions preserve fundamental correctness properties, such as compatibility and substitutability relations between software components.

In this paper we discuss how such correctness properties can be proven in the presence of aspect languages that allow matching of traces satisfying interaction protocols and enable limited modifications to protocols. We show how common evolutions of distributed components can be modeled using VPA-based aspects [14] and be proven correct directly in terms of properties of operators of the aspect language. We first present several extensions to an existing language for VPA-based aspects that facilitate the evolution of component systems. We then discuss different proof techniques for the preservation of composition properties of component-based systems that are subject to evolution using protocol-modifying aspects.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Allan, C., Avgustinov, P., Christensen, A.S., et al.: Adding trace matching with free variables to AspectJ. In: Gabriel, R.P. (ed.) ACM Conference on Object-Oriented Programming, Systems and Languages (OOPSLA), ACM Press, New York (2005)Google Scholar
  2. 2.
    Alur, R., Madhusudan, P.: Visibly pushdown languages. In: STOC 2004. Proceedings of the thirty-sixth annual ACM Symposium on Theory of Computing, June 13–15, 2004, pp. 202–211. ACM Press, New York (2004)CrossRefGoogle Scholar
  3. 3.
    Braccialia, A., Brogi, A., Canal, C.: A formal approach to component adaptation. Journal of Systems and Software (2005)Google Scholar
  4. 4.
    Douence, R., Fradet, P., Südholt, M.: A framework for the detection and resolution of aspect interactions. In: Batory, D., Consel, C., Taha, W. (eds.) GPCE 2002. LNCS, vol. 2487, pp. 173–188. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  5. 5.
    Douence, R., Fradet, P., Südholt, M.: Composition, reuse and interaction analysis of stateful aspects. In: AOSD 2004. Proc. of 3rd International Conference on Aspect-Oriented Software Development, pp. 141–150. ACM Press, New York (2004)CrossRefGoogle Scholar
  6. 6.
    Douence, R., Fradet, P., Südholt, M.: Trace-based aspects. In: Akşit, M., Clarke, S., Elrad, T., Filman, R.E. (eds.) Aspect-Oriented Software Development, Addison-Wesley Professional, Reading (2004)Google Scholar
  7. 7.
    Farías, A.: Un modèle de composants avec des protocoles explicites. PhD thesis, École des Mines de Nantes/Université de Nantes (December 2003)Google Scholar
  8. 8.
    Farías, A., Südholt, M.: On components with explicit protocols satisfying a notion of correctness by construction. In: Meersman, R., Tari, Z., et al. (eds.) CoopIS 2002, DOA 2002, and ODBASE 2002. LNCS, vol. 2519, pp. 995–1006. Springer, Heidelberg (2002)Google Scholar
  9. 9.
    Farías, A., Südholt, M.: Integrating protocol aspects with software components to address dependability concerns. Technical Report 04/6/INFO, École des Mines de Nantes (November 2004)Google Scholar
  10. 10.
    Göbel, S., Pohl, C., Röttger, S., Zschaler, S.: The COMQUAD component model — enabling dynamic selection of implementations by weaving non-functional aspects. In: Proceedings of AOSD 2004, ACM Press, New York (2004)Google Scholar
  11. 11.
    Katz, S., Sihman, M.: Aspect validation using model checking. Verification: Theory and Practice, 373–394 (2003)Google Scholar
  12. 12.
    Krishnamurthi, S., Fisler, K.: Foundations of incremental aspect model-checking. ACM Trans. Softw. Eng. Methodol. 16(2), 7 (2007)CrossRefGoogle Scholar
  13. 13.
    Lv, Q., Cao, P., Cohen, E., Li, K., Shenker, S.: Search and replication in unstructured peer-to-peer networks. In: ICS, pp. 84–95 (2002)Google Scholar
  14. 14.
    Nguyen, D.H., Südholt, M.: VPA-based aspects: better support for AOP over protocols. In: SEFM 2006. 4th IEEE International Conference on Software Engineering and Formal Methods, IEEE Press, Los Alamitos (2006)Google Scholar
  15. 15.
    Nierstrasz, O.: Regular types for active objects. In: Nierstrasz, O., Tsichritzis, D. (eds.) Object-Oriented Software Composition, ch. 4, pp. 99–121. Prentice-Hall, Englewood Cliffs (1995)Google Scholar
  16. 16.
    Pessemier, N., Seinturier, L., Coupaye, T., Duchien, L.: A model for developing component-based and aspect-oriented systems. In: Löwe, W., Südholt, M. (eds.) SC 2006. LNCS, vol. 4089, pp. 259–273. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  17. 17.
    Plasil, F., Visnovsky, S.: Behavior protocols for software components. IEEE Transactions on Software Engineering 28(9) (January 2002)Google Scholar
  18. 18.
    Ryan, N.D., Wolf, A.L.: Using event-based translation to support dynamic protocol evolution. In: ICSE 2004. Proceedings of the 26th International Conference on Software Engineering, pp. 408–417. IEEE Computer Society, Washington, DC, USA (2004)Google Scholar
  19. 19.
    Südholt, M.: A model of components with non-regular protocols. In: Gschwind, T., Aßmann, U., Nierstrasz, O. (eds.) SC 2005. LNCS, vol. 3628, Springer, Heidelberg (2005)CrossRefGoogle Scholar
  20. 20.
    Suvée, D., Vanderperren, W., Jonckers, V.: JasCo; an aspect-oriented approach tailored for component-based software development. In: AOSD 2003. Proc. of 2nd International Conference on Aspect-Oriented Software Development, pp. 21–29. ACM Press, New York (2003)CrossRefGoogle Scholar
  21. 21.
    Vanderperren, M., Suvee, D., Cibran, M.A., De Fraine, B.: Stateful aspects in JAsCo. In: Gschwind, T., Aßmann, U., Nierstrasz, O. (eds.) SC 2005. LNCS, vol. 3628, Springer, Heidelberg (2005)CrossRefGoogle Scholar
  22. 22.
    Walker, R.J., Viggers, K.: Implementing protocols via declarative event patterns. In: FSE-12. Proceedings of the ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 159–169. ACM Press, New York (2004)Google Scholar
  23. 23.
    Yellin, D.M., Strom, R.E.: Protocol specifications and component adaptors. ACM Transactions of Programming Languages and Systems 19(2), 292–333 (1997)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Dong Ha Nguyen
    • 1
  • Mario Südholt
    • 1
  1. 1.OBASCO project; EMN-INRIA, LINA, Dépt. Informatique, École des Mines de Nantes, 4 rue Alfred Kastler, 44307 Nantes cédex 3France

Personalised recommendations