Supporting design model refactoring for improving class responsibility assignment

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.

[1]  Radu Marinescu,et al.  Detection strategies: metrics-based rules for detecting design flaws , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[2]  Robert C. Martin Agile Software Development, Principles, Patterns, and Practices , 2002 .

[3]  Mario Piattini,et al.  No-redundant Metrics for UML Class Diagram Structural Complexity , 2003, CAiSE.

[4]  Foutse Khomh,et al.  Numerical Signatures of Antipatterns: An Approach Based on B-Splines , 2010, 2010 14th European Conference on Software Maintenance and Reengineering.

[5]  Rebecca Wirfs-Brock,et al.  Designing object-oriented software , 1990 .

[6]  Lionel C. Briand,et al.  A Unified Framework for Coupling Measurement in Object-Oriented Systems , 1999, IEEE Trans. Software Eng..

[7]  Kent Beck,et al.  A laboratory for teaching object oriented thinking , 1989, OOPSLA 1989.

[8]  Jean-Marc Jézéquel,et al.  Refactoring UML Models , 2001, UML.

[9]  Mario Piattini,et al.  Empirical validation of class diagram metrics , 2002, Proceedings International Symposium on Empirical Software Engineering.

[10]  Bahman Zamani,et al.  SMELL DETECTION IN UML DESIGNS WHICH UTILIZE PATTERN LANGUAGES , 2009 .

[11]  C. Fillmore Lexical Entries for Verbs , 1968 .

[12]  Lionel C. Briand,et al.  Multi-Objective Genetic Algorithm to Support Class Responsibility Assignment , 2007, 2007 IEEE International Conference on Software Maintenance.

[13]  Yann-Gaël Guéhéneuc,et al.  DECOR: A Method for the Specification and Detection of Code and Design Smells , 2010, IEEE Transactions on Software Engineering.

[14]  Gail C. Murphy,et al.  ClassCompass: A software design mentoring system , 2007, JERC.

[15]  Joshua Kerievsky,et al.  Refactoring to Patterns , 2004, XP/Agile Universe.

[16]  Doug Rosenberg,et al.  Use case driven object modeling with UML: a practical approach , 1999 .

[17]  Craig Larman,et al.  Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition) , 1997 .

[18]  Leon G. Higley,et al.  Forensic Entomology: An Introduction , 2009 .

[19]  Lionel C. Briand,et al.  Solving the Class Responsibility Assignment Problem in Object-Oriented Analysis with Multi-Objective Genetic Algorithms , 2010, IEEE Transactions on Software Engineering.

[20]  Brian Henderson-Sellers,et al.  Object-oriented metrics: measures of complexity , 1995 .

[21]  Adrian Trifu,et al.  Towards Automated Restructuring of Object Oriented Systems , 2007, 11th European Conference on Software Maintenance and Reengineering (CSMR'07).

[22]  David Bellin,et al.  The CRC card book , 1997 .

[23]  Thomas J. Mowbray,et al.  AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis , 1998 .

[24]  Ivar Jacobson,et al.  Object Design: Roles, Responsibilities, and Collaborations , 2002 .

[25]  Robert C. Sharble,et al.  The object-oriented brewery: a comparison of two object-oriented development methods , 1993, SOEN.

[26]  Alexander Chatzigeorgiou,et al.  Identification of Move Method Refactoring Opportunities , 2009, IEEE Transactions on Software Engineering.