Developing Software Components with Aspects: Some Issues and Experiences

Engineering software components is quite a challenging task. Existing approaches to component-based software development are for the most part focused on functional decomposition. All have a number of weaknesses as they do not take into account cross-cutting concerns impacting components. In this chapter we outline a method we have developed called “aspect oriented component engineering”. Our approach uses aspects to help engineer better software components. We motivate our work with a simple distributed system example. We then describe how component specifications and designs can use aspects to provide additional information about components. We describe how aspects can be used to help implement more de-coupled software components. We show how encoded aspect information can be used at run-time to support component plug-and-play, retrieval and validation. We compare and contrast our approach to other component engineering methods and aspect-oriented software development techniques.

[1]  Mira Mezini,et al.  Adaptive plug-and-play components for evolutionary software development , 1998, OOPSLA '98.

[2]  Jean-Marc Jézéquel,et al.  A toolkit for weaving aspect oriented UML designs , 2002, AOSD '02.

[3]  John D. McGregor,et al.  Parallel Architecture for Component Testing , 1997, J. Object Oriented Program..

[4]  Harold Ossher,et al.  Software engineering tools and environments: a roadmap , 2000, ICSE '00.

[5]  Peter Fingar,et al.  Component-based frameworks for e-commerce , 2000, CACM.

[6]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.

[7]  Conclusions , 1989 .

[8]  Mira Mezini,et al.  Component Integration with Pluggable Composite Adapters , 2002 .

[9]  Scott Henninger,et al.  Supporting the construction and evolution of component repositories , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[10]  Z. Tari,et al.  DynWES - a dynamic and interoperable protocol for Web services , 2002, Proceedings. Third International Symposium on Electronic Commerce,.

[11]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[12]  Mei Hong,et al.  JBCDL: an object-oriented component description language , 1997, Proceedings. Technology of Object-Oriented Languages. TOOLS 24 (Cat. No.97TB100240).

[13]  Jadwiga Indulska,et al.  Middleware for Reactive Components: An Integrated Use of Context, Roles, and Event Based Coordination , 2001, Middleware.

[14]  Martin Bichler,et al.  Component-based e-commerce: assessment of current practices and future directions , 1998, SGMD.

[15]  Daniel Hoffman,et al.  Tools and techniques for Java API testing , 2000, Proceedings 2000 Australian Software Engineering Conference.

[16]  Andry Rakotonirainy,et al.  A simple architecture description model , 1998, Proceedings Technology of Object-Oriented Languages. TOOLS 28 (Cat. No.98TB100271).

[17]  John Grundy,et al.  Multi-Perspective Specification, Design and Implementation of Software Components Using Aspects , 2000, Int. J. Softw. Eng. Knowl. Eng..

[18]  Yong Rae Kwon,et al.  Framework for third party testing of component software , 2001, Proceedings Eighth Asia-Pacific Software Engineering Conference.

[19]  John C. Grundy,et al.  Engineering plug‐in software components to support collaborative work , 2002, Softw. Pract. Exp..

[20]  Soo Dong Kim,et al.  COMO: a UML-based component development methodology , 1999, Proceedings Sixth Asia Pacific Software Engineering Conference (ASPEC'99) (Cat. No.PR00509).

[21]  Mikael Rittri,et al.  Using types as search keys in function libraries , 1989, Journal of Functional Programming.

[22]  Roger Sessions COM and DCOM - Microsoft's vision for distributed objects , 1997 .

[23]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[24]  Khaled M. Khan,et al.  A security characterisation framework for trustworthy component based software systems , 2003, Proceedings 27th Annual International Computer Software and Applications Conference. COMPAC 2003.

[25]  John C. Grundy,et al.  Constructing component-based software engineering environments: issues and experiences , 2000, Inf. Softw. Technol..

[26]  Jeannette M. Wing,et al.  Specifications as Search Keys for Software Libraries , 1991, ICLP.

[27]  Jane Pryor,et al.  A Java Meta-Level Architecture for the Dynamic Handling of Aspects , 2000, PDPTA.

[28]  Jeffrey Richter Applied Microsoft .NET Framework Programming , 2002 .

[29]  Oliver Sims,et al.  Business Component Factory : A Comprehensive Overview of Component-Based Development for the Enterprise , 1999 .

[30]  Wim Vanderperren,et al.  JAsCo: an aspect-oriented approach tailored for component based software development , 2003, AOSD '03.

[31]  Andrew Clement,et al.  Large-scale AOSD for middleware , 2004, AOSD '04.

[32]  David Iseminger COM+ Developer's Reference Library , 2000 .

[33]  Paul Allen Component-Based Development for Enterprise Systems , 1998 .

[34]  John C. Grundy,et al.  Developing software components with the UML, Enterprise Java Beans and aspects , 2001, Proceedings 2001 Australian Software Engineering Conference.

[35]  Paul J. Perrone,et al.  Building Java Enterprise Systems with J2EE , 2000 .

[36]  Paul Allen Realizing e-business with components , 2000 .

[37]  Richard Monson-Haefel,et al.  Enterprise JavaBeans , 1999, Java series.

[38]  Wouter Joosen,et al.  Dynamic and selective combination of extensions in component-based applications , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[39]  Desmond D'Souza,et al.  Objects, Components, and Frameworks with UML: The Catalysis Approach , 1998 .

[40]  Stefan Hanenberg,et al.  A UML-based aspect-oriented design notation for AspectJ , 2002, AOSD '02.

[41]  Marian Petre,et al.  Usability Analysis of Visual Programming Environments: A 'Cognitive Dimensions' Framework , 1996, J. Vis. Lang. Comput..

[42]  Jean-Marc Jézéquel,et al.  Aspect-oriented design with the UML , 2000, ICSE 2000.

[43]  Enrico Motta,et al.  Specifications of Knowledge Components for Reuse , 1999 .

[44]  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).

[45]  Paul Allen,et al.  Component-Based Development for Enterprise Systems: Applying the SELECT Perspective , 1997 .

[46]  Cristina V. Lopes,et al.  Recent Developments in Aspect , 1998, ECOOP Workshops.

[47]  Harold Ossher,et al.  Multi-Dimensional Separation of Concerns and the Hyperspace Approach , 2002 .

[48]  Jun Han,et al.  Security characterisation and integrity assurance for component-based software , 2000, Proceedings International Conference on Software Methods and Tools. SMT 2000.

[49]  John C. Grundy,et al.  Aspect-oriented requirements engineering for component-based software systems , 1999, Proceedings IEEE International Symposium on Requirements Engineering (Cat. No.PR00188).

[50]  Shmuel Katz,et al.  Architectural views of aspects , 2003, AOSD '03.

[51]  Gerhard Fischer,et al.  Context-aware browsing of large component repositories , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[52]  David H. Lorenz,et al.  Aspects and polymorphism in AspectJ , 2003, AOSD '03.

[53]  John A. Zinky,et al.  Building adaptive distributed applications with middleware and aspects , 2004, AOSD '04.

[54]  D. Gabbay,et al.  Inconsistency Handling in Multiperspective Specifications , 1994 .

[55]  Giacomo Piccinelli,et al.  Managing interaction concerns in Web-service systems , 2002, Proceedings 22nd International Conference on Distributed Computing Systems Workshops.