Abstract
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.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Project Amateras, http://amateras.sourceforge.jp/
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)
Bellin, D., Simone, S.S.: The CRC Card Book. Addison-Wesley Professional, Reading (1997)
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)
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)
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)
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)
Coelho, W., Murphy, G.: ClassCompass: A software design mentoring system. Educational Resources in Computing 7, 1–18 (2007)
Fillmore, C.J.: Lexical entries for verbs. Foundations of Language 4(4), 373–393 (1968)
Genero, M., Piattini, M., Calero, C.: Empirical validation of class diagram metrics. In: Proc. International Symposium on Empirical Software Engineering, pp. 195–203 (2002)
Henderson-Sellers, B.: Object-Oriented Metrics: Measures of Complexity. Prentice Hall, Englewood Cliffs (1995)
Hitz, M., Montazeri, B.: Measuring coupling and cohesion in object-oriented systems. In: Proc. International Symposium on Applied Corporate Computing (1995)
Kerievsky, J.: Refactoring to Patterns. Addison Wesley, Reading (2004)
Larman, C.: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3rd edn. Prentice Hall, Englewood Cliffs (2005)
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)
Marinescu, R.: Detection strategies: Metrics-based rules for detecting design flaws. In: Proc. 20th International Conference on Software Maintenance, pp. 350–359 (2004)
Martin, R.C.: Agile Software Development: Principles, Patterns, and Practices. Prentice Hall, Englewood Cliffs (2002)
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)
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)
Rosenberg, D., Scott, K.: Use Case Driven Object Modeling with UML: A Practical Approach. Addison-Wesley, Reading (1999)
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)
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)
Trifu, A., Reupke, U.: Towards automated restructuring of object oriented systems. In: Proc. 12th Working Conference on Reverse Engineering, pp. 39–48 (2007)
Tsantalis, N., Chatzigeorgiou, A.: Identification of move method refactoring opportunities. IEEE Transactions on Software Engineering 35(3), 347–367 (2009)
Wirfs-Brock, R., McKean, A.: Object Design: Roles, Responsibilities, and Collaborations. Addison-Wesley, Reading (2002)
Wirfs-Brock, R., Wilkerson, B., Wiener, L.: Designing Object-Oriented Software. Prentice Hall, Englewood Cliffs (1990)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Akiyama, M., Hayashi, S., Kobayashi, T., Saeki, M. (2011). Supporting Design Model Refactoring for Improving Class Responsibility Assignment. In: Whittle, J., Clark, T., Kühne, T. (eds) Model Driven Engineering Languages and Systems. MODELS 2011. Lecture Notes in Computer Science, vol 6981. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-24485-8_33
Download citation
DOI: https://doi.org/10.1007/978-3-642-24485-8_33
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-24484-1
Online ISBN: 978-3-642-24485-8
eBook Packages: Computer ScienceComputer Science (R0)