Supporting Design Model Refactoring for Improving Class Responsibility Assignment

  • Motohiro Akiyama
  • Shinpei Hayashi
  • Takashi Kobayashi
  • Motoshi Saeki
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6981)


Although a responsibility driven approach in object oriented analysis and design methodologies is promising, the assignment of the identified responsibilities to classes (simply, class responsibility assignment: CRA) is a crucial issue to achieve design of higher quality. The GRASP by Larman is a guideline for CRA and is being put into practice. However, since it is described in an informal way using a natural language, its successful usage greatly relies on designers’ skills. This paper proposes a technique to represent GRASP formally and to automate appropriate CRA based on them. Our computerized tool automatically detects inappropriate CRA and suggests alternatives of appropriate CRAs to designers so that they can improve a CRA based on the suggested alternatives. We made preliminary experiments to show the usefulness of our tool.


object-oriented design class responsibility assignment GRASP 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
  2. 2.
    Beck, K., Cunningham, W.: A laboratory for teaching object-oriented thinking. In: Proc. Conference on Object-Oriented Programming Systems, Languages and Applications, pp. 1–6 (1989)Google Scholar
  3. 3.
    Bellin, D., Simone, S.S.: The CRC Card Book. Addison-Wesley Professional, Reading (1997)Google Scholar
  4. 4.
    Bowman, M., Briand, L.C., Labiche, Y.: Multi-objective genetic algorithms to support class responsibility assignment. In: Proc. 23rd IEEE International Conference on Software Maintenance, pp. 124–133 (2007)Google Scholar
  5. 5.
    Bowman, M., Briand, L.C., Labiche, Y.: Solving the class responsibility assignment problem in object-oriented analysis with multi-objective genetic algorithms. IEEE Transactions on Software Engineering 36(6), 817–837 (2010)CrossRefGoogle Scholar
  6. 6.
    Briand, L.C., Daly, J.W., Wüst, J.K.: A unified framework for coupling measurement in object-oriented systems. IEEE Transactions on Software Engineering 25(1), 91–121 (1999)CrossRefGoogle Scholar
  7. 7.
    Brown, W.J., Malveau, R.C., McCormick, H.W., Mowbray, T.J.: AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis. John Wiley and Sons, Chichester (1998)Google Scholar
  8. 8.
    Coelho, W., Murphy, G.: ClassCompass: A software design mentoring system. Educational Resources in Computing 7, 1–18 (2007)Google Scholar
  9. 9.
    Fillmore, C.J.: Lexical entries for verbs. Foundations of Language 4(4), 373–393 (1968)Google Scholar
  10. 10.
    Genero, M., Piattini, M., Calero, C.: Empirical validation of class diagram metrics. In: Proc. International Symposium on Empirical Software Engineering, pp. 195–203 (2002)Google Scholar
  11. 11.
    Henderson-Sellers, B.: Object-Oriented Metrics: Measures of Complexity. Prentice Hall, Englewood Cliffs (1995)Google Scholar
  12. 12.
    Hitz, M., Montazeri, B.: Measuring coupling and cohesion in object-oriented systems. In: Proc. International Symposium on Applied Corporate Computing (1995)Google Scholar
  13. 13.
    Kerievsky, J.: Refactoring to Patterns. Addison Wesley, Reading (2004)CrossRefGoogle Scholar
  14. 14.
    Larman, C.: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3rd edn. Prentice Hall, Englewood Cliffs (2005)Google Scholar
  15. 15.
    Manso, M.E., Genero, M., Piattini, M.: No-redundant metrics for UML class diagram structural complexity. In: Eder, J., Missikoff, M. (eds.) CAiSE 2003. LNCS, vol. 2681, pp. 127–142. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  16. 16.
    Marinescu, R.: Detection strategies: Metrics-based rules for detecting design flaws. In: Proc. 20th International Conference on Software Maintenance, pp. 350–359 (2004)Google Scholar
  17. 17.
    Martin, R.C.: Agile Software Development: Principles, Patterns, and Practices. Prentice Hall, Englewood Cliffs (2002)Google Scholar
  18. 18.
    Moha, N., Gueheneuc, Y.G., Duchien, L., Meur, A.F.L.: DECOR: A method for the specification and detection of code and design smells. IEEE Transactions on Software Engineering 36(1), 20–36 (2010)CrossRefzbMATHGoogle Scholar
  19. 19.
    Oliveto, R., Khomh, F., Antoniol, G., Gueheneuc, Y.G.: Numerical signatures of antipatterns: An approach based on B-Splines. In: Proc. 14th European Conference on Software Maintenance and Reengineering, pp. 248–251 (2010)Google Scholar
  20. 20.
    Rosenberg, D., Scott, K.: Use Case Driven Object Modeling with UML: A Practical Approach. Addison-Wesley, Reading (1999)Google Scholar
  21. 21.
    Sharble, R.C., Cohen, S.: The object-oriented brewery: A comparison of two object-oriented development methods. ACM SIGSOFT Software Engineering Notes 18(2), 60–73 (1993)CrossRefGoogle Scholar
  22. 22.
    Sunyé, G., Pollet, D., Le Traon, Y., Jézéquel, J.-M.: Refactoring UML models. In: Gogolla, M., Kobryn, C. (eds.) UML 2001. LNCS, vol. 2185, pp. 134–148. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  23. 23.
    Trifu, A., Reupke, U.: Towards automated restructuring of object oriented systems. In: Proc. 12th Working Conference on Reverse Engineering, pp. 39–48 (2007)Google Scholar
  24. 24.
    Tsantalis, N., Chatzigeorgiou, A.: Identification of move method refactoring opportunities. IEEE Transactions on Software Engineering 35(3), 347–367 (2009)CrossRefGoogle Scholar
  25. 25.
    Wirfs-Brock, R., McKean, A.: Object Design: Roles, Responsibilities, and Collaborations. Addison-Wesley, Reading (2002)Google Scholar
  26. 26.
    Wirfs-Brock, R., Wilkerson, B., Wiener, L.: Designing Object-Oriented Software. Prentice Hall, Englewood Cliffs (1990)zbMATHGoogle Scholar
  27. 27.
    Zamani, B., Butler, G.: Smell detection in UML designs which utilize pattern languages. Iranian Journal of Electrical and Computer Engineering 8(1), 47–52 (2009)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Motohiro Akiyama
    • 1
  • Shinpei Hayashi
    • 1
  • Takashi Kobayashi
    • 2
  • Motoshi Saeki
    • 1
  1. 1.Department of Computer ScienceTokyo Institute of TechnologyJapan
  2. 2.Department of Information EngineeringNagoya UniversityJapan

Personalised recommendations