skip to main content
10.1145/1119655.1119668acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
Article

Relationship aspects

Published: 20 March 2006 Publication History

Abstract

The relationships between objects in object-oriented programs are as important as the objects themselves. Unfortunately, most object-oriented programming languages provide little support for such relationships, leaving the task of implementing them entirely to the programmer. Relationships are typically hard-coded into the participating classes, resulting in tangled code that unnecessarily couples these classes together. The classes become harder to understand and cannot be reused independently. Aspect-oriented programs can model relationships explicitly, treating them as separate concerns that cross-cut their participants. We show how relationships can be implemented as a library of aspects in Aspect/J. Aspects keep relationships independent of their participants, making the resulting programs easier to read, write and reuse, and as efficient as hand-written code.

References

[1]
The AspectJ 5 development kit developers notebook, http://www.aspectj.org/.
[2]
G. Bierman and A. Wren. First-class relationships in an object-oriented language. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), volume 3586 of Lecture Notes in Computer Science, pages 262--282. Springer-Verlag, 2005.
[3]
G. Booch. Object Oriented Analysis and Design with Applications. Benjamin Cummings, second edition, 1994.
[4]
G. Booch, I. Jacobson, and J. Rumbaugh. The Unified Modeling Language User Guide. Addison-Wesley, 1998.
[5]
P. P. Chen. The entity-relationship model --- toward a unified view of data. ACM Transactions on Database Systems (TODS), 1(1):9--36, 1976.
[6]
S. Clarke and E. Baniassad. Aspect-Oriented Analysis and Design: The Theme Approach. Addison-Wesley, 2005.
[7]
S. Clarke and R. J. Walker. Generic aspect-oriented design with Theme/UML. In R. Filman, T. Elrad, S. Clarke, and M. Aksit, editors, Aspect-Oriented Software Development, chapter 19. Addison-Wesley, 2004.
[8]
E. W. Dijkstra. A note on two problems in connection with graphs. Numerische Mathematik, 1:269--271, 1959.
[9]
D. F. D'Souza and A. C. Wills. Objects, Components, and Frameworks With UML: The Catalysis Approach. Addison-Wesley, 1998.
[10]
E. Gamma, R. Helm, R. E. Johnson, and J. Vlissides. Design Patterns. Addison-Wesley, 1994.
[11]
A. Garcia, C. Sant' Anna, E. Figueiredo, U. Kulesza, C. Lucena, and A. von Staa. Modularizing design patterns with aspects: A quantitative study. In Proceedings of the ACM Aspect-Oriented Software Development (AOSD) conference, pages 3--14. ACM Press, 2005.
[12]
G. Génova, C. R. del Castillo, and J. Llorens. Mapping UML associations into Java code. Journal of Object Technology (JOT), 2(5):135--162, 2003.
[13]
J. Hannemann and G. Kiczales. Design pattern implementations in Java and AspectJ. In Proceedings of the ACM conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA), pages 161--173. ACM Press, 2002.
[14]
J. Hannemann, G. C. Murphy, and G. Kiczales. Role-based refactoring of crosscutting concerns. In Proceedings of the ACM Aspect-Oriented Software Development (AOSD) conference, pages 135--145. ACM Press, 2005.
[15]
W. Harrison, C. Barton, and M. Raghavanchari. Mapping UML design to Java. In Proceedings of the ACM conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA), pages 178--188. ACM Press, 2000.
[16]
W. Iseberg. Check out library aspects with AspectJ 5. In AOP@Work series, 2006. http://www-128.ibm.com/developerworks/java/library/j-aopwork14/.
[17]
I. Jacobson and P.-W. Ng. Aspect-Oriented Softare Development with Use Cases. Addison-Wesley, 2005.
[18]
E. A. Kendall. Role model designs and implementations with aspect-oriented programming. In Proceedings of the ACM conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA), pages 353--370. ACM Press, 1999.
[19]
G. Kiczales and M. Mezini. Separation of concerns with procedures, annotations, advice and pointcuts. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), pages 195--213. Springer-Verlag, 2005.
[20]
K. Lieberherr. Controlling the complexity of software designs. In Proceedings of the International Conference on Software Engineering (ICSE), pages 2--11. ACM Press, 2004.
[21]
K. Lieberherr and D. H. Lorenz. Coupling aspect-oriented and adaptive programming. In R. Filman, T. Elrad, S. Clarke, and M. Aksit, editors, Aspect-Oriented Software Development, chapter 6. Addison-Wesley, 2004.
[22]
M. Mezini and K. Ostermann. Integrating independent components with on-demand remodularization. In Proceedings of the ACM conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA), pages 52--67. ACM Press, 2002.
[23]
M. Mezini and K. Ostermann. Conquering aspects with Caesar. In Proceedings of the ACM Aspect-Oriented Software Development (AOSD) conference, pages 90--99. ACM Press, 2003.
[24]
M. P. Monteiro and J. M. Fernandes. Towards a catalog of aspect-oriented refactorings. In Proceedings of the ACM Aspect-Oriented Software Development (AOSD) conference, pages 111--122. ACM Press, 2005.
[25]
J. Noble. Basic relationship patterns. In N. Harrison, B. Foote, and H. Rohnert, editors, Pattern Languages of Program Design 4, chapter 6, pages 73--94. Addison-Wesley, 2000.
[26]
J. Noble and J. Grundy. Explicit relationships in object-oriented development. In Proceedings of the conference on Technology of Object-Oriented Systems and Languages (TOOLS), pages 211--226. Prentice-Hall, 1995.
[27]
K. Ostermann, M. Mezini, and C. Bockisch. Expressive pointcuts for increased modularity. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), volume 3586 of Lecture Notes in Computer Science, pages 214--240. Springer-Verlag, 2005.
[28]
R. Pooley and P. Stevens. Using UML: Software Engineering with Objects and Components. Addison-Wesley, 1999.
[29]
D. Riehle, S. Fraleigh, D. Buckna-Lassen, and N. Omorogbe. The architecture of a UML virtual machine. In Proceedings of the ACM conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA), pages 327--341. ACM Press, 2001.
[30]
J. Rumbaugh. Relations as semantic constructs in an object-oriented language. In Proceedings of the ACM conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA), pages 466--481. ACM Press, 1987.
[31]
J. Rumbaugh. Controlling propagation of operations using attributes on relations. In Proceedings of the ACM conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA), pages 285--296. ACM Press, 1988.
[32]
J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, and W. Lorensen. Object-Oriented Modeling and Design. Prentice Hall, New Jersey, 1991.
[33]
J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, and W. Lorensen. Object-Oriented Modeling and Design. Prentice Hall, New Jersey, 1991.
[34]
J. Rumbaugh, I. Jacobson, and G. Booch. The Unified Modeling Language Reference Manual. Addison-Wesley, 1998.
[35]
J. E. Rumbaugh. Models for design: Generating code for associations. Journal of Object-Oriented Programming (JOOP), 8(9):13--17, 1996.
[36]
K. Sakurai, H. Masuhara, N. Ubayashi, S. Matsuura, and S. Komiya. Association aspects. In Proceedings of the ACM Aspect-Oriented Software Development (AOSD) conference, pages 16--24. ACM Press, 2004.
[37]
A. V. Shah, J. H. Hamel, R. E. Borsari, and J. E. Rumbaugh. DSM: An object-relationship modeling language. In Proceedings of the ACM conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA), pages 191--202. ACM Press, 1989.
[38]
J. Soukup. Implementing patterns. In Pattern Languages of Program Design, pages 395--412. Addison-Wesley, 1994.
[39]
J. Soukup. Taming C++: Pattern Classes and Persistence for Large Projects. Addison-Wesley, 1994.
[40]
G. Sullivan and K. Lieberherr. An object-oriented design methodology. Technical Report NU-CCS-95-1, Northeastern University, 1995.
[41]
P. Wegner. Concepts and paradigms of object-oriented programming. OOPS Messenger, 1(1):7--87, 1990.
[42]
R. Wirfs-Brock, B. Wilkerson, and L. Wiener. Designing Object-Oriented Software. Prentice-Hall, 1990.

Cited By

View all
  • (2019)Abstraction in Modeling and Programming with Associations: Instantiation, Composition and InheritanceAdvances in Computer Communication and Computational Sciences10.1007/978-981-13-6861-5_2(11-31)Online publication date: 22-May-2019
  • (2014)Instance pointcutsProceedings of the 2014 International Conference on Principles and Practices of Programming on the Java platform: Virtual machines, Languages, and Tools10.1145/2647508.2647526(27-38)Online publication date: 23-Sep-2014
  • (2014)RelationsProceedings of the companion publication of the 13th international conference on Modularity10.1145/2584469.2584473(9-10)Online publication date: 22-Apr-2014
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
AOSD '06: Proceedings of the 5th international conference on Aspect-oriented software development
March 2006
247 pages
ISBN:159593300X
DOI:10.1145/1119655
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • AOSD-Europe: European Network of Excellent on Aspect-oriented Software Development

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 20 March 2006

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. aspect-oriented programming
  2. associations
  3. relationships

Qualifiers

  • Article

Conference

AOSD06
Sponsor:
  • AOSD-Europe

Acceptance Rates

Overall Acceptance Rate 41 of 139 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)13
  • Downloads (Last 6 weeks)1
Reflects downloads up to 26 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2019)Abstraction in Modeling and Programming with Associations: Instantiation, Composition and InheritanceAdvances in Computer Communication and Computational Sciences10.1007/978-981-13-6861-5_2(11-31)Online publication date: 22-May-2019
  • (2014)Instance pointcutsProceedings of the 2014 International Conference on Principles and Practices of Programming on the Java platform: Virtual machines, Languages, and Tools10.1145/2647508.2647526(27-38)Online publication date: 23-Sep-2014
  • (2014)RelationsProceedings of the companion publication of the 13th international conference on Modularity10.1145/2584469.2584473(9-10)Online publication date: 22-Apr-2014
  • (2014)Unifying and Generalizing Relations in Role-Based Data Modeling and NavigationSoftware Language Engineering10.1007/978-3-319-11245-9_14(241-260)Online publication date: 2014
  • (2013)Content over containerProceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software10.1145/2509578.2509582(173-186)Online publication date: 29-Oct-2013
  • (2013)Reactive behavior in object-oriented applicationsProceedings of the 12th annual international conference on Aspect-oriented software development10.1145/2451436.2451442(37-48)Online publication date: 24-Mar-2013
  • (2012)Improving Bug Location Using Binary Class RelationshipsProceedings of the 2012 IEEE 12th International Working Conference on Source Code Analysis and Manipulation10.1109/SCAM.2012.26(174-183)Online publication date: 23-Sep-2012
  • (2011)Verifying multi-object invariants with relationshipsProceedings of the 25th European conference on Object-oriented programming10.5555/2032497.2032521(358-382)Online publication date: 25-Jul-2011
  • (2011)Reusable roles, a test with patternsProceedings of the 18th Conference on Pattern Languages of Programs10.1145/2578903.2579149(1-16)Online publication date: 21-Oct-2011
  • (2011)Verifying Multi-object Invariants with RelationshipsECOOP 2011 – Object-Oriented Programming10.1007/978-3-642-22655-7_17(358-382)Online publication date: 2011
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media