A comparison of Jiazzi and AspectJ for feature-wise decomposition

Feature-wise decomposition is an important approach to building configurable software systems. Although there has been research on the usefulness of particular tools for feature-wise decomposition, there are not many informative comparisons on the relative effectiveness of different tools. In this paper, we compare AspectJ and Jiazzi, which are two different systems for decomposing Java programs. AspectJ is an aspect-oriented extension to Java, whereas Jiazzi is a component system for Java. To compare these systems, we reimplemented an AspectJ implementation of a highly configurable CORBA Event Service using Jiazzi. Our experience is that Jiazzi provides better support for structuring the system and manipulating features, while AspectJ is more suitable for manipulating existing Java code in non-invasive and unanticipated ways.

[1]  Douglas C. Schmidt,et al.  The design and performance of a real-time CORBA event service , 1997, OOPSLA '97.

[2]  Steve Vinoski,et al.  CORBA: integrating diverse applications within distributed heterogeneous environments , 1997, IEEE Commun. Mag..

[3]  Guy L. Steele,et al.  Java Language Specification, Second Edition: The Java Series , 2000 .

[4]  Christian Prehofer,et al.  Feature-Oriented Programming: A Fresh Look at Objects , 1997, ECOOP.

[5]  Calvin Lin,et al.  Using mixins to build flexible widgets , 2002, AOSD '02.

[6]  David Lorge Parnas,et al.  On the Design and Development of Program Families , 2001, IEEE Transactions on Software Engineering.

[7]  Don S. Batory,et al.  Composition Validation and Subjectivity in GenVoca Generators , 1997, IEEE Trans. Software Eng..

[8]  Michelle Casagni,et al.  Comparison of two component frameworks: the FIPA-compliant multi-agent system and the web-centric J2EE platform , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[9]  Gilad Bracha,et al.  The programming language jigsaw: mixins, modularity and multiple inheritance , 1992 .

[10]  David Lorge Parnas,et al.  Review of David L. Parnas' "Designing Software for Ease of Extension and Contraction" , 2004 .

[11]  Robert J. Walker,et al.  Separating Concerns with Hyper/J TM : An Experience Report , 2000 .

[12]  Christopher Gill,et al.  Building Customizable Middleware using Aspect Oriented Programming , 2001 .

[13]  Jaejoon Lee,et al.  FORM: A feature-;oriented reuse method with domain-;specific reference architectures , 1998, Ann. Softw. Eng..

[14]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[15]  Frank Hunleth Building Customizable Middleware using Aspect-Oriented Programming - Master's Thesis, May 2002 , 2002 .

[16]  Robert Bruce Findler,et al.  Modular object-oriented programming with units and mixins , 1998, ICFP '98.

[17]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[18]  Matthias Felleisen,et al.  Units: cool modules for HOT languages , 1998, PLDI.

[19]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[20]  Gail C. Murphy,et al.  Explicit programming , 2002, AOSD '02.

[21]  Karl J. Lieberherr,et al.  Aspectual Collaborations: Combining Modules and Aspects , 2003, Comput. J..

[22]  Gary T. Leavens,et al.  MultiJava: modular open classes and symmetric multiple dispatch for Java , 2000, OOPSLA '00.

[23]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[24]  Ron Cytron,et al.  Footprint and feature management using aspect-oriented programming techniques , 2002, LCTES/SCOPES '02.

[25]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[26]  Wilson C. Hsieh,et al.  Aspect-oriented programming with Jiazzi , 2003, AOSD '03.

[27]  Don S. Batory,et al.  The GenVoca model of software-system generators , 1994, IEEE Software.

[28]  Martin P. Robillard,et al.  Separating features in source code: an exploratory study , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[29]  Matthew Flatt,et al.  Jiazzi: new-age components for old-fasioned Java , 2001, OOPSLA '01.

[30]  Martin P. Robillard,et al.  Does aspect-oriented programming work? , 2001, CACM.

[31]  Martin L. Griss,et al.  Integrating feature modeling with the RSEB , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).