Skip to main content

Aspects for Synthesizing Applications by Refinement

  • Conference paper
Software Reuse: Methods, Techniques, and Tools (ICSR 2004)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 3107))

Included in the following conference series:

Abstract

GenVoca is a powerful model for component-based product-line architectures (PLAs) advocating stepwise refinement as a composition principle. This paper introduces a refinement-oriented generative language – ReGaL – to implement statically configurable GenVoca PLAs. Whereas components are programmed in Java, refinements are program-med in ReGaL by the means of generic aspects. Applications are themselves specified in ReGaL as type equations. ReGaL compiles type equations by instantiating and weaving refinement aspects with components to synthesize the requested (Java) application. As opposed to template-based generative implementations, ReGaL promotes a clean separation of components and refinements, hence eliminating code tangling and related issues. It also defers the choice of component class composition structures until configuration time, which provides added flexibility to adapt applications. Besides, its architecture model enforces a clear role-based design of components and supports useful architectural patterns.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Batory, D., Chen, G., Robertson, E., Wang, T.: Design wizards and visual programming environments for genvoca generators. IEEE Trans. on Software Engineering 26(5), 441–452 (2000)

    Article  Google Scholar 

  2. Batory, D., Cardone, R., Smaragdakis, Y.: Object-oriented frameworks and product-lines. In: Donohoe, P. (ed.) Proc. of the First Software Product-Line Conference, Denver, Colorado, USA, pp. 227–247 (2000)

    Google Scholar 

  3. Batory, D., Geraci, B.J.: Composition validation and subjectivity in GenVoca generators. IEEE Trans. on Software Engineering (special issue on Software Reuse) 23, 62–87 (1997)

    Google Scholar 

  4. Batory, D., Lofaso, B., Smaragdakis, Y.: JTS: Tools for implementing domain-specific languages. In: Proc. of ICSR 1998, Victoria, Canada (1998)

    Google Scholar 

  5. Cardone, R., Brown, A., McDirmid, S., Lin, C.: Using mixins to build flexible widgets. In: Proc. of AOSD 2002, Enschede, The Netherlands (2002)

    Google Scholar 

  6. Cardone, R., Calvin, L.: Comparing frameworks and layered refinement. In: Proc. of ICSE 2001, Toronto, Canada, pp. 285–294 (2001)

    Google Scholar 

  7. Czarnecki, K., Eisenecker, U.: Generative Programming: Methods, Tools and Applications. Addison-Wesley, Reading (2000)

    Google Scholar 

  8. Disjkstra, E.W.: A Discipline of Programming. Prentice-Hall, Englewood Cliffs (1976)

    Google Scholar 

  9. Helm, R., Holland, I.M., Gangopadhyay, D.: Contracts: Specifying behavioural compositions in object-oriented systems. In: Proc. of OOPSLA/ECOOP 1990. ACM SIGPLAN Notices, pp. 169–180 (1990)

    Google Scholar 

  10. Holland, I.M.: Specifying reusable components using contracts. In: Lehrmann Madsen, O. (ed.) ECOOP 1992. LNCS, vol. 615, pp. 287–308. Springer, Heidelberg (1992)

    Chapter  Google Scholar 

  11. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of aspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–352. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  12. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  13. Lesaint, D., Papamargaritis, G.: Aspects and constraints for implement- ing configurable product-line architectures. In: Proc. of WICSA-4, Oslo, Norway (June 2004) (to appear)

    Google Scholar 

  14. Ostermann, K.: Dynamically composable collaborations with delegation layers. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, pp. 327–352. Springer, Heidelberg (2002)

    Google Scholar 

  15. Pulvermuller, E., Speck, A., Rashid, A.: Implementing collaboration-based designs using aspect-oriented programming. In: Proc. of TOOLS-USA 2000, pp. 95–104. IEEE Computer Society Press, Los Alamitos (2000)

    Google Scholar 

  16. Smaragdakis, Y., Batory, D.: Implementing layered designs with mixin layers. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, pp. 550–570. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  17. Smaragdakis, Y., Batory, D.: Mixin-layers: An object-oriented im- plementation technique for refinements and collaboration-based designs. ACM Trans. on Software Engineering and Methodology 11(2), 215–255 (2001)

    Article  Google Scholar 

  18. Van Hilst, M., Notkin, D.: Using role components to implement collaboration-based designs. In: Proc. of OOPSLA 1996, San Jose, USA, ACM Press, New York (1996)

    Google Scholar 

  19. Wirth, N.: Program development by stepwise refinement. Communications of the ACM 14(4), 221–227 (1971)

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lesaint, D., Papamargaritis, G. (2004). Aspects for Synthesizing Applications by Refinement. In: Bosch, J., Krueger, C. (eds) Software Reuse: Methods, Techniques, and Tools. ICSR 2004. Lecture Notes in Computer Science, vol 3107. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-27799-6_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-27799-6_10

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-22335-1

  • Online ISBN: 978-3-540-27799-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics