The Community for Technology Leaders
RSS Icon
Subscribe
Issue No.02 - March/April (2008 vol.34)
pp: 162-180
ABSTRACT
Two programming paradigms are gaining attention in the overlapping fields of software product lines (SPLs) and incremental software development (ISD). Feature-oriented programming (FOP) aims at large-scale compositional programming and feature modularity in SPLs using ISD. Aspect-oriented programming (AOP) focuses on the modularization of crosscutting concerns in complex software. While feature modules, the main abstraction mechanisms of FOP, perform well in implementing large-scale software building blocks, they are incapable of modularizing certain kinds of crosscutting concerns. This weakness is exactly the strength of aspects, the main abstraction mechanisms of AOP. In this article we contribute a systematic evaluation and comparison of FOP and AOP. It reveals that aspects and feature modules are complementary techniques. Consequently, we propose the symbiosis of FOP and AOP and aspectual feature modules (AFMs), a programming technique that integrates feature modules and aspects. We provide a set of tools that support implementing AFMs on top of Java and C++. We apply AFMs to a non-trivial case study demonstrating their practical applicability and to justify our design choices.
INDEX TERMS
Design Tools and Techniques, Design, Language Constructs and Features
CITATION
Sven Apel, Thomas Leich, Gunter Saake, "Aspectual Feature Modules", IEEE Transactions on Software Engineering, vol.34, no. 2, pp. 162-180, March/April 2008, doi:10.1109/TSE.2007.70770
REFERENCES
[1] F. Achermann and O. Nierstrasz, “A Calculus for Reasoning about Software Composition,” Theoretical Computer Science, vol. 331, nos.2-3, pp. 367-396, 2005.
[2] J. Aldrich, “Open Modules: Modular Reasoning about Advice,” Proc. European Conf. Object-Oriented Programming, pp. 144-168, 2005.
[3] R. Alexander, “The Real Costs of Aspect-Oriented Programming,” IEEE Software, vol. 20, no. 6, pp. 92-93, Nov./Dec. 2003.
[4] V. Alves, R. Gheyi, T. Massoni, U. Kulesza, P. Borba, and C. Lucena, “Refactoring Product Lines,” Proc. Int'l Conf. Generative Programming and Component Eng., pp. 201-210, 2006.
[5] S. Androutsellis-Theotokis and D. Spinellis, “A Survey of Peer-to-Peer Content Distribution Technologies,” ACM Computing Surveys, vol. 36, no. 4, pp. 335-371, 2004.
[6] F. Anfurrutia, O. Díaz, and S. Trujillo, “On Refining XML Artifacts,” Proc. Int'l Conf. Web Eng., pp. 473-478, 2007.
[7] S. Apel, “The Role of Features and Aspects in Software Development,” PhD dissertation, School of Computer Science, Univ. of Magdeburg, 2007.
[8] S. Apel and D. Batory, “When to Use Features and Aspects? A Case Study,” Proc. Int'l Conf. Generative Programming and Component Eng., pp. 59-68, 2006.
[9] S. Apel, D. Batory, and M. Rosenmüller, “On the Structure of Crosscutting Concerns: Using Aspects or Collaborations,” Proc. GPCE Workshop Aspect-Oriented Product Line Eng., http://www.softeng.ox.ac.ukaople/, 2006.
[10] S. Apel and K. Böhm, “Towards the Development of Ubiquitous Middleware Product Lines,” Proc. ASE Workshop Software Eng. and Middleware, pp. 137-153, 2004.
[11] S. Apel and K. Böhm, “Self-Organization in Overlay Networks,” Proc. CAISE Workshop Adaptive and Self-Managing Enterprise Applications, vol. 2, pp. 139-153, 2005.
[12] S. Apel and E. Buchmann, “Biology-Inspired Optimizations of Peer-to-Peer Overlay Networks,” Practices in Information Processing and Comm. (Praxis der Informationsverarbeitung und Kommunikation), vol. 28, no. 4, pp. 199-205, 2005.
[13] S. Apel, C. Kästner, T. Leich, and G. Saake, “Aspect Refinement— Unifying AOP and Stepwise Refinement,” J. Object Technology (Proc. Int'l Conf. Technology of Object-Oriented Languages and Systems), vol. 6, no. 9, pp. 13-33, 2007.
[14] S. Apel, T. Leich, M. Rosenmüller, and G. Saake, “FeatureC++: On the Symbiosis of Feature-Oriented and Aspect-Oriented Programming,” Proc. Int'l Conf. Generative Programming and Component Eng., pp. 125-140, 2005.
[15] S. Apel, T. Leich, and G. Saake, “Aspectual Mixin Layers: Aspects and Features in Concert,” Proc. Int'l Conf. Software Eng., pp. 122-131, 2006.
[16] S. Apel, C. Lengauer, D. Batory, B. Möller, and C. Kästner, “An Algebra for Feature-Oriented Software Development,” Technical Report MIP-0706, Dept. of Informatics and Math., Univ. of Passau, 2007.
[17] I. Aracic, V. Gasiunas, M. Mezini, and K. Ostermann, “An Overview of CaesarJ,” Trans. Aspect-Oriented Software Development, vol. 1, no. 1, pp. 135-173, 2006.
[18] D. Batory, “Feature Models, Grammars, and Propositional Formulas,” Proc. Int'l Software Product Line Conf., pp. 7-20, 2005.
[19] D. Batory, “From Implementation to Theory in Program Synthesis,” Proc. Int'l Symp. Principles of Programming Languages, pp.135-136, 2007.
[20] D. Batory, L. Coglianese, M. Goodwin, and S. Shafer, “Creating Reference Architectures: An Example from Avionics,” Proc. Symp. Software Reusability, pp. 27-37, 1995.
[21] D. Batory, C. Johnson, B. MacDonald, and D.v. Heeder, “Achieving Extensibility through Product-Lines and Domain-Specific Languages: A Case Study,” ACM Trans. Software Eng. and Methodology, vol. 11, no. 2, pp. 191-214, 2002.
[22] D. Batory, J. Liu, and J. Sarvela, “Refinements and Multi-Dimensional Separation of Concerns,” Proc. Int'l Symp. Foundations of Software Eng., pp. 48-57, 2003.
[23] D. Batory and S. O'Malley, “The Design and Implementation of Hierarchical Software Systems with Reusable Components,” ACM Trans. Software Eng. and Methodology, vol. 1, no. 4, pp. 355-398, 1992.
[24] D. Batory, J. Sarvela, and A. Rauschmayer, “Scaling Step-Wise Refinement,” IEEE Trans. Software Eng., vol. 30, no. 6, pp. 355-371, June 2004.
[25] D. Batory and J. Thomas, “P2: A Lightweight DBMS Generator,” J.Intelligent Information Systems, vol. 9, no. 2, pp. 107-123, 1997.
[26] A. Bergel, S. Ducasse, and O. Nierstrasz, “Classbox/J: Controlling the Scope of Change in Java,” Proc. Int'l Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 177-189, 2005.
[27] E. Berger, B. Zorn, and K. McKinley, “Composing High-Performance Memory Allocators,” Proc. Int'l Conf. Programming Language Design and Implementation, pp. 114-124, 2001.
[28] E. Bodden, F. Forster, and F. Steimann, “Avoiding Infinite Recursion with Stratified Aspects,” Proc. Int'l Net.ObjectDays Conf., pp. 49-64, 2006.
[29] K. Böhm and E. Buchmann, “Free Riding-Aware Forwarding in Content-Addressable Networks,” VLDB J., vol. 16, no. 4, pp. 463-482, 2007.
[30] G. Booch, J. Rumbaugh, and I. Jacobson, The Unified Modeling Language User Guide, second ed. Addison-Wesley, 2005.
[31] J. Bosch, “Super-Imposition: A Component Adaptation Technique,” Information and Software Technology, vol. 41, no. 5, pp. 257-273, 1999.
[32] G. Bracha and W. Cook, “Mixin-Based Inheritance,” Proc. Int'l Conf. Object-Oriented Programming, Systems, Languages, and Applications and the European Conf. Object-Oriented Programming, pp. 303-311, 1990.
[33] M. Bravenboer and E. Visser, “Concrete Syntax for Objects: Domain-Specific Language Embedding and Assimilation without Restrictions,” Proc. Int'l Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 365-383, 2004.
[34] E. Buchmann, S. Apel, and G. Saake, “Piggyback Meta-Data Propagation in Distributed Hash Tables,” Proc. Int'l Conf. Web Information Systems and Technologies, pp. 72-79, 2005.
[35] R. Cardone, A. Brown, S. McDirmid, and C. Lin, “Using Mixins to Build Flexible Widgets,” Proc. Int'l Conf. Aspect-Oriented Software Development, pp. 76-85, 2002.
[36] R. Cardone and C. Lin, “Comparing Frameworks and Layered Refinement,” Proc. Int'l Conf. Software Eng., pp. 285-294, 2001.
[37] R. Chitchyan, A. Rashid, P. Rayson, and R. Waters, “Semantics-Based Composition for Aspect-Oriented Requirements Engineering,” Proc. Int'l Conf. Aspect-Oriented Software Development, pp. 36-48, 2007.
[38] S. Clarke, W. Harrison, H. Ossher, and P. Tarr, “Subject-Oriented Design: Towards Improved Alignment of Requirements, Design, and Code,” Proc. Int'l Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 325-339, 1999.
[39] P. Clements and L. Northrop, Software Product Lines: Practices and Patterns. Addison-Wesley, 2001.
[40] Y. Coady and G. Kiczales, “Back to the Future: A Retroactive Study of Aspect Evolution in Operating System Code,” Proc. Int'l Conf. Aspect-Oriented Software Development, pp. 50-59, 2003.
[41] A. Colyer and A. Clement, “Large-Scale AOSD for Middleware,” Proc. Int'l Conf. Aspect-Oriented Software Development, pp. 56-65, 2004.
[42] A. Colyer, A. Rashid, and G. Blair, “On the Separation of Concerns in Program Families,” Technical Report COMP-001-2004, Computing Dept., Lancaster Univ., 2004.
[43] W. Cook, “A Denotational Semantics of Inheritance,” PhD dissertation, Dept. of Computer Science, Brown Univ., 1989.
[44] P. Costanza, R. Hirschfeld, and W. de Meuter, “Efficient Layer Activation for Switching Context-Dependent Behavior,” Proc. Joint Modular Languages Conf., pp. 84-103, 2006.
[45] K. Czarnecki and M. Antkiewicz, “Mapping Features to Models: A Template Approach Based on Superimposed Variants,” Proc. Int'l Conf. Generative Programming and Component Eng., pp. 422-437, 2005.
[46] K. Czarnecki and U. Eisenecker, Generative Programming: Methods, Tools, and Applications. Addison-Wesley, 2000.
[47] D. Dantas and D. Walker, “Harmless Advice,” Proc. Int'l Symp. Principles of Programming Languages, pp. 383-396, 2006.
[48] S. Ducasse, O. Nierstrasz, N. Schärli, R. Wuyts, and A. Black, “Traits: A Mechanism for Fine-Grained Reuse,” ACM Trans. Programming Languages and Systems, vol. 28, no. 2, pp. 331-388, 2006.
[49] T. Elrad, R. Filman, and A. Bader, “Aspect-Oriented Programming: Introduction,” Comm. ACM, vol. 44, no. 10, pp. 29-32, 2001.
[50] E. Ernst, “Higher-Order Hierarchies,” Proc. European Conf. Object-Oriented Programming, pp. 303-329, 2003.
[51] E. Ernst, K. Ostermann, and W. Cook, “A Virtual Class Calculus,” Proc. Int'l Symp. Principles of Programming Languages, pp. 270-282, 2006.
[52] R. Filman and D. Friedman, “Aspect-Oriented Programming Is Quantification and Obliviousness,” Aspect-Oriented Software Development, pp. 21-35, Addison-Wesley, 2005.
[53] M. Griss, “Implementing Product Line Features by Composing Aspects,” Proc. Int'l Software Product Line Conf., pp. 271-288, 2000.
[54] W. Griswold, K. Sullivan, Y. Song, M. Shonle, N. Tewari, Y. Cai, and H. Rajan, “Modular Software Design with Crosscutting Interfaces,” IEEE Software, vol. 23, no. 1, pp. 51-60, Jan./Feb. 2006.
[55] S. Hanenberg and R. Unland, “Roles and Aspects: Similarities, Differences, and Synergetic Potential,” Proc. Int'l Conf. Object-Oriented Information Systems, pp. 507-520, 2002.
[56] W. Harrison and H. Ossher, “Subject-Oriented Programming: A Critique of Pure Objects,” Proc. Int'l Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 411-428, 1993.
[57] W. Harrison, H. Ossher, and P. Tarr, “Asymmetrically versus Symmetrically Organized Paradigms for Software Composition,” Technical Report RC22685 (W0212-147), IBM Research Division, 2002.
[58] S. Herrmann, “Object Teams: Improving Modularity for Crosscutting Collaborations,” Proc. Int'l Net.ObjectDays Conf., pp. 248-264, 2002.
[59] F. Hunleth and R. Cytron, “Footprint and Feature Management Using Aspect-Oriented Programming Techniques,” Proc. Joint Conf. Languages, Compilers, and Tools for Embedded Systems and Software and Compilers for Embedded Systems, pp. 38-45, 2002.
[60] C. Kästner, S. Apel, and D. Batory, “A Case Study Implementing Features Using AspectJ,” Proc. Int'l Software Product Line Conf., pp.223-232, 2007.
[61] E. Kendall, “Role Model Designs and Implementations with Aspect-Oriented Programming,” Proc. Int'l Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 353-369, 1999.
[62] G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold, “An Overview of AspectJ,” Proc. European Conf. Object-Oriented Programming, pp. 327-353, 2001.
[63] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin, “Aspect-Oriented Programming,” Proc. European Conf. Object-Oriented Programming, pp. 220-242, 1997.
[64] J. Klein, L. Hélouët, and J.-M. Jézéquel, “Semantic-Based Weaving of Scenarios,” Proc. Int'l Conf. Aspect-Oriented Software Development, pp. 27-38, 2006.
[65] K. Lee, K. Kang, M. Kim, and S. Park, “Combining Feature-Oriented Analysis and Aspect-Oriented Programming for Product Line Asset Development,” Proc. Int'l Software Product Line Conf., pp. 103-112, 2006.
[66] T. Leich, S. Apel, and G. Saake, “Using Step-Wise Refinement to Build a Flexible Lightweight Storage Manager,” Proc. East-European Conf. Advances in Databases and Information Systems, pp.324-337, 2005.
[67] K. Lieberherr, “Controlling the Complexity of Software Designs,” Proc. Int'l Conf. Software Eng., pp. 2-11, 2004.
[68] K. Lieberherr, D. Lorenz, and M. Mezini, “Programming with Aspectual Components,” Technical Report NU-CCS-99-01, College of Computer Science, Northeastern Univ., 1999.
[69] K. Lieberherr, D. Lorenz, and J. Ovlinger, “Aspectual Collaborations—Combining Modules and Aspects,” Computer J., vol. 46, no. 5, pp. 542-565, 2003.
[70] J. Liu, D. Batory, and C. Lengauer, “Feature-Oriented Refactoring of Legacy Applications,” Proc. Int'l Conf. Software Eng., pp. 112-121, 2006.
[71] D. Lohmann, F. Scheler, R. Tartler, O. Spinczyk, and W. Schröder-Preikschat, “A Quantitative Analysis of Aspects in the eCos Kernel,” Proc. Int'l EuroSys Conf., pp. 191-204, 2006.
[72] D. Lohmann, O. Spinczyk, and W. Schröder-Preikschat, “Lean and Efficient System Software Product Lines: Where Aspects Beat Objects,” Trans. Aspect-Oriented Software Development, vol. 2, no. 1, pp. 227-255, 2006.
[73] R. Lopez-Herrejon, “Understanding Feature Modularity,” PhD dissertation, Dept. of Computer Sciences, Univ. of Texas at Austin, 2006.
[74] R. Lopez-Herrejon and S. Apel, “Measuring and Characterizing Crosscutting in Aspect-Based Programs: Basic Metrics and Case Studies,” Proc. Int'l Conf. Fundamental Approaches to Software Eng., pp. 423-437, 2007.
[75] R. Lopez-Herrejon and D. Batory, “From Crosscutting Concerns to Product Lines: A Function Composition Approach,” Technical Report TR-06-24, Dept. of Computer Sciences, Univ. of Texas at Austin, 2006.
[76] R. Lopez-Herrejon, D. Batory, and W. Cook, “Evaluating Support for Features in Advanced Modularization Technologies,” Proc. European Conf. Object-Oriented Programming, pp. 169-194, 2005.
[77] R. Lopez-Herrejon, D. Batory, and C. Lengauer, “A Disciplined Approach to Aspect Composition,” Proc. Int'l Symp. Partial Evaluation and Semantics-Based Program Manipulation, pp. 68-77, 2006.
[78] N. Loughran and A. Rashid, “Framed Aspects: Supporting Variability and Configurability for AOP,” Proc. Int'l Conf. Software Reuse, pp. 127-140, 2004.
[79] O. Madsen and B. Moller-Pedersen, “Virtual Classes: A Powerful Mechanism in Object-Oriented Programming,” Proc. Int'l Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 397-406, 1989.
[80] H. Masuhara and G. Kiczales, “Modeling Crosscutting in Aspect-Oriented Mechanisms,” Proc. European Conf. Object-Oriented Programming, pp. 2-28, 2003.
[81] S. McDirmid, M. Flatt, and W. Hsieh, “Jiazzi: New-Age Components for Old-Fashioned Java,” Proc. Int'l Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp.211-222, 2001.
[82] S. McDirmid and W. Hsieh, “Aspect-Oriented Programming with Jiazzi,” Proc. Int'l Conf. Aspect-Oriented Software Development, pp.70-79, 2003.
[83] K. Mehner and A. Rashid, “Towards a Generic Model for AOP (GEMA),” Technical Report CSEG/1/03, Computing Dept., Lancaster Univ., 2003.
[84] M. Mezini and K. Ostermann, “Integrating Independent Components with On-Demand Remodularization,” Proc. Int'l Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 52-67, 2002.
[85] M. Mezini and K. Ostermann, “Conquering Aspects with Caesar,” Proc. Int'l Conf. Aspect-Oriented Software Development, pp. 90-100, 2003.
[86] M. Mezini and K. Ostermann, “Variability Management with Feature-Oriented Programming and Aspects,” Proc. Int'l Symp. Foundations of Software Eng., pp. 127-136, 2004.
[87] N. Nystrom, S. Chong, and A. Myers, “Scalable Extensibility via Nested Inheritance,” Proc. Int'l Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 99-115, 2004.
[88] N. Nystrom, X. Qi, and A. Myers, “J&: Nested Intersection for Scalable Software Composition,” Proc. Int'l Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 21-35, 2006.
[89] M. Odersky and M. Zenger, “Scalable Component Abstractions,” Proc. Int'l Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 41-57, 2005.
[90] N. Ongkingco, P. Avgustinov, J. Tibble, L. Hendren, O. de Moor, and G. Sittampalam, “Adding Open Modules to AspectJ,” Proc. Int'l Conf. Aspect-Oriented Software Development, pp. 39-50, 2006.
[91] H. Ossher and W. Harrison, “Combination of Inheritance Hierarchies,” Proc. Int'l Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 25-40, 1992.
[92] H. Ossher and P. Tarr, “Hyper/J: Multi-Dimensional Separation of Concerns for Java,” Proc. Int'l Conf. Software Eng., pp. 734-737, 2000.
[93] K. Ostermann, “Dynamically Composable Collaborations with Delegation Layers,” Proc. European Conf. Object-Oriented Programming, pp. 89-110, 2002.
[94] K. Ostermann, M. Mezini, and C. Bockisch, “Expressive Pointcuts for Increased Modularity,” Proc. European Conf. Object-Oriented Programming, pp. 214-240, 2005.
[95] D. Parnas, “Designing Software for Ease of Extension and Contraction,” IEEE Trans. Software Eng., vol. 5, no. 2, pp. 264-277, 1979.
[96] C. Prehofer, “Feature-Oriented Programming: A Fresh Look at Objects,” Proc. European Conf. Object-Oriented Programming, pp.419-443, 1997.
[97] E. Pulvermüller, A. Speck, and A. Rashid, “Implementing Collaboration-Based Design Using Aspect-Oriented Programming,” Proc. Int'l Conf. Technology of Object-Oriented Languages and Systems, pp. 95-104, 2000.
[98] V. Rajlich, “Changing the Paradigm of Software Engineering,” Comm. ACM, vol. 49, no. 8, pp. 67-70, 2006.
[99] T. Reenskaug, E. Andersen, A. Berre, A. Hurlen, A. Landmark, O. Lehne, E. Nordhagen, E. Ness-Ulseth, G. Oftedal, A. Skaar, and P. Stenslet, “OORASS: Seamless Support for the Creation and Maintenance of Object-Oriented Systems,” J. Object-Oriented Programming, vol. 5, no. 6, pp. 27-41, 1992.
[100] M. Sihman and S. Katz, “Superimpositions and Aspect-Oriented Programming,” Computer J., vol. 46, no. 5, pp. 529-541, 2003.
[101] V. Singhal, “A Programming Language for Writing Domain-Specific Software System Generators,” PhD dissertation, Dept. of Computer Sciences, Univ. of Texas at Austin, 1996.
[102] Y. Smaragdakis and D. Batory, “Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs,” ACM Trans. Software Eng. and Methodology, vol. 11, no. 2, pp. 215-255, 2002.
[103] O. Spinczyk, D. Lohmann, and M. Urban, “AspectC++: An AOP Extension for C++,” Software Developer's J., pp. 68-74, 2005.
[104] F. Steimann, “On the Representation of Roles in Object-Oriented and Conceptual Modeling,” Data and Knowledge Eng., vol. 35, no. 1, pp. 83-106, 2000.
[105] F. Steimann, “Domain Models Are Aspect Free,” Proc. Int'l Conf. Model Driven Eng. Languages and Systems, pp. 171-185, 2005.
[106] F. Steimann, “The Paradoxical Success of Aspect-Oriented Programming,” Proc. Int'l Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 481-497, 2006.
[107] W. Stevens, G. Myers, and L. Constantine, “Structured Design,” IBM Systems J., vol. 13, no. 2, pp. 115-139, 1974.
[108] K. Sullivan, W. Griswold, Y. Song, Y. Cai, M. Shonle, N. Tewari, and H. Rajan, “Information Hiding Interfaces for Aspect-Oriented Design,” Proc. Int'l Symp. Foundations of Software Eng., pp. 166-175, 2005.
[109] C. Szyperski, D. Gruntz, and S. Murer, Component Software— Beyond Object-Oriented Programming, second ed. Addison-Wesley/ACM Press, 2002.
[110] P. Tarr, H. Ossher, W. Harrison, and S. Sutton, Jr., “N Degrees of Separation: Multi-Dimensional Separation of Concerns,” Proc. Int'l Conf. Software Eng., pp. 107-119, 1999.
[111] S. Trujillo, M. Azanza, and O. Díaz, “Generative Metaprogramming,” Proc. Int'l Conf. Generative Programming and Component Eng., 2007.
[112] S. Trujillo, D. Batory, and O. Díaz, “Feature Refactoring a Multi-Representation Program into a Product Line,” Proc. Int'l Conf. Generative Programming and Component Eng., pp. 191-200, 2006.
[113] E. Truyen, B. Vanhaute, W. Joosen, P. Verbaeten, and B. Nørregaard Jørgensen, “Dynamic and Selective Combination of Extensions in Component-Based Applications,” Proc. Int'l Conf. Software Eng., pp. 233-242, 2001.
[114] M. VanHilst and D. Notkin, “Using C++ Templates to Implement Role-Based Designs,” Proc. JSSST Int'l Symp. Object Technologies for Advanced Software, pp. 22-37, 1996.
[115] M. VanHilst and D. Notkin, “Using Role Components in Implement Collaboration-Based Designs,” Proc. Int'l Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp.359-369, 1996.
[116] M. Wand, G. Kiczales, and C. Dutchyn, “A Semantics for Advice and Dynamic Join Points in Aspect-Oriented Programming,” ACM Trans. Programming Languages and Systems, vol. 26, no. 5, pp.890-910, 2004.
[117] N. Wirth, “Program Development by Stepwise Refinement,” Comm. ACM, vol. 14, no. 4, pp. 221-227, 1971.
[118] E. Wohlstadter and K. De Volder, “Doxpects: Aspects Supporting XML Transformation Interfaces,” Proc. Int'l Conf. Aspect-Oriented Software Development, pp. 99-108, 2006.
[119] B. Xin, S. McDirmid, E. Eide, and W. Hsieh, “A Comparison of Jiazzi and AspectJ for Feature-Wise Decomposition,” Technical Report UUCS-04-001, School of Computing, Univ. of Utah, 2004.
[120] C. Zhang and H.-A. Jacobsen, “Resolving Feature Convolution in Middleware Systems,” Proc. Int'l Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 188-205, 2004.
16 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool