Objects as Actors Assuming Roles in the Environment

  • Tetsuo Tamai
  • Naoyasu Ubayashi
  • Ryoichi Ichiyama
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4408)


To achieve the goal of realizing object adaptation to environments, a new role-based model Epsilon and a language EpsilonJ are proposed. In Epsilon, an environment is defined as a field of collaboration between roles and an object adapts to the environment assuming one of the roles. Objects can freely enter or leave environments and belong to multiple environments at a time so that dynamic adaptation or evolution of objects is realized. Environments and roles are the first class constructs at runtime as well as at model description time so that separation of concerns is not only materialized as a static structure but also observable as behaviors. Environments encapsulating collaboration are independent reuse components to be deployed separately from objects. In this paper, the Epsilon model and the language are explained with some examples. The effectiveness of the model is illustrated by a case study on the problem of integrated systems. Implementation of the language is also reported.


Multiagent System Role Method Role Instance Class Person Role Employee 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Depke, R., Heckel, R., Kuster, J.M.: Roles in agent-oriented modeling. International Journal of Software Engineering and Knowledge Engineering 11(3), 281–302 (2001)CrossRefGoogle Scholar
  2. 2.
    Filman, R.E., Friedman, D.P.: Aspect-oriented programming is quantification and obliviousness. In: Aspect-Oriented Software Development, pp. 21–35. Addison-Wesley, Reading (2005)Google Scholar
  3. 3.
    Fowler, M.: Dealing with roles. Supplemental information to Analysis Pattern, Addison-Wesley (1997),
  4. 4.
    Graverson, K.B.: The success and failures of a language as a language extension. In: ECOOP 2003 Workshop on Object-oriented Language Engineering for the Post-Java Era, Darmstadt, Germany (2003)Google Scholar
  5. 5.
    Graverson, K.B., Osterbye, K.: Aspect modelling as role modelling. In: OOPSLA 2002 Workshop on TS4AOSD, Seattle (Nov. 2002)Google Scholar
  6. 6.
    Griswold, W.G., Shonled, M., Sullivan, K., Song, Y., Tewari, N., Cai, Y.: Modular software design with crosscutting interfaces. IEEE Software (Jan/Feb 2006)Google Scholar
  7. 7.
    Herrman, S.: Programming with roles in ObjectTeams/Java. In: AAAI ’05 (Oct. 2005)Google Scholar
  8. 8.
    Honda, Y., Watari, S., Tokoro, M.: Compositional adaptation: A new method for constructing software for open-ended systems (in Japanese). Computer Software 9(2), 122–136 (1992)Google Scholar
  9. 9.
    Jacobson, I., Booch, G., Rumbaugh, J.: The Unified Software Development Process. Addison-Wesley, Reading (1999)Google Scholar
  10. 10.
    Jacobson, I., Christerson, M., Jonsson, P., Övergaard, G.: Object-Oriented Software Engineering: A Use Case Driven Approach. ACM Press, New York (1992)zbMATHGoogle Scholar
  11. 11.
    Jennings, N.R.: An agent-based approach for building complex software systems. Communications of the ACM 44(4) (2001)Google Scholar
  12. 12.
    Kamina, T., Tamai, T.: McJava – A design and implementation of java with mixin-types. In: Chin, W.-N. (ed.) APLAS 2004. LNCS, vol. 3302, pp. 398–414. Springer, Heidelberg (2004)Google Scholar
  13. 13.
    Kendall, E.A.: Role model designs and implementations with aspect-oriented programming. In: OOPSLA’ 99, Nov. 1999, pp. 353–369 (1999)Google Scholar
  14. 14.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  15. 15.
    Kristensen, B.B., Osterbye, K.: Roles: Conceptual abstraction theory and practical language issues. Theory and Practice of Object Systems 2(3), 143–160 (1996)CrossRefGoogle Scholar
  16. 16.
    Martin-Flatin, J.-P., Sventek, J., Geihs, K.: Self-managed systems and services. Communications of ACM 49(3), 37–39 (2006)CrossRefGoogle Scholar
  17. 17.
    Mezini, M., Ostermann, K.: Conquering aspects with Caesar. In: Proceedings of the International Conference on Aspect-Oriented Software Development (AOSD 2003), Boston, Mar. 2003, pp. 90–99 (2003)Google Scholar
  18. 18.
    Odell, J.J., Parunak, H.V.D., Fleisher, M.: The role of roles in designing effective agent organizations. In: Garcia, A.F., de Lucena, C.J.P., Zambonelli, F., Omicini, A., Castro, J. (eds.) Software Engineering for Large-Scale Multi-Agent Systems. LNCS, vol. 2603, Springer, Heidelberg (2003)CrossRefGoogle Scholar
  19. 19.
    Ossher, H., Tarr, P.: Using multidimensional separation of concerns to (re)shape evolving software. CACM 44(10), 43–50 (2001)Google Scholar
  20. 20.
    Rashid, A., Sawer, P., Moreira, A., Araujo, J.: Early aspects: a model for aspect-oriented requirements engineering. In: Proceedings of the International Conference on Requirements Engineering (RE 2002), Essen, Germany, Sep. 2002, pp. 9–13. IEEE Computer Society Press, Los Alamitos (2002)Google Scholar
  21. 21.
    Reenskaug, T., Wold, P., Lehne, O.: Working with Objects: the OOram Software Engineering Method. Manning Publications, Greenwich (1996)zbMATHGoogle Scholar
  22. 22.
    Riehle, D.: Composite design patterns. In: OOPSLA ’97, Oct. 1997, pp. 218–228 (1997)Google Scholar
  23. 23.
    Riehle, D., Gross, T.: Role model based framework design and integration. In: OOPSLA ’98, Vancouver, Oct. 1998, pp. 117–133 (1998)Google Scholar
  24. 24.
    Sakurai, K., Masuhara, H., Ubayashi, N., Matsuura, S., Komiya, S.: Association aspect. In: Proceedings of 3rd International Conference on Aspect-Oriented Software Development (AOSD 2004), Lancaster, UK, Mar. 2004, pp. 16–25 (2004)Google Scholar
  25. 25.
    Smaragdakis, Y., Batory, D.: Mixin layers: An object-oriented implementation technique for refinements and collaboration-based designs. ACM Transactions on Software Engineering and Methodology 11(2), 215–255 (2002)CrossRefGoogle Scholar
  26. 26.
    Smith, D.R.: The contract net protocol: High-level communication and control in a distributed problem solver. IEEE Trans. on Computers 29(12), 1104–1113 (1980)CrossRefGoogle Scholar
  27. 27.
    Sullivan, K., Griswold, W.G., Song, Y., Cai, Y., Shonle, M., Tewari, N., Rajan, H.: Information hiding interfaces for aspect-oriented design. In: ESEC-FSE’05, Lisbon, Portugal, Sep. 2005, pp. 166–175 (2005)Google Scholar
  28. 28.
    Sullivan, K., Gu, L., Cai, Y.: Non-modularity in aspect-oriented languages: Integration as a crosscutting concern for AspectJ. In: 1st Proceedings of 1st International Conference on Aspect-Oriented Software Development (AOSD 2002), Enschede, Holland, Apr. 2002, pp. 19–26 (2002)Google Scholar
  29. 29.
    Sullivan, K.J., Notkin, D.: Reconciling environment integration and software evolution. ACM Transaction on Software Engineering and Methodology 1(3), 229–268 (1992)CrossRefGoogle Scholar
  30. 30.
    Tamai, T.: Objects and roles: modeling based on the dualistic view. Information and Software Technology 41(14), 1005–1010 (1999)CrossRefGoogle Scholar
  31. 31.
    Thomas, D., Hunt, A.: Programming Ruby: A Pragmatic Programmer’s Guide. Addison-Wesley, Reading (2000)Google Scholar
  32. 32.
    VanHilst, M., Notkin, D.: Using C++ templates to implement role-based designs. In: Futatsugi, K., Matsuoka, S. (eds.) ISOTAS 1996. LNCS, vol. 1049, pp. 22–37. Springer, Heidelberg (1996)Google Scholar
  33. 33.
    Wieringa, R., de Jonge, W., Spruit, P.: Using dynamic classes and role classes to model object migration. Theory and Practice of Object Systems 1(1), 61–83 (1995)Google Scholar
  34. 34.
    Zambonelli, F., Jennings, N.R., Wooldridge, M.: Developing multiagent systems: The gaia methodology. ACM Transactions on Software Engineering and Methodology 12(3), 317–370 (2003)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Tetsuo Tamai
    • 1
  • Naoyasu Ubayashi
    • 2
  • Ryoichi Ichiyama
    • 1
  1. 1.The University of Tokyo, TokyoJapan
  2. 2.Kyushu Institute of Technology, FukuokaJapan

Personalised recommendations