Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/832261.833317guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Implementing Collaboration-Based Designs Using Aspect-Oriented Programming

Published: 30 July 2000 Publication History

Abstract

The collaboration-based approach is a powerful means to develop modularized systems by stepwise refinement. In this paper, we introduce a new approach to realize a collaboration-based design. Our approach is based on the well-known observation that the knowledge about inter-object collaborations cannot be localized within objects but crosscuts many objects. Such crosscutting concerns are effectively addressed by applying the separation of concern principle. We have, therefore, employed Aspect-Oriented Programming (AOP) to build collaboration-based designs. In the paper we illustrate and discuss our aspect-oriented approach both for the horizontal (i.e. the collaborations) and vertical (i.e. the refinements) dimensions. Although the example implementations are based on AspectJ0.4beta7 from Xerox PARC, the approach is generic enough to be implemented using other AOP techniques.

References

[1]
M. Aksit. Composition and Separation of Concerns in the Object-Oriented Model. ACM Computing Surveys, 28(4), December 1996.
[2]
M. Aksit and B. Tekinerdogan. Aspect-Oriented Programming Using Composition Filters. In ECOOP 1998 Workshop Reader, page 435. Springer-Verlag, 1998.
[3]
D. Batory and B.J. Geraci. Composition Validation and Subjectivity in Gen Voca Generators. In IEEE Transactions on Software Engineering, pages 67-82, 1997.
[4]
D. Batory, C. Johnson, B. MacDonald, and D. VonHeeder. FSATS: an Extensible Fire Support Simulator. In Proceedings of ICSE 2000, 2000. to appear.
[5]
D. Batory, B. Lofaso, and Y. Smaragdakis. JTS: Tools for Implementing Domain-Specific Languages. In Proceedings of 5th Int. Conf. on Software Reuse '98, 1998.
[6]
D. Batory and Y. Smaragdakis. Building Product-Lines with Mixin Layers. In Proceedings of ECOOP'99 Workshop on Product-Line Architectures, 1999.
[7]
G. Bracha and W. Cooke. Mixin-Based Inheritance. In Proceedings of OOPSLA '90, pages 303-311, 1990.
[8]
A. M. Burkett. Clarifying Roles and Responsibilities. CMA: The Management Accounting Magazine, 69(2):26-28, March 1995.
[9]
F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal. Pattern-Oriented Software Architecture. John Wiley, Chichester, New York, Brisbane, Toronto, Singapore, 1996.
[10]
K. Czarnecki and U.W. Eisenecker. Synthesizing Objects. In Proceedings of ECOOP'99, Lecture Notes in Computer Science LNCS 1628, pages 18-42. Springer-Verlag, June 1999.
[11]
R. Helm, I. Holland, and D. Gangopadhyay. Contracts: Specifying Behavioral Compositions in Object-Oriented Systems. In Proceedings of OOPSLA '90, pages 169-180, 1990.
[12]
I. Holland. Specifying Reusable Components using Contracts. In Proceedings of ECOOP'92, pages 287 -308, 1992.
[13]
P. Kenens, S. Michiels, F. Matthijs, B. Robben, E. Truyen, B. Vanhaute, W. Joosen, and P. Verbaeten. An AOP Case with Static and Dynamic Aspects. In Proceedings of the Aspect-Oriented Programming Workshop at ECOOP98, 1998.
[14]
M. A. Kersten and G. C. Murphy. Atlas: A Case Study in Building a Web-based Learning Environment using Aspect-oriented Programming. In Proceedings of OOPSLA '99, 1999.
[15]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C.V. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-Oriented Programming. In Lecture Notes in Computer Science LNCS 1241, ECOOP, pages 220-242. Springer-Verlag, June 1997.
[16]
G. E. Krasner and S. T. Pope. A Cookbook for Using the Model-View-Controller User Interface Paradigm in Smalltalk-80. Journal of Object-Oriented Programming, 1(3):26-49, August/ September 1988.
[17]
M. Mezini and K. Lieberherr. Adaptive Plug-and-Play Components for Evolutionary Software Development. In ACM SIGPLAN notices, volume 33, pages 97-116, New York, October 1998. ACM Press.
[18]
Object Management Group. The Common Object Request Broker: Architecture and Specification., February 1998.
[19]
E. Pulvermüller, H. Klaeren, and A. Speck. Aspects in Distributed Environments. In Proceedings of the International Symposium on Generative and Component-Based Software Engineering GCSE'99, Erfurt, Germany, September 1999.
[20]
T. Reenskaug. Working with Objects: The OOram Software Engineering Method. Manning, 1995.
[21]
Y. Smaragdakis and D. Batory. Implementing Layered Designs with Mixin Layers. In Proceedings of ECOOP'98, pages 550-570, 1998.
[22]
Y. Smaragdakis and D: Batory. Implementing Reusable Object-Oriented Components. In Proceedings of 5th Int. Conf. on Software Reuse'98, 1998.
[23]
P. Steyaert, C. Lucas, K. Mens, and T. D'Hondt. Reuse Contracts: Managing the Evolution of Reusable Assets. In Proceedings of OOPSLA '96, pages 268-285, 1996.
[24]
C. Szyperski. Component Software. Addison-Wesley, ACM-Press, New York, 1997.
[25]
M. VanHilst and D. Notkin. Decoupling Change from Design. ACM SIGSOFT, pages 58-68, 1996.
[26]
M. VanHilst and D. Notkin. Using C++ Templates to Implement Role-Based Designs. In JSSST Int. Symposium on Object Technologies for Advanced Software, pages 22-37. Springer-Verlag, 1996.
[27]
M. VanHilst and D. Notkin. Using Role Components to Implement Collaboration-Based Designs. In Proceedings of OOPSLA '96, pages 359-369, 1996.
[28]
P. Wegner. The Object-Oriented Classification Paradigm. In P. Wegner and B. Shriver, editors, Research Directions in Object-Oriented Programming., pages 479-560. MIT Press, 1987.
[29]
N. Wirth. Programm Development by Stepwise Refinement. Communications of the ACM, 14(4):221 -227, April 1971.
[30]
Xerox Palo Alto Research Center, http://aspectj.org. Homepage of AspectJ., 2000.

Cited By

View all
  • (2006)When to use features and aspects?Proceedings of the 5th international conference on Generative programming and component engineering10.1145/1173706.1173716(59-68)Online publication date: 22-Oct-2006
  • (2006)Efficient exploration of service-oriented architectures using aspectsProceedings of the 28th international conference on Software engineering10.1145/1134285.1134296(62-71)Online publication date: 28-May-2006
  • (2005)Aspectizing multi-agent systemsSoftware Engineering for Multi-Agent Systems III10.5555/2167504.2167514(121-143)Online publication date: 1-Jan-2005
  1. Implementing Collaboration-Based Designs Using Aspect-Oriented Programming

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Guide Proceedings
    TOOLS '00: Proceedings of the Technology of Object-Oriented Languages and Systems (TOOLS 34'00)
    July 2000
    ISBN:0769507743

    Publisher

    IEEE Computer Society

    United States

    Publication History

    Published: 30 July 2000

    Author Tags

    1. Aspect-Oriented Programming
    2. Collaboration-based Design
    3. Contracts
    4. Mixin Layers
    5. Separation of Concerns

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 04 Oct 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2006)When to use features and aspects?Proceedings of the 5th international conference on Generative programming and component engineering10.1145/1173706.1173716(59-68)Online publication date: 22-Oct-2006
    • (2006)Efficient exploration of service-oriented architectures using aspectsProceedings of the 28th international conference on Software engineering10.1145/1134285.1134296(62-71)Online publication date: 28-May-2006
    • (2005)Aspectizing multi-agent systemsSoftware Engineering for Multi-Agent Systems III10.5555/2167504.2167514(121-143)Online publication date: 1-Jan-2005

    View Options

    View options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media