For Full-Text PDF, please login, if you are a member of IEICE,|
or go to Pay Per View on menu list, if you are a nonmember of IEICE.
Formalizing Refactoring by Using Graph Transformation
Hiroshi KAZATO Minoru TAKAISHI Takashi KOBAYASHI Motoshi SAEKI
IEICE TRANSACTIONS on Information and Systems
Publication Date: 2004/04/01
Print ISSN: 0916-8532
Type of Manuscript: Special Section PAPER (Special Section on Knowledge-Based Software Engineering)
Category: Metrics, Test, and Maintenance
refactoring, object-oriented design, graph transformation, graph grammar, OCL, meta model,
Full Text: PDF(2MB)>>
Refactoring is one of the promising techniques for improving software design by means of behavior-preserving structural transformation, and is widely taken into practice. In particular, it is frequently applied to design models represented with UML such as class diagrams. However, since UML design models includes multiple diagrams which are closely related from various views, to get behavior-preserving property, we should get the other types of design information and should handle with the propagation of the change on a diagram to the other diagrams. For example, to refactor a class diagram, we need behavioral information of methods included in the class and should also refactor diagrams which represent the behavior, such as state diagrams, activity diagrams. In this paper, we introduce refactoring on design models as transformations of a graph described by UML class diagram and action semantics. First, we define basic transformations of design models that preserve the behavior of designed software, and compose them into refactoring operations. We use Object Constraint Language (OCL) to specify when we can apply a refactoring operation. Furthermore we implement our technique on a graph transformation system AGG to support the automation of refactoring, together with evaluation mechanism of OCL expressions. Some illustrations are presented to show its effectiveness. The work is the first step to handle with refactoring on UML design models in integrated way.