Abstract
Software developers spend most of their time modifying and maintaining existing products. This is because systems, and consequently their design, are in perpetual evolution before they die. Nevertheless, dealing with this evolution is a complex task. Before evolving a system, structural modifications are often required. The goal of this kind of modification is to make certain elements more extensible, permitting the addition of new features. However, designers are seldom able to evaluate the impact, on the whole model, of a single modification. That is, they cannot precisely verify if a change modifies the behavior of the modeled system. A possible solution for this problem is to provide designers with a set of basic transformations, which can ensure behavior preservation. These transformations, also known as refactorings, can then be used, step by step, to improve the design of the system. In this paper we present a set of refactorings and explain how they can be designed so as to preserve the behavior of a UML model. Some of these refactorings are illustrated with examples.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Updated joint initial submission against the action semantics for uml rfp.
Kent Beck. Extreme Programming Explained: Embracing Change. Addison-Wesley, 1999.
Paul Bergstein. Maintainance of object-oriented systems during structural schema evolution. TAPOS, 3(3):185–212, 1997.
John Brant and Don Roberts. Refactoring techniques and tools (Plenary talk). In Smalltalk Solutions, New York, NY, 1999.
F. P. Brooks. The Mitical Man-Month: Essays on Software Engineering. Addison-Wesley, Reading, Mass, 1982.
Eduardo Casais. Managing Evolutuin in Object Oriented Environments: An Algorithmic Approach. Phd thesis, University of Geneva, 1991.
Mel Cinnéide and Paddy Nixon. A methodology for the automated introduction of design patterns. In International Conference on Software Maintenance, Oxford, 1999.
Desmond D’Souza and Alan Wills. Objects, Components and Frameworks With UML: The Catalysis Approach. Addison-Wesley, 1998.
W. Griswold. Program restructuring as an aid to software maintenance, 1991.
Walter Hursch. Maintaining Consistency and Behavior of Object-Oriented Systems during Evolution. Phd thesis, Northeastern University, June 1995.
Anneke Kleppe, Jos Warmer, and Steve Cook. Informal formality? the Object Constraint Language and its application in the UML metamodel. In Jean Bézivin and Pierre-Alain Muller, editors, The Unified Modeling Language, UML’98-Beyond the Notation. First International Workshop, Mulhouse, France, June 1998, pages 127–136, 1998.
William F. Opdyke. Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois, Urbana-Champaign, 1992. Tech. Report UIUCDCS-R-92-1759.
Donald Roberts. Practical Analysis for Refactoring. PhD thesis, University of Illinois, 1999.
Donald Roberts, J. Brant, and Ralph Johnson. A refactoring tool for smalltalk. Theory and Practice of Object Systems, 3(4), 1997.
G. Sunyé, A. Le Guennec, and J.-M. Jézéquel. Design pattern application in UML. In E. Bertino, editor, ECOOP’2000 proceedings, number 1850, pages 44–62. Lecture Notes in Computer Science, Springer Verlag, June 2000.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Sunyé, G., Pollet, D., Le Traon, Y., Jézéquel, JM. (2001). Refactoring UML Models. In: Gogolla, M., Kobryn, C. (eds) ≪UML≫ 2001 — The Unified Modeling Language. Modeling Languages, Concepts, and Tools. UML 2001. Lecture Notes in Computer Science, vol 2185. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45441-1_11
Download citation
DOI: https://doi.org/10.1007/3-540-45441-1_11
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-42667-7
Online ISBN: 978-3-540-45441-0
eBook Packages: Springer Book Archive