skip to main content
10.1145/2451436.2451449acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

Using roles to model crosscutting concerns

Published: 24 March 2013 Publication History

Abstract

In object oriented languages the problem of crosscutting concerns, due to limitations in the composition mechanisms, is recurrent. In order to reduce this problem we propose to use roles as a way of composing classes that extends the Object Oriented approach and can be used to model crosscutting concerns. To support our approach we developed a role language that extends Java, while being compatible with existing virtual machines. As validation we conducted a case study using three open source systems. We identified crosscutting concerns in the systems and then modeled them using our role approach. Results show that roles are a viable option for modeling crosscutting concerns.

References

[1]
Apel, S., Kästner, C. (2009): An Overview of Feature-Oriented Software Development, in Journal of Object Technology, vol. 8, no. 5, July-August 2009,pages 49--84
[2]
Baldoni, M., Boella, G. van der Torre, L., (2007): Interaction between Objects in power-Java, Journal of Object Technologies 6, 7 - 12.
[3]
Barbosa, S. and Aguiar, A. (2011). Generic roles, a test with patterns In 18th Conference on Pattern Languages of Programs, PloP 2011, Portland, OR, USA.
[4]
Batory, D., Sarvela, J. N. and Rauschmayer, A., Scaling Step-Wise Refinement. IEEE TSE, 30(6), 2004.
[5]
Bergel, A., Ducasse, S., Nierstrasz, O. and Wuyts, R. (2008): Stateful traits and their formalization. Journal of Computer Languages, Systems and Structures, 2008.
[6]
Bergel, A, Ducasse, S. and Nierstrasz, O. (2005). Classbox/J: controlling the scope of change in Java. In Proc. Ann. ACM SIGPLAN Conf. OOPSLA.
[7]
Bracha, G. and Cook, W. (1990): Mixin-Based Inheritance. In Proceedings of the OOPSLA/ Proceedings of the ECOOP, Ottawa, Canada. ACM Press.
[8]
Bracha, G. (1992): The programming language jigsaw: mixins, modularity and multiple inheritance. PhD thesis, University of Utah.
[9]
Ceccato, M., Marin, M., Mens, K., Moonen, L, Tonella, P. and Tourwe, T. A qualitative comparison of three aspect mining techniques, Proc. of the 13th International Workshop on Program Comprehension (Washington, DC, USA), 2005
[10]
Chernuchin, D., and Dittrich, G. 2005. Role Types and their Dependencies as Components of Natural Types. In AAAI Fall Symposium: Roles, an interdisciplinary perspective.
[11]
Chernuchin, D., Lazar, O. S., and Dittrich, G., Comparison of Object-Oriented Approaches for Roles in Programming Languages, Papers from the 2005 Fall Symposium. Technical Report FS-05-08. American Association for Artificial Intelligence, Menlo Park, California.
[12]
Clifton, C., Leavens, G., Chambers, C., and Millstein, T. (2000): MultiJava: Modular open classes and symmetric multiple dispatch for Java. In Proc. of OOPSLA, Oct.
[13]
Cutsem, T., Bergel, A., Ducasse, S. and Meuter, W. (2009): Adding State and Visibility Control to Traits Using Lexical Nesting, Proceedings of the 23rd ECOOP 2009, Italy
[14]
Devanbu, P., Balzer, B., Batory, D., Kiczales, G., Launchbury, J.; Parnas, D., Tarr, P., Modularity in the New Millennium: A Panel Summary, International Conference On Software Engineering (2003), Vol. 25, pages 723--725
[15]
Ducasse, S., Schaerli, N., Nierstrasz, O., Wuyts, R. and Black, A. (2004): Traits: A mechanism for fine-grained reuse In Transactions on Programming Languages and Systems.
[16]
Ducasse, S., Wuyts, R., Bergel, A., and Nierstrasz, O. (2007): User-changeable visibility: Resolving unanticipated name clashes in traits. In Proceedings of 22nd International Conference OOPSLA'07, New York, NY.
[17]
E. Ernst, K. Ostermann, and W. R. Cook. A virtual class calculus (2006). In POPL'06: Conference record of the 33rd Symposium on Principles of Programming Languages.
[18]
Filman, R.E., Friedman, D.P.: Aspect-oriented programming is quantification and obliviousness. In: Workshop on Advanced Separation of Concerns at OOPSLA (2000)
[19]
Flatt, M. and Felleisen, M. (1998) Units: Cool modules for HOT languages. In Proc. of PLDI, pages 236--248, May
[20]
Gamma, E., Helm, R., Johnson, R. and Vlissides, J., (1995): Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley.
[21]
Griswold, W.G., Sullivan, K., Song, Y., Shonle, M., Tewari, N., Cai, Y., Rajan, H., 2006: Modular Software Design with Crosscutting Interfaces. IEEE Software 23(1), 51--60 (2006)
[22]
Harrison, W. and Ossher, H. 1993. Subject-oriented programming: a critique of pure objects. In Proceedings of the Eighth Annual Conference OOPSLA '93, 411--428
[23]
Herrmann, S., (2005): Programming with Roles in ObjectTeams/Java. AAAI Fall Symposium: "Roles, An Interdisciplinary Perspective".
[24]
Kamiya, T., Kusumoto, S. and Inoue, K. (2002), Ccfinder: a multilinguistic token based code clone detection system for large scale source code, IEEE Trans. Softw. Eng. 28, no. 7.
[25]
Kästner, C., Apel, S., Batory, D., 2007: A Case Study Implementing Features using AspectJ. In:11th International Conference of Software Product Line Conference, Kyoto
[26]
Kellens, A., Mens, K., Tonella, P., A survey of automated code-level aspect mining techniques, Transactions on aspect-oriented software development IV, Springer-Verlag, Berlin, Heidelberg, 2007
[27]
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold. W. G., (2001): An overview of AspectJ. In proceedings of ECOOP 2001, Budapest, Hungary
[28]
Koppen, C., Störzer, M.: PCDiff, 2004: Attacking the fragile pointcut problem. In: European Interactive Workshop on Aspects in Software, Berlin, Germany.
[29]
Kristensen, B. B., (1995): Object-oriented modeling with roles, in Proceedings of the 2nd International Conference on Object-Oriented Information Systems, Springer-Verlag.
[30]
Kristensen, B. B. and Østerbye, K. (1996): Roles: Conceptual abstraction theory & practical language issues, Theory and Practice of Object Systems 2(3): 143--160.
[31]
Krogdahl, S., Møller-Pedersen, B., Sørensen, F.: "Exploring the use of Package Templates for flexible re-use of Collections of related Classes", in Journal of Object Technology, vol. 8, no. 7, November - December 2005
[32]
S. McDirmid, M. Flatt, and W.C. Hsieh, "Jiazzi: new-Age Components for Old-Fashioned Java", OOPSLA 2001.
[33]
Meyer, B. (1988): Eiffel: the Language. Prentice-Hall.
[34]
Mezini, M. and Ostermann, K. 2003. Conquering Aspects with Caesar. In Proc. of AOSD 2003, pages 90 -- 99
[35]
Odberg, E. (1995): Category classes: Flexible classification and evolution, in object-oriented databases, Proceedings of Advanced Information Systems Engineering, Springer-Verlag, London, UK, pp. 406--420.
[36]
Ossher, H. and Tarr, P. (2000). Multi-dimensional separation of concerns and the hyperspace approach, Proceedings of the Symposium on Software Architectures and Component Technology, Kluwer.
[37]
PrzybyBek, A.(2001). Systems Evolution and Software Reuse in Object-Oriented Programming and Aspect-Oriented Programming, J. Bishop and A. Vallecillo (Eds.): TOOLS 2011, LNCS 6705, pp. 163--178.
[38]
Quitslund, P. and Black, A. (2004): Java with traits - improving opportunities for reuse. In Proceedings of the 3rd International Workshop on Mechanisms for Specialization, Generalization and inheritance (ECOOP 2004), 2004.
[39]
Reengskaug, T., Wold, P. and Lehne, O. A. (1996), Working with objects - the OOram software engineering method. Manning.
[40]
Reengskaug, T. 2007: Roles and classes in object oriented programming. In: Roles 2007. Proceedings of the 2nd Workshop on Roles and Relationship in Object Oriented Programming, Multiagent Systems, and Ontologies
[41]
Riehle, D. and Gross, T. 1998. Role Model Based Framework Design and Integration." In Proceedings OOPSLA '98. ACM Press
[42]
Riehle, D. 2000. Framework Design: A Role Modeling Approach, Ph. D. Thesis, Swiss Federal Institute of technology, Zurich.
[43]
Scharli, N., Ducasse, S., Nierstrasz, O. and Black, A. (2003): Traits: Composable units of behavior. In Proceedings of ECOOP 2003, volume 2743 of Lecture Notes in Computer Science. Springer.
[44]
Smaragdakis, Y. and Batory, D., Mixin Layers (2002): An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs. ACM TOSEM, 11(2).
[45]
Smith, C. and Drossopoulou, S. (2005):Chai: Traits for Java-like languages. In Proceedings of the 19th European Conference on Object-Oriented Programming.
[46]
Sousa, P., Silva, A. R. and Marques, J. A. (1995): Object identifiers and identity: A naming issue, Proceedings of the 4th International Workshop on Object-Orientation in Operating Systems, USA, p. 127.
[47]
Steimann, F., (2000): On the representation of roles in object-oriented and conceptual modeling. Data & Knowledge Engineering 35(1):83--106.
[48]
Steimann, F. (2006), The paradoxical success of aspect-oriented programming", in Proceedings of the 21st Annual Conference OOPSLA'06
[49]
Stroustrup, B. (1986): The C++ Programming Language. Addison Wesley, Reading, Mass.
[50]
Tamai, T., Ubayashi, N., and Ichiyama, R., (2007): Objects as Actors Assuming Roles in the Environment, in Software Engineering For Multi-Agent Systems V: Research Issues and Practical Applications, Lecture Notes In Computer Science, vol. 4408. Springer-Verlag,
[51]
Tarr, P., Ossher, H., Harrison, W. and Sutton Jr., S. M. (1999), N degrees of separation: multi-dimensional separation of concerns, Proceedings of the 21st International Conference on Software Engineering, New York, NY, USA
[52]
VanHilst, M., and D. Notkin, D., (1996). Using Role Components to Implement Collaboration-Based Designs. In OOPSLA '96, pages 359--369, 1996.

Cited By

View all
  • (2016)Java Extensions for Design Pattern InstantiationProceedings of the 15th International Conference on Software Reuse: Bridging with Social-Awareness - Volume 967910.1007/978-3-319-35122-3_19(284-299)Online publication date: 5-Jun-2016
  • (2013)Comparing Two Class Composition ApproachesEvaluation of Novel Approaches to Software Engineering10.1007/978-3-642-54092-9_7(94-109)Online publication date: 2013

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
AOSD '13: Proceedings of the 12th annual international conference on Aspect-oriented software development
March 2013
232 pages
ISBN:9781450317665
DOI:10.1145/2451436
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

  • AOSA: Aspect-Oriented Software Association

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 24 March 2013

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. code reuse
  2. composition
  3. crosscutting concerns
  4. modularity
  5. roles

Qualifiers

  • Research-article

Conference

AOSD '13
Sponsor:
  • AOSA
AOSD '13: Aspect-Oriented Software Development
March 24 - 29, 2013
Fukuoka, Japan

Acceptance Rates

Overall Acceptance Rate 41 of 139 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 07 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2016)Java Extensions for Design Pattern InstantiationProceedings of the 15th International Conference on Software Reuse: Bridging with Social-Awareness - Volume 967910.1007/978-3-319-35122-3_19(284-299)Online publication date: 5-Jun-2016
  • (2013)Comparing Two Class Composition ApproachesEvaluation of Novel Approaches to Software Engineering10.1007/978-3-642-54092-9_7(94-109)Online publication date: 2013

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