A classical mind
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Software performance antipatterns
Proceedings of the 2nd international workshop on Software and performance
«UML» '01 Proceedings of the 4th International Conference on The Unified Modeling Language, Modeling Languages, Concepts, and Tools
Formalising Behaviour Preserving Program Transformations
ICGT '02 Proceedings of the First International Conference on Graph Transformation
Refactoring for generalization using type constraints
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
A Survey of Software Refactoring
IEEE Transactions on Software Engineering
Investigations in Applying Metrics to Multi-View Architecture Models
EUROMICRO '04 Proceedings of the 30th EUROMICRO Conference
Behavior Preservation in Model Refactoring Using DPO Transformations with Borrowed Contexts
ICGT '08 Proceedings of the 4th international conference on Graph Transformations
Specifying Domain-Specific Refactorings for AndroMDA Based on Graph Transformation
Applications of Graph Transformations with Industrial Relevance
Showing full semantics preservation in model transformation: a comparison of techniques
IFM'10 Proceedings of the 8th international conference on Integrated formal methods
On the use of graph transformations for model refactoring
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
Hi-index | 0.00 |
Refactoring of a design before updating and modifying software has become an accepted practice in order to prepare the design for the upcoming changes. This paper describes a refactoring of the design of a particular application to illustrate a suggested approach. In this approach, we represent the design using UML, more specifically the structure using class diagrams, and the behaviour of each class using statecharts.Examining metrics of the specific design, we suggest a refactoring that changes a centralized control structure into one that employs more delegation, showing the refactored class and statechart diagrams. As preserving behaviour is one of the defining attributes of a refactoring, we use a csp-based formalism to describe the refactoring, and show that the refactoring indeed preserves behaviour.