Skip to main content

Evaluating Support for Features in Advanced Modularization Technologies

  • Conference paper
ECOOP 2005 - Object-Oriented Programming (ECOOP 2005)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 3586))

Included in the following conference series:

Abstract

A software product-line is a family of related programs. Each program is defined by a unique combination of features, where a feature is an increment in program functionality. Modularizing features is difficult, as feature-specific code often cuts across class boundaries. New modularization technologies have been proposed in recent years, but their support for feature modules has not been thoroughly examined. In this paper, we propose a variant of the expression problem as a canonical problem in product-line design. The problem reveals a set of technology-independent properties that feature modules should exhibit. We use these properties to evaluate five technologies: AspectJ, Hyper/J, Jiazzi, Scala, and AHEAD. The results suggest an abstract model of feature composition that is technology-independent and that relates compositional reasoning with algebraic reasoning.

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 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.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. AspectJ. Programming Guide, aspectj.org/doc/proguide

  2. AHEAD Tool Suite (ATS), www.cs.utexas.edu/users/schwartz

  3. Batory, D., Geraci, B.J.: Composition Validation and Subjectivity in GenVoca Generators. IEEE Trans. Soft. Engr., 67–82 (1997)

    Google Scholar 

  4. Batory, D., Lopez-Herrejon, R.E., Martin, J.P.: Generating Product-Lines of Product-Families. In: Automated Software Engineering Conference (2002)

    Google Scholar 

  5. Batory, D., Liu, J., Sarvela, J.N.: Refinements and Multidimensional Separation of Concerns. In: ACM SIGSOFT (September 2003)

    Google Scholar 

  6. Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling Step-Wise Refinement. IEEE Trans. Soft. Engr. (June 2004)

    Google Scholar 

  7. Baxter, I.D.: Design Maintenance Systems. CACM 55(4), 73–89 (1992)

    Google Scholar 

  8. Bergel, A., Ducasse, S., Wuyts, R.: Classboxes: A Minimal Module Model Supporting Local Rebinding. In: Böszörményi, L., Schojer, P. (eds.) JMLC 2003. LNCS, vol. 2789, pp. 122–131. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  9. Beuche, D.: Composition and Construction of Embedded Software Families. Ph.D. Otto-von-Guericke-Universität Magdeburg (2003)

    Google Scholar 

  10. Bracha, G., Cook, W.: Mixin-based inheritance. In: OOPSLA (1990)

    Google Scholar 

  11. Clifton, C., Leavens, G.T., Millstein, T., Chambers, G.: MultiJava: Modular Open classes and Symmetric Multiple Dispatch for Java. In: OOPSLA (2000)

    Google Scholar 

  12. Clifton, C., Millstein, T., Leavens, G.T., Chambers, G.: MultiJava: Design Rationale, Compiler Implementation, and User Experience. TR #04-01, Iowa State University (2004)

    Google Scholar 

  13. Clarke, S., Walker, R.: Separating Crosscutting Concerns Across the Lifecycle: From Composition Patterns to AspectJ and Hyper/J. Technical Report UBC-CS-TR-2001-05, University of British Columbia, Canada (2001)

    Google Scholar 

  14. Concern Manipulation Environment (CME), http://www.eclipse.org/cme/

  15. Cook, W.R.: Object-Oriented Programming versus Abstract Data Types. In: Semantics of Data Types 1984. LNCS, vol. 173, pp. 151–178. Springer, Hiedelberg (1990)

    Google Scholar 

  16. Coyler: A., Rashid, A., Blair, G.: On the Separation of Concerns in Program Families. TRCOMP-001-2004, Computing Department, Lancaster University, UK (2004)

    Google Scholar 

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

    Google Scholar 

  18. Douence, R., Fradet, P., Südholt, M.: Composition, reuse and interaction analysis of stateful aspects. In: AOSD (2004)

    Google Scholar 

  19. Driver, C.: Evaluation of Aspect-Oriented Software Development for Distributed Systems. Master’s Thesis, University of Dublin, Ireland (September 2002)

    Google Scholar 

  20. Filman, R.E., Elrad, T., Clarke, S., Aksit, M.: Aspect-Oriented Software Development. Addison-Wesley, Reading (2004)

    Google Scholar 

  21. Flatt, M., Felleisen, M.: Units: Cool modules for HOT languages. In: PLDI (1998)

    Google Scholar 

  22. Findler, R.B., Flatt, M.: Modular Object-Oriented Programming with Units and Mixins. In: ICFP, pp. 94–104 (1998)

    Google Scholar 

  23. Jagadeesan, R., Jeffrey, A., Riely, J.: A Typed Calculus of Aspect Oriented Programs (Submitted for publication)

    Google Scholar 

  24. Kang, K., et al.: Feature-Oriented Domain Analysis (FODA) Feasibility Study. CMU/SEI-90-TR-21, Carnegie Mellon Univ., Pittsburgh, PA (November 1990)

    Google Scholar 

  25. Kiczales, G., Hilsdale, E., Hugunin, J., Kirsten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, p. 327. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  26. Laddad, R.: AspectJ in Action. Practical Aspect-Oriented Programming. Manning (2003)

    Google Scholar 

  27. Loughran, N., Rashid, A., Zhang, W., Jarzabek, S.: Supporting Product Line Evolution with Framed Aspects. In: ACP4IS Workshop, AOSD (2004)

    Google Scholar 

  28. Lopez-Herrejon, R.E., Batory, D.: Improving Incremental Development in AspectJ by Bounding Quantification. In: SPLAT Workshop at AOSD (2005)

    Google Scholar 

  29. Lopez-Herrejon, R.E., Batory, D., Cook, W.: Evaluating Support for Features in Advanced Modularization Technologies. Extended Report. The University of Texas at Austin, Department of Computer Sciences, Technical Report TR-05-16 (April 2005)

    Google Scholar 

  30. Masuhara, H., Kiczales, G.: Modeling Crosscuting Aspect-Oriented Mechanisms. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  31. McDirmid, S., Flatt, M., Hsieh, W.C.: Jiazzi: New age components for old-fashioned Java. In: OOPSLA (2001)

    Google Scholar 

  32. McDirmid, S., Hsieh, W.C.: Aspect-Oriented Programming with Jiazzi. In: AOSD (2003)

    Google Scholar 

  33. McDirmid, S.: The Jiazzi Manual (2002)

    Google Scholar 

  34. Mezini, M., Ostermann, K.: Conquering Aspects with Caesar. In: AOSD (2003)

    Google Scholar 

  35. Mezini, M., Ostermann, K.: Variability Management with Feature-Oriented Programming and Aspects. SIGSOFT04/ FSE-12 (2004)

    Google Scholar 

  36. Misra, J.: A Discipline of Multiprogramming. Springer, Heidelberg (2001)

    Book  MATH  Google Scholar 

  37. Murphy, G., Lai, A., Walker, R.J., Robillard, M.P.: Separating Features in Source Code: An Exploratory Study. In: ICSE (2001)

    Google Scholar 

  38. Odersky, M., et al.: An Overview of the Scala Programming Language (September 2004), scala.epfl.ch

  39. Odersky, M., et al.: The Scala Language Specification (September 2004), scala.epfl.ch

  40. Odersky, M., Cremet, V., Röckl, C., Zenger, M.: A nominal theory of objects with dependent types. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  41. Ossher, H., Tarr, P.: Multi-dimensional separation of concerns and the Hyperspace approach. In: Software Architectures and Component Technology. Kluwer, Dordrecht (2002)

    Google Scholar 

  42. Partsch, H., Steinbrüggen, R.: Program Transformation Systems. In: ACM Computing Surveys (September 1983)

    Google Scholar 

  43. Reynolds, J.C.: User-defined types and procedural data as complementary approaches to data abstraction. In: Theoretical Aspects of Object-Oriented Programming. MIT Press, Cambridge (1994)

    Google Scholar 

  44. Schärli, N., Ducasse, S., Nierstrasz, O., Black, A.: Traits: Composable units of behavior. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  45. Schinz, M.: A Scala tutorial for Java programmers. (September 2004), scala.epfl.ch

  46. Software Engineering Institute. Predictable Assembly from Certified Components, www.sei.cmu.edu/pacc

  47. Tarr, P., Ossher, H., Harrison, W., Sutton, S.M.: N Degrees of Separation: Multi-Dimensional Separation of Concerns. In: ICSE, pp. 107–119 (1999)

    Google Scholar 

  48. Tarr, P., Ossher, H.: Hyper/J User and Installation Manual. IBM Corporation (2001)

    Google Scholar 

  49. Torgersen, M.: The Expresion Problem Revisited. Four new solutions using generics. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 123–146. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  50. Wadler, P.: The expression problem. Posted on the Java Genericity mailing list (1998)

    Google Scholar 

  51. Walker, D., Zdancewic, S., Ligatti, J.: A Theory of Aspects. In: ICFP (2003)

    Google Scholar 

  52. Xin, B., McDirmid, S., Eide, E., Hsieh, W.C.: A comparison of Jiazzi and AspectJ. Technical Report TR UUCS-04-001, University of Utah (2004)

    Google Scholar 

  53. Zave, P.: FAQ Sheet on Feature Interaction, www.research.att.com/~pamela/faq.html

  54. Zenger, M., Odersky, M.: Independently Extensible Solutions to the Expression Problem. Technical Report TR IC/2004/33, EPFL Switzerland (2004)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lopez-Herrejon, R.E., Batory, D., Cook, W. (2005). Evaluating Support for Features in Advanced Modularization Technologies. In: Black, A.P. (eds) ECOOP 2005 - Object-Oriented Programming. ECOOP 2005. Lecture Notes in Computer Science, vol 3586. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11531142_8

Download citation

  • DOI: https://doi.org/10.1007/11531142_8

  • Publisher Name: Springer, Berlin, Heidelberg

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

  • Online ISBN: 978-3-540-31725-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics