Abstract
Being a commonly used technique to enrich the software structure, refactoring — as well as any software changes performed every day — still lacks a good formal definition. Especially in the distributed environment there is a great need for a better mechanism allowing to avoid conflicts and properly merge the changes introduced by different developers. In this paper we continue our project of a core of distributed environment based on graph repository, which helped us to defeat and significantly decrease problems of refactoring conflicts. We focus on technical aspects of the environment and present precise description of the refactorings with the help of aedNLC graph grammar and graph transformation mechanisms. We also discuss some other properties of the graph repository including its abilities to store dynamic software description, Presented approach is based on UML notation, however it could be easily extended for any object-oriented language. The graph repository concept alone could lead to a model of a modern integrated software development environment.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Fowler, M.: Refactoring: Improving the Design of Existing Programs. Addison-Wesley (1999)
Opdyke, W.F.: Refactoring: A Program Restructuring Aid in Designing Object-Oriented Application Frameworks, Ph.D. thesis, University of Illinois at Urbana-Champaign (1992)
Roberts, D., Brant, J., Johnson, R.: A Refactoring Tool for Smalltalk, Theory and Practice of Object systems (1997) 253–263
Eclipse Foundation, http://www.eclipse.org/eclipse/, The Eclipse Project (2005)
Mens, T., Taentzer, G., Runge, O.: Detecting Structural Refactoring Conflicts Using Critical Pair Analysis. Electronic Notes in Theoretical Computer Science, Vol. 127(3) (2005) 113–128
Mens, T.: A state-of-the-art survey on software merging, IEEE Transactions on Software Engineering 28(5) (2002) 449–462
Kotulski, L., Nowak, A.: Graph Repository As a Core of Environment for Distributed Software Restructuring and Refactoring, 24th IASTED International Conference on Applied Informatics, Insbruck (2006)
Mens, T., Eetvelde, N., Janssens, D., Demeyer, S.: Formalising Refactoring with Graph Transformations, Journal of Software Maintenance and Evolution (2004) 1001–1025
Flasiński, M., Kotulski, L.: On the Use of Graph Grammars for the Control of a Distributed Software Allocation, The Computer Journal, 35(1) (1992) 167–175
Roberts, D.: Practical Analysis for Refactoring, Ph.D. thesis, University of Illinois at Urbana-Champaign (1999)
Engels, G., Schurr, A.: Encapsulated Hierarchical Graphs, Graph Types and Meta Types, Electronic Notes in Theoretical Computer Science (1995) 2
Warmer, J., Kleppe, A.: The Object Constraint Language: Precise Modeling with UML, Addison-Weslay (1998)
Kotulski, L.: Parallel Allocation of the Distributed Software Using Node Label Controlled Graph Grammars, Krakow, Poland, Jagiellonian University, Inst. of Comp. Science (2003)
Kotulski, L.: Model systemu wspomagania generacji oprogramowania współbieżnego w środowisku rozproszonym za pomocą gramatyk grafowych (in Polish), Krakow, Poland, Jagiellonian University Press (2000)
Kotulski, L.: Graph representation of the nested software structure, Proc. 5th International Conference on Computational Science, Atlanta, GA (2005) 1008–1011
Flasiński M.: Power Properties of NLC Graph Grammars with a Polynomial Membership Problem, Theoretical Computer Science, 201(2) (1998) 189–231
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 International Federation for Information Processing
About this paper
Cite this paper
Kotulski, L., Nowak, A. (2006). Formalizing Software Refactoring in the Distributed Environment by aedNLC Graph Grammar. In: Sacha, K. (eds) Software Engineering Techniques: Design for Quality. IFIP International Federation for Information Processing, vol 227. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-39388-9_33
Download citation
DOI: https://doi.org/10.1007/978-0-387-39388-9_33
Publisher Name: Springer, Boston, MA
Print ISBN: 978-0-387-39387-2
Online ISBN: 978-0-387-39388-9
eBook Packages: Computer ScienceComputer Science (R0)