publications: - title: "Beyond the Refactoring Browser: Advanced Tool Support for Software Refactoring" author: - name: "Tom Mens" link: "http://staff.umh.ac.be/Mens.Tom/" - name: "Tom Tourwé" link: "https://researchr.org/alias/tom-tourw%C3%A9" - name: "Francisca Muñoz" link: "https://researchr.org/alias/francisca-mu%C3%B1oz" year: "2003" doi: "http://csdl.computer.org/comp/proceedings/iwpse/2003/1903/00/19030039abs.htm" links: doi: "http://csdl.computer.org/comp/proceedings/iwpse/2003/1903/00/19030039abs.htm" tags: - "refactoring" researchr: "https://researchr.org/publication/MensTM03" cites: 0 citedby: 0 pages: "39-44" booktitle: "iwpse" kind: "inproceedings" key: "MensTM03" - title: "Refactoring Tools: Fitness for Purpose" author: - name: "Emerson R. Murphy-Hill" link: "https://researchr.org/alias/emerson-r.-murphy-hill" - name: "Andrew P. Black" link: "https://researchr.org/alias/andrew-p.-black" year: "2008" doi: "http://dx.doi.org/10.1109/MS.2008.123" links: doi: "http://dx.doi.org/10.1109/MS.2008.123" tags: - "refactoring" researchr: "https://researchr.org/publication/Murphy-HillB08%3A0" cites: 0 citedby: 0 journal: "IEEE Software" volume: "25" number: "5" pages: "38-44" kind: "article" key: "Murphy-HillB08:0" - title: "Towards Generic Refactoring" author: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" year: "2002" doi: "http://arxiv.org/abs/cs.PL/0203001" links: doi: "http://arxiv.org/abs/cs.PL/0203001" tags: - "refactoring" researchr: "https://researchr.org/publication/cs-PL-0203001" cites: 0 citedby: 0 journal: "corr" volume: "cs.PL/0203001" kind: "article" key: "cs-PL-0203001" - title: "A Formal Pattern Language for Refactoring of Lisp Programs" author: - name: "Antonio Paulo Teles de Menezes Correia Leitao" link: "https://researchr.org/alias/antonio-paulo-teles-de-menezes-correia-leitao" year: "2002" doi: "http://computer.org/proceedings/csmr/1438/14380186abs.htm" links: doi: "http://computer.org/proceedings/csmr/1438/14380186abs.htm" tags: - "programming languages" - "pattern language" - "refactoring" researchr: "https://researchr.org/publication/Leitao02" cites: 0 citedby: 0 pages: "186-192" booktitle: "CSMR" kind: "inproceedings" key: "Leitao02" - title: "Refactoring by Transformation" author: - name: "Márcio Cornélio" link: "https://researchr.org/alias/m%C3%A1rcio-corn%C3%A9lio" - name: "Ana Cavalcanti" link: "https://researchr.org/alias/ana-cavalcanti" - name: "Augusto Sampaio" link: "https://researchr.org/alias/augusto-sampaio" year: "2002" doi: "http://www.elsevier.com/gej-ng/31/29/23/125/48/show/Products/notes/index.htt#020" links: doi: "http://www.elsevier.com/gej-ng/31/29/23/125/48/show/Products/notes/index.htt#020" tags: - "refactoring" - "transformation" researchr: "https://researchr.org/publication/CornelioCS02" cites: 0 citedby: 0 journal: "ENTCS" volume: "70" number: "3" pages: "311-330" kind: "article" key: "CornelioCS02" - title: "Use Cases for Refactoring in Erlang" author: - name: "Tamás Kozsik" link: "https://researchr.org/alias/tam%C3%A1s-kozsik" - name: "Zoltán Csörnyei" link: "https://researchr.org/alias/zolt%C3%A1n-cs%C3%B6rnyei" - name: "Zoltán Horváth" link: "https://researchr.org/alias/zolt%C3%A1n-horv%C3%A1th" - name: "Roland Király" link: "https://researchr.org/alias/roland-kir%C3%A1ly" - name: "Róbert Kitlei" link: "https://researchr.org/alias/r%C3%B3bert-kitlei" - name: "László Lövei" link: "https://researchr.org/alias/l%C3%A1szl%C3%B3-l%C3%B6vei" - name: "Tamás Nagy" link: "https://researchr.org/alias/tam%C3%A1s-nagy" - name: "Melinda Tóth" link: "https://researchr.org/alias/melinda-t%C3%B3th" - name: "Anikó Víg" link: "https://researchr.org/alias/anik%C3%B3-v%C3%ADg" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-88059-2_7" links: doi: "http://dx.doi.org/10.1007/978-3-540-88059-2_7" tags: - "refactoring" researchr: "https://researchr.org/publication/KozsikCHKKLNTV07" cites: 0 citedby: 0 pages: "250-285" booktitle: "cefp" kind: "inproceedings" key: "KozsikCHKKLNTV07" - title: "Automated Assistance for Program Restructuring" author: - name: "William G. Griswold" link: "https://researchr.org/alias/william-g.-griswold" - name: "David Notkin" link: "https://researchr.org/alias/david-notkin" year: "1993" doi: "http://doi.acm.org/10.1145/152388.152389" links: doi: "http://doi.acm.org/10.1145/152388.152389" researchr: "https://researchr.org/publication/GiswoldN93" cites: 0 citedby: 0 journal: "TOSEM" volume: "2" number: "3" pages: "228-269" kind: "article" key: "GiswoldN93" - title: "A Metamodeling Approach to Pattern-Based Model Refactoring" author: - name: "Robert B. France" link: "https://researchr.org/alias/robert-b.-france" - name: "Sudipto Ghosh" link: "https://researchr.org/alias/sudipto-ghosh" - name: "Eunjee Song" link: "https://researchr.org/alias/eunjee-song" - name: "Dae-Kyoo Kim" link: "https://researchr.org/alias/dae-kyoo-kim" year: "2003" doi: "http://csdl.computer.org/comp/mags/so/2003/05/s5052abs.htm" links: doi: "http://csdl.computer.org/comp/mags/so/2003/05/s5052abs.htm" tags: - "rule-based" - "meta-model" - "model refactoring" - "refactoring" - "rule-based refactoring" - "Meta-Environment" - "systematic-approach" researchr: "https://researchr.org/publication/FranceGSK03" cites: 0 citedby: 0 journal: "IEEE Software" volume: "20" number: "5" pages: "52-58" kind: "article" key: "FranceGSK03" - title: "Refactoring and Aggregation" author: - name: "Ralph E. Johnson" link: "http://st-www.cs.illinois.edu/users/johnson/" - name: "William F. Opdyke" link: "https://researchr.org/alias/william-f.-opdyke" year: "1993" tags: - "refactoring" - "e-science" researchr: "https://researchr.org/publication/JohnsonO93" cites: 0 citedby: 0 pages: "264-278" booktitle: "isotas" kind: "inproceedings" key: "JohnsonO93" - title: "Creating Abstract Superclasses by Refactoring" author: - name: "William F. Opdyke" link: "https://researchr.org/alias/william-f.-opdyke" - name: "Ralph E. Johnson" link: "http://st-www.cs.illinois.edu/users/johnson/" year: "1993" doi: "http://doi.acm.org/10.1145/170791.170804" links: doi: "http://doi.acm.org/10.1145/170791.170804" tags: - "refactoring" - "e-science" researchr: "https://researchr.org/publication/OpdykeJ93" cites: 0 citedby: 0 pages: "66-73" booktitle: "acm" kind: "inproceedings" key: "OpdykeJ93" - title: "Static composition of refactorings" author: - name: "Günter Kniesel" link: "http://www.cs.uni-bonn.de/~gk/" - name: "Helge Koch" link: "https://researchr.org/alias/helge-koch" year: "2004" doi: "http://dx.doi.org/10.1016/j.scico.2004.03.002" links: doi: "http://dx.doi.org/10.1016/j.scico.2004.03.002" tags: - "refactoring" - "composition" researchr: "https://researchr.org/publication/KnieselK04" cites: 0 citedby: 1 journal: "SCP" volume: "52" pages: "9-51" kind: "article" key: "KnieselK04" - title: "Supporting Model Refactorings Through Behaviour Inheritance Consistencies" author: - name: "Ragnhild Van Der Straeten" link: "http://soft.vub.ac.be/soft/members/ragnhildvanderstraeten" - name: "Viviane Jonckers" link: "https://researchr.org/alias/viviane-jonckers" - name: "Tom Mens" link: "http://staff.umh.ac.be/Mens.Tom/" year: "2004" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3273&spage=305" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=3273&spage=305" tags: - "meta-model" - "model refactoring" - "refactoring" - "UML" - "consistency" - "Meta-Environment" researchr: "https://researchr.org/publication/StraetenJM04" cites: 0 citedby: 0 pages: "305-319" booktitle: "uml" kind: "inproceedings" key: "StraetenJM04" - title: "Refactoring Tools" author: - name: "Danny Dig" link: "https://researchr.org/alias/danny-dig" - name: "Ralph E. Johnson" link: "http://st-www.cs.illinois.edu/users/johnson/" - name: "Frank Tip" link: "http://domino.research.ibm.com/comm/research_people.nsf/pages/tip.index.html" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Jan Becicka" link: "https://researchr.org/alias/jan-becicka" - name: "William G. Griswold" link: "https://researchr.org/alias/william-g.-griswold" - name: "Markus Keller" link: "https://researchr.org/alias/markus-keller" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-78195-0_19" links: doi: "http://dx.doi.org/10.1007/978-3-540-78195-0_19" tags: - "refactoring" researchr: "https://researchr.org/publication/DigJTMBGK07" cites: 0 citedby: 0 pages: "193-202" booktitle: "ECOOPW" kind: "inproceedings" key: "DigJTMBGK07" - title: "The 2nd workshop on refactoring tools (WRT 08)" author: - name: "Danny Dig" link: "https://researchr.org/alias/danny-dig" - name: "Robert M. Fuhrer" link: "http://domino.research.ibm.com/comm/research_people.nsf/pages/fuhrer.index.html" - name: "Ralph E. Johnson" link: "http://st-www.cs.illinois.edu/users/johnson/" year: "2008" doi: "http://doi.acm.org/10.1145/1449814.1449885" links: doi: "http://doi.acm.org/10.1145/1449814.1449885" tags: - "refactoring" - "e-science" researchr: "https://researchr.org/publication/DigFJ08" cites: 0 citedby: 0 pages: "859-860" booktitle: "OOPSLA" kind: "inproceedings" key: "DigFJ08" - title: "Tool Support for Complex Refactoring to Design Patterns" author: - name: "Carmen Zannier" link: "https://researchr.org/alias/carmen-zannier" - name: "Frank Maurer" link: "https://researchr.org/alias/frank-maurer" year: "2003" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=2675&spage=123" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=2675&spage=123" tags: - "refactoring" - "design" researchr: "https://researchr.org/publication/ZannierM03" cites: 0 citedby: 0 pages: "123-130" booktitle: "xpu" kind: "inproceedings" key: "ZannierM03" - title: "Towards automating source-consistent UML Refactorings" author: - name: "Pieter Van Gorp" link: "http://www.pietervangorp.com/" - name: "Hans Stenten" link: "https://researchr.org/alias/hans-stenten" - name: "Tom Mens" link: "http://staff.umh.ac.be/Mens.Tom/" - name: "Serge Demeyer" link: "http://win.ua.ac.be/~sdemey/" tags: - "refactoring" - "UML" - "source-to-source" - "open-source" researchr: "https://researchr.org/publication/gorptowards" cites: 0 citedby: 0 booktitle: "UML'03: Proceedings of the 6th International Conference on The Unified Modeling Language" kind: "inproceedings" key: "gorptowards" - title: "Specifying Domain-Specific Refactorings for AndroMDA Based on Graph Transformation" author: - name: "Gabriele Taentzer" link: "http://www.mathematik.uni-marburg.de/~taentzer/" - name: "Dirk Müller 0002" link: "https://researchr.org/alias/dirk-m%C3%BCller-0002" - name: "Tom Mens" link: "http://staff.umh.ac.be/Mens.Tom/" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-89020-1_9" links: doi: "http://dx.doi.org/10.1007/978-3-540-89020-1_9" tags: - "rule-based" - "graph transformation" - "refactoring" - "graph-rewriting" - "rule-based refactoring" - "rewriting" - "transformation" researchr: "https://researchr.org/publication/TaentzerMM07" cites: 0 citedby: 0 pages: "104-119" booktitle: "agtive" kind: "inproceedings" key: "TaentzerMM07" - title: "Refactoring Tools and Complementary Techniques" author: - name: "Martin Drozdz" link: "https://researchr.org/alias/martin-drozdz" - name: "Derrick G. Kourie" link: "https://researchr.org/alias/derrick-g.-kourie" - name: "Bruce W. Watson" link: "https://researchr.org/alias/bruce-w.-watson" - name: "Andrew Boake" link: "https://researchr.org/alias/andrew-boake" year: "2006" doi: "http://ieeexplore.ieee.org/xpls/abs_all.jsp?isnumber=33913&arnumber=1618429&count=182&index=104" links: doi: "http://ieeexplore.ieee.org/xpls/abs_all.jsp?isnumber=33913&arnumber=1618429&count=182&index=104" tags: - "refactoring" researchr: "https://researchr.org/publication/DrozdzKWB06" cites: 0 citedby: 0 pages: "685-688" booktitle: "aiccsa" kind: "inproceedings" key: "DrozdzKWB06" - title: "Towards a language independent refactoring framework" author: - name: "Carlos Lopez" link: "https://researchr.org/alias/carlos-lopez" - name: "Raúl Marticorena Sánchez" link: "https://researchr.org/alias/ra%C3%BAl-marticorena-s%C3%A1nchez" - name: "Yania Crespo" link: "https://researchr.org/alias/yania-crespo" - name: "Francisco Javier Pérez" link: "https://researchr.org/alias/francisco-javier-p%C3%A9rez" year: "2006" tags: - "refactoring" researchr: "https://researchr.org/publication/LopezMCP06" cites: 0 citedby: 0 pages: "165-170" booktitle: "ICSOFT" kind: "inproceedings" key: "LopezMCP06" - title: "Tools for a successful refactoring" author: - name: "Emerson R. Murphy-Hill" link: "https://researchr.org/alias/emerson-r.-murphy-hill" - name: "Andrew P. Black" link: "https://researchr.org/alias/andrew-p.-black" year: "2006" doi: "http://doi.acm.org/10.1145/1176617.1176678" links: doi: "http://doi.acm.org/10.1145/1176617.1176678" tags: - "refactoring" researchr: "https://researchr.org/publication/Murphy-HillB06" cites: 0 citedby: 0 pages: "694-695" booktitle: "OOPSLA" kind: "inproceedings" key: "Murphy-HillB06" - title: "Untangling: a slice extraction refactoring" author: - name: "Ran Ettinger" link: "https://researchr.org/alias/ran-ettinger" - name: "Mathieu Verbaere" link: "https://researchr.org/alias/mathieu-verbaere" year: "2004" doi: "http://doi.acm.org/10.1145/976270.976283" links: doi: "http://doi.acm.org/10.1145/976270.976283" tags: - "refactoring" - "slicing" researchr: "https://researchr.org/publication/EttingerV04" cites: 0 citedby: 0 pages: "93-101" booktitle: "AOSD" kind: "inproceedings" key: "EttingerV04" - title: "JunGL: a scripting language for refactoring" author: - name: "Mathieu Verbaere" link: "https://researchr.org/alias/mathieu-verbaere" - name: "Ran Ettinger" link: "https://researchr.org/alias/ran-ettinger" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" year: "2006" doi: "http://doi.acm.org/10.1145/1134311" links: doi: "http://doi.acm.org/10.1145/1134311" tags: - "refactoring" researchr: "https://researchr.org/publication/VerbaereEM06" cites: 0 citedby: 0 pages: "172-181" booktitle: "ICSE" kind: "inproceedings" key: "VerbaereEM06" - title: "The LAN-simulation: A Refactoring Teaching Example" author: - name: "Serge Demeyer" link: "http://win.ua.ac.be/~sdemey/" - name: "Filip Van Rysselberghe" link: "https://researchr.org/alias/filip-van-rysselberghe" - name: "Tudor Gîrba" link: "https://researchr.org/alias/tudor-g%C3%AErba" - name: "Jacek Ratzinger" link: "https://researchr.org/alias/jacek-ratzinger" - name: "Radu Marinescu" link: "https://researchr.org/alias/radu-marinescu" - name: "Tom Mens" link: "http://staff.umh.ac.be/Mens.Tom/" - name: "Bart Du Bois" link: "https://researchr.org/alias/bart-du-bois" - name: "Dirk Janssens" link: "https://researchr.org/alias/dirk-janssens" - name: "Stéphane Ducasse" link: "https://researchr.org/alias/st%C3%A9phane-ducasse" - name: "Michele Lanza" link: "https://researchr.org/alias/michele-lanza" - name: "Matthias Rieger" link: "https://researchr.org/alias/matthias-rieger" - name: "Harald Gall" link: "https://researchr.org/alias/harald-gall" - name: "Mohammad El-Ramly" link: "https://researchr.org/alias/mohammad-el-ramly" year: "2005" doi: "http://doi.ieeecomputersociety.org/10.1109/IWPSE.2005.30" links: doi: "http://doi.ieeecomputersociety.org/10.1109/IWPSE.2005.30" tags: - "refactoring" - "teaching" researchr: "https://researchr.org/publication/DemeyerRGRMMBJDLRGE05" cites: 0 citedby: 0 pages: "123-134" booktitle: "iwpse" kind: "inproceedings" key: "DemeyerRGRMMBJDLRGE05" - title: "Comparative Study of Refactoring Haskell and Erlang Programs" author: - name: "Huiqing Li" link: "https://researchr.org/alias/huiqing-li" - name: "Simon Thompson" link: "https://researchr.org/alias/simon-thompson" year: "2006" doi: "http://doi.ieeecomputersociety.org/10.1109/SCAM.2006.8" links: doi: "http://doi.ieeecomputersociety.org/10.1109/SCAM.2006.8" tags: - "refactoring" - "Haskell" researchr: "https://researchr.org/publication/10.1109-SCAM.2006.8" cites: 0 citedby: 0 journal: "Source Code Analysis and Manipulation, IEEE International Workshop on" volume: "0" kind: "article" key: "10.1109-SCAM.2006.8" - title: "Scripting refactorings with JunGL" author: - name: "Mathieu Verbaere" link: "https://researchr.org/alias/mathieu-verbaere" - name: "Arnaud Payement" link: "https://researchr.org/alias/arnaud-payement" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" year: "2006" doi: "http://doi.acm.org/10.1145/1176617.1176656" links: doi: "http://doi.acm.org/10.1145/1176617.1176656" tags: - "refactoring" researchr: "https://researchr.org/publication/VerbaerePM06" cites: 0 citedby: 0 pages: "651-652" booktitle: "OOPSLA" kind: "inproceedings" key: "VerbaerePM06" - title: "Identifying Refactoring Opportunities Using Logic Meta Programming" author: - name: "Tom Tourwé" link: "https://researchr.org/alias/tom-tourw%C3%A9" - name: "Tom Mens" link: "http://staff.umh.ac.be/Mens.Tom/" year: "2003" doi: "http://csdl.computer.org/comp/proceedings/csmr/2003/1902/00/19020091abs.htm" links: doi: "http://csdl.computer.org/comp/proceedings/csmr/2003/1902/00/19020091abs.htm" tags: - "meta programming" - "meta-model" - "model refactoring" - "refactoring" - "logic programming" - "programming" - "logic" - "Meta-Environment" - "meta-objects" researchr: "https://researchr.org/publication/TourweM03%3A0" cites: 0 citedby: 0 pages: "91-100" booktitle: "CSMR" kind: "inproceedings" key: "TourweM03:0" - title: "Formalising Behaviour Preserving Program Transformations" author: - name: "Tom Mens" link: "http://staff.umh.ac.be/Mens.Tom/" - name: "Serge Demeyer" link: "http://win.ua.ac.be/~sdemey/" - name: "Dirk Janssens" link: "http://" year: "2002" doi: "http://link.springer.de/link/service/series/0558/bibs/2505/25050286.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/2505/25050286.htm" tags: - "transformation" - "program transformation" researchr: "https://researchr.org/publication/MensDJ02" cites: 0 citedby: 0 pages: "286-301" booktitle: "gg" kind: "inproceedings" key: "MensDJ02" - title: "Refactoring for generalization using type constraints" author: - name: "Frank Tip" link: "http://domino.research.ibm.com/comm/research_people.nsf/pages/tip.index.html" - name: "Adam Kiezun" link: "https://researchr.org/alias/adam-kiezun" - name: "Dirk Bäumer" link: "https://researchr.org/alias/dirk-b%C3%A4umer" year: "2003" doi: "http://doi.acm.org/10.1145/949305.949308" links: doi: "http://doi.acm.org/10.1145/949305.949308" tags: - "refactoring" - "constraints" researchr: "https://researchr.org/publication/TipKB03" cites: 0 citedby: 0 pages: "13-26" booktitle: "OOPSLA" kind: "inproceedings" key: "TipKB03" - title: "A formal approach to model refactoring and model refinement" author: - name: "Ragnhild Van Der Straeten" link: "http://soft.vub.ac.be/soft/members/ragnhildvanderstraeten" - name: "Viviane Jonckers" link: "https://researchr.org/alias/viviane-jonckers" - name: "Tom Mens" link: "http://staff.umh.ac.be/Mens.Tom/" year: "2007" doi: "http://dx.doi.org/10.1007/s10270-006-0025-9" abstract: "Model-driven engineering is an emerging software engineering approach that relies on model transformation. Typical kinds of model transformations are model refinement and model refactoring. Whenever such a transformation is applied to a consistent model, we would like to know whether the consistency is preserved by the transformation. Therefore, in this article, we formally define and explore the relation between behaviour inheritance consistency of a refined model with respect to the original model, and behaviour preservation of a refactored model with respect to the original model. As it turns out, there is a strong similarity between these notions of behaviour consistency and behaviour preservation. To illustrate this claim, we formalised the behaviour specified by UML 2.0 sequence and protocol state machine diagrams. We show how the reasoning capabilities of description logics, a decidable fragment of first-order logic, can be used in a natural way to detect behaviour inconsistencies. These reasoning capabilities can be used in exactly the same way to detect behaviour preservation violations during model refactoring. A prototype plug-in in a UML CASE tool has been developed to validate our claims." links: doi: "http://dx.doi.org/10.1007/s10270-006-0025-9" tags: - "model-to-model transformation" - "transformation engineering" - "meta-model" - "modeling" - "protocol" - "refinement" - "model refactoring" - "refactoring" - "UML" - "source-to-source" - "software engineering" - "model-driven engineering" - "model transformation" - "sequence diagrams" - "consistency" - "logic" - "Meta-Environment" - "state machines" - "higher-order transformations" - "model refinement" - "systematic-approach" - "transformation" researchr: "https://researchr.org/publication/StraetenJM07" cites: 0 citedby: 0 journal: "SoSyM" volume: "6" number: "2" pages: "139-162" kind: "article" key: "StraetenJM07" - title: "Formalizing refactorings with graph transformations" author: - name: "Tom Mens" link: "http://staff.umh.ac.be/Mens.Tom/" - name: "Niels Van Eetvelde" link: "https://researchr.org/alias/niels-van-eetvelde" - name: "Serge Demeyer" link: "http://win.ua.ac.be/~sdemey/" - name: "Dirk Janssens" link: "http://" year: "2005" doi: "http://dx.doi.org/10.1002/smr.316" links: doi: "http://dx.doi.org/10.1002/smr.316" tags: - "graph transformation" - "refactoring" - "graph-rewriting" - "rewriting" - "transformation" researchr: "https://researchr.org/publication/MensEDJ05" cites: 0 citedby: 0 journal: "SMR" volume: "17" number: "4" pages: "247-276" kind: "article" key: "MensEDJ05" - title: "On the Use of Graph Transformations for Model Refactoring" author: - name: "Tom Mens" link: "http://staff.umh.ac.be/Mens.Tom/" year: "2006" doi: "http://dx.doi.org/10.1007/11877028_7" links: doi: "http://dx.doi.org/10.1007/11877028_7" tags: - "model-to-model transformation" - "graph transformation" - "meta-model" - "model refactoring" - "refactoring" - "source-to-source" - "graph-rewriting" - "model transformation" - "Meta-Environment" - "rewriting" - "transformation" researchr: "https://researchr.org/publication/Mens06" cites: 0 citedby: 0 pages: "219-257" booktitle: "GTTSE" kind: "inproceedings" key: "Mens06" - title: "Towards generic refactoring" author: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" year: "2002" doi: "http://doi.acm.org/10.1145/570186.570188" links: doi: "http://doi.acm.org/10.1145/570186.570188" tags: - "refactoring" researchr: "https://researchr.org/publication/Lammel02%3A0" cites: 0 citedby: 0 pages: "15-28" booktitle: "RULE" kind: "inproceedings" key: "Lammel02:0" - title: "Cross-Language Program Analysis and Refactoring" author: - name: "Dennis Strein" link: "https://researchr.org/alias/dennis-strein" - name: "Hans Kratz" link: "https://researchr.org/alias/hans-kratz" - name: "Welf Löwe" link: "https://researchr.org/alias/welf-l%C3%B6we" year: "2006" doi: "http://doi.ieeecomputersociety.org/10.1109/SCAM.2006.10" links: doi: "http://doi.ieeecomputersociety.org/10.1109/SCAM.2006.10" tags: - "programming languages" - "program analysis" - "refactoring" - "analysis" researchr: "https://researchr.org/publication/10.1109-SCAM.2006.10" cites: 0 citedby: 0 journal: "Source Code Analysis and Manipulation, IEEE International Workshop on" volume: "0" kind: "article" key: "10.1109-SCAM.2006.10" - title: "Analysing refactoring dependencies using graph transformation" author: - name: "Tom Mens" link: "http://staff.umh.ac.be/Mens.Tom/" - name: "Gabriele Taentzer" link: "http://www.mathematik.uni-marburg.de/~taentzer/" - name: "Olga Runge" link: "https://researchr.org/alias/olga-runge" year: "2007" doi: "http://dx.doi.org/10.1007/s10270-006-0044-6" links: doi: "http://dx.doi.org/10.1007/s10270-006-0044-6" tags: - "graph transformation" - "refactoring" - "graph-rewriting" - "rewriting" - "transformation" researchr: "https://researchr.org/publication/MensTR07" cites: 0 citedby: 0 journal: "SoSyM" volume: "6" number: "3" pages: "269-285" kind: "article" key: "MensTR07" - title: "A Refactoring Tool for Smalltalk" author: - name: "Don Roberts" link: "https://researchr.org/alias/don-roberts" - name: "John Brant" link: "https://researchr.org/alias/john-brant" - name: "Ralph E. Johnson" link: "http://st-www.cs.illinois.edu/users/johnson/" year: "1997" tags: - "refactoring" - "e-science" researchr: "https://researchr.org/publication/RobertsBJ97" cites: 0 citedby: 0 journal: "tapos" volume: "3" number: "4" pages: "253-263" kind: "article" key: "RobertsBJ97" - title: "Refactoring: Current Research and Future Trends" author: - name: "Tom Mens" link: "http://staff.umh.ac.be/Mens.Tom/" - name: "Serge Demeyer" link: "http://win.ua.ac.be/~sdemey/" - name: "Bart Du Bois" link: "https://researchr.org/alias/bart-du-bois" - name: "Hans Stenten" link: "https://researchr.org/alias/hans-stenten" - name: "Pieter Van Gorp" link: "http://www.pietervangorp.com/" year: "2003" doi: "http://www1.elsevier.com/gej-ng/31/29/23/133/52/show/Products/notes/index.htt#003" links: doi: "http://www1.elsevier.com/gej-ng/31/29/23/133/52/show/Products/notes/index.htt#003" tags: - "refactoring" researchr: "https://researchr.org/publication/MensDBSG03" cites: 0 citedby: 0 journal: "ENTCS" volume: "82" number: "3" pages: "483-499" kind: "article" key: "MensDBSG03" - title: "Refactoring: to the rubicon... and beyond!" author: - name: "Roly Perera" link: "https://researchr.org/alias/roly-perera" year: "2004" doi: "http://doi.acm.org/10.1145/1028664.1028666" links: doi: "http://doi.acm.org/10.1145/1028664.1028666" tags: - "refactoring" researchr: "https://researchr.org/publication/Perera04" cites: 0 citedby: 0 pages: "2-3" booktitle: "OOPSLA" kind: "inproceedings" key: "Perera04" - title: "Evaluating software refactoring tool support" author: - name: "Erica Mealy" link: "https://researchr.org/alias/erica-mealy" - name: "Paul A. Strooper" link: "https://researchr.org/alias/paul-a.-strooper" year: "2006" doi: "http://doi.ieeecomputersociety.org/10.1109/ASWEC.2006.26" links: doi: "http://doi.ieeecomputersociety.org/10.1109/ASWEC.2006.26" tags: - "refactoring" researchr: "https://researchr.org/publication/MealyS06" cites: 0 citedby: 0 pages: "331-340" booktitle: "ASWEC" kind: "inproceedings" key: "MealyS06" - title: "Refactoring: Current Research and Future Trends" author: - name: "Tom Mens" link: "http://staff.umh.ac.be/Mens.Tom/" - name: "Serge Demeyer" link: "http://win.ua.ac.be/~sdemey/" - name: "Bart Du Bois" link: "https://researchr.org/alias/bart-du-bois" - name: "Hans Stenten" link: "https://researchr.org/alias/hans-stenten" - name: "Pieter Van Gorp" link: "http://www.pietervangorp.com/" year: "2002" tags: - "refactoring" researchr: "https://researchr.org/publication/mensrefactoring%3A2002" cites: 0 citedby: 0 journal: "Language Descriptions, Tools and Applications (LDTA)" kind: "article" key: "mensrefactoring:2002" - title: "Stepping Stones over the Refactoring Rubicon -- Lightweight Language Extensions to Easily Realise Refactorings" author: - name: "Max Sch{\\\"a}fer" link: "https://researchr.org/alias/max-sch%7B%5Eb%22a%7Dfer" - name: "Mathieu Verbaere" link: "https://researchr.org/alias/mathieu-verbaere" - name: "Torbj{\\\"o}rn Ekman" link: "https://researchr.org/alias/torbj%7B%5Eb%22o%7Drn-ekman" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" year: "2009" tags: - "refactoring" researchr: "https://researchr.org/publication/ecoop09refactoring" cites: 0 citedby: 0 booktitle: "23rd European Conference on Object-Oriented Programming (ECOOP '09)" kind: "inproceedings" key: "ecoop09refactoring" - title: "Towards Automating Source-Consistent UML Refactorings" author: - name: "Pieter Van Gorp" link: "http://www.pietervangorp.com/" - name: "Hans Stenten" link: "https://researchr.org/alias/hans-stenten" - name: "Tom Mens" link: "http://staff.umh.ac.be/Mens.Tom/" - name: "Serge Demeyer" link: "http://win.ua.ac.be/~sdemey/" year: "2003" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=2863&spage=144" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=2863&spage=144" tags: - "refactoring" - "UML" - "source-to-source" - "open-source" researchr: "https://researchr.org/publication/GorpSMD03" cites: 0 citedby: 0 pages: "144-158" booktitle: "uml" kind: "inproceedings" key: "GorpSMD03" - title: "Sound and extensible renaming for java" author: - name: "Max Schäfer" link: "http://www.comlab.ox.ac.uk/people/Max.Schaefer/" - name: "Torbjörn Ekman" link: "http://progtools.comlab.ox.ac.uk/members/torbjorn" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" year: "2008" doi: "http://doi.acm.org/10.1145/1449764.1449787" abstract: "Descriptive names are crucial to understand code. However, good names are notoriously hard to choose and manually changing a globally visible name can be a maintenance nightmare. Hence, tool support for automated renaming is an essential aid for developers and widely supported by popular development environments. This work improves on two limitations in current refactoring tools: too weak preconditions that lead to unsoundness where names do not bind to the correct declarations after renaming, and too strong preconditions that prevent renaming of certain programs. We identify two main reasons for unsoundness: complex name lookup rules make it hard to define sufficient preconditions, and new language features require additional preconditions. We alleviate both problems by presenting a novel extensible technique for creating symbolic names that are guaranteed to bind to a desired entity in a particular context by inverting lookup functions. The inverted lookup functions can then be tailored to create qualified names where otherwise a conflict would occur, allowing the refactoring to proceed and improve on the problem with too strong preconditions. We have implemented renaming for Java as an extension to the JastAdd Extensible Java Compiler and integrated it in Eclipse. We show examples for which other refactoring engines have too weak preconditions, as well as examples where our approach succeeds in renaming entities by inserting qualifications. To validate the extensibility of the approach we have implemented renaming support for Java 5 and AspectJ like inter-type declarations as modular extensions to the initial Java 1.4 refactoring engine. The renaming engine is only a few thousand lines of code including extensions and performance is on par with industrial strength refactoring tools." links: doi: "http://doi.acm.org/10.1145/1449764.1449787" tags: - "programming languages" - "AspectJ" - "rule-based" - "Java" - "Eclipse" - "meta programming" - "type soundness" - "refactoring" - "maintenance" - "rules" - "rule-based refactoring" - "compiler" - "context-aware" - "Meta-Environment" - "JastAdd" - "extensible language" - "systematic-approach" researchr: "https://researchr.org/publication/SchaferEM08" cites: 33 citedby: 0 pages: "277-294" booktitle: "OOPSLA" kind: "inproceedings" key: "SchaferEM08" - title: "Implementing Java Compilers Using ReRAGs" author: - name: "Anders Nilsson" link: "https://researchr.org/alias/anders-nilsson" - name: "Anders Ive" link: "https://researchr.org/alias/anders-ive" - name: "Torbjörn Ekman" link: "http://progtools.comlab.ox.ac.uk/members/torbjorn" - name: "Görel Hedin" link: "http://cs.lth.se/gorel_hedin" year: "2004" tags: - "Java" - "compiler" researchr: "https://researchr.org/publication/NilssonIEH04" cites: 0 citedby: 0 journal: "njc" volume: "11" number: "3" pages: "213-234" kind: "article" key: "NilssonIEH04" - title: "Detecting Structural Refactoring Conflicts Using Critical Pair Analysis" author: - name: "Tom Mens" link: "http://staff.umh.ac.be/Mens.Tom/" - name: "Gabriele Taentzer" link: "http://www.mathematik.uni-marburg.de/~taentzer/" - name: "Olga Runge" link: "https://researchr.org/alias/olga-runge" year: "2005" doi: "http://dx.doi.org/10.1016/j.entcs.2004.08.038" links: doi: "http://dx.doi.org/10.1016/j.entcs.2004.08.038" tags: - "conflict detection" - "graph transformation" - "refactoring" - "analysis" - "graph-rewriting" - "rewriting" - "transformation" researchr: "https://researchr.org/publication/MensTR05" cites: 0 citedby: 0 journal: "ENTCS" volume: "127" number: "3" pages: "113-128" kind: "article" key: "MensTR05" - title: "Modular Name Analysis for Java Using JastAdd" author: - name: "Torbjörn Ekman" link: "http://progtools.comlab.ox.ac.uk/members/torbjorn" - name: "Görel Hedin" link: "http://cs.lth.se/gorel_hedin" year: "2006" doi: "http://dx.doi.org/10.1007/11877028_18" abstract: "Name analysis for Java is challenging with its complex visibility rules involving nested scopes, inheritance, qualified access, and syntactic ambiguities. We show how Java name analysis including ambiguities related to names of variables, fields, and packages, can be implemented in a declarative and modular manner using the JastAdd compiler construction system. Declarative attributes and context-dependent rewrites enable the implementation to be modularized in the same way as the informal Java language specification. The individual rules in the specification transfer directly to equations in the implementation. Rewrites are used to define new concepts in terms of existing concepts in an iterative manner in the same way as the informal language specification. This enables equations to use both context-free and context-dependent concepts and leads to improved separation of concerns. A full Java 1.4 compiler has been implemented to validate the technique." links: doi: "http://dx.doi.org/10.1007/11877028_18" tags: - "rule-based" - "Java" - "analysis" - "graph-rewriting" - "rules" - "compiler" - "context-aware" - "rewriting" - "JastAdd" researchr: "https://researchr.org/publication/EkmanH06" cites: 0 citedby: 1 pages: "422-436" booktitle: "GTTSE" kind: "inproceedings" key: "EkmanH06" - title: "Case Study: Simulation of a LAN" author: - name: "Dirk Janssens" link: "http://" - name: "Serge Demeyer" link: "http://win.ua.ac.be/~sdemey/" - name: "Tom Mens" link: "http://staff.umh.ac.be/Mens.Tom/" year: "2003" doi: "http://www1.elsevier.com/gej-ng/31/29/23/127/49/show/Products/notes/index.htt#008" links: doi: "http://www1.elsevier.com/gej-ng/31/29/23/127/49/show/Products/notes/index.htt#008" tags: - "case study" researchr: "https://researchr.org/publication/JanssensDM03" cites: 0 citedby: 0 journal: "ENTCS" volume: "72" number: "4" pages: "71-73" kind: "article" key: "JanssensDM03" - title: "A Methodology for the Automated Introduction of Design Patterns" author: - name: "Mel Ó Cinnéide" link: "https://researchr.org/alias/mel-%C3%B3-cinn%C3%A9ide" - name: "Paddy Nixon" link: "https://researchr.org/alias/paddy-nixon" year: "1999" doi: "http://computer.org/proceedings/icsm/0016/00160463abs.htm" links: doi: "http://computer.org/proceedings/icsm/0016/00160463abs.htm" tags: - "design" researchr: "https://researchr.org/publication/CinneideN99%3A0" cites: 0 citedby: 0 pages: "463" booktitle: "ICSM" kind: "inproceedings" key: "CinneideN99:0" - title: "Tool support for refactoring functional programs" author: - name: "Huiqing Li" link: "https://researchr.org/alias/huiqing-li" - name: "Simon J. Thompson" link: "https://researchr.org/alias/simon-j.-thompson" year: "2008" doi: "http://doi.acm.org/10.1145/1328408.1328437" links: doi: "http://doi.acm.org/10.1145/1328408.1328437" tags: - "refactoring" - "functional programming" researchr: "https://researchr.org/publication/LiT08%3A9" cites: 0 citedby: 0 pages: "199-203" booktitle: "PEPM" kind: "inproceedings" key: "LiT08:9" - title: "Formal Specification and Verification of Java Refactorings" author: - name: "Alejandra Garrido" link: "https://researchr.org/alias/alejandra-garrido" - name: "Jose Meseguer" link: "https://researchr.org/alias/jose-meseguer" year: "2006" doi: "http://doi.ieeecomputersociety.org/10.1109/SCAM.2006.16" links: doi: "http://doi.ieeecomputersociety.org/10.1109/SCAM.2006.16" tags: - "Java" - "refactoring" researchr: "https://researchr.org/publication/10.1109-SCAM.2006.16" cites: 0 citedby: 0 journal: "Source Code Analysis and Manipulation, IEEE International Workshop on" volume: "0" kind: "article" key: "10.1109-SCAM.2006.16" - title: "Direct Update of Data Flow Representations for a Meaning-Preserving Program Restructuring Tool" author: - name: "William G. Griswold" link: "https://researchr.org/alias/william-g.-griswold" year: "1993" doi: "http://doi.acm.org/10.1145/256428.167063" links: doi: "http://doi.acm.org/10.1145/256428.167063" tags: - "data-flow programming" - "data-flow" researchr: "https://researchr.org/publication/Griswold93" cites: 0 citedby: 0 pages: "42-55" booktitle: "ESEC/FSE" kind: "inproceedings" key: "Griswold93" - title: "A Survey of Software Refactoring" author: - name: "Tom Mens" link: "http://staff.umh.ac.be/Mens.Tom/" - name: "Tom Tourwé" link: "https://researchr.org/alias/tom-tourw%C3%A9" year: "2004" doi: "http://csdl.computer.org/comp/trans/ts/2004/02/e0126abs.htm" abstract: "This paper provides an extensive overview of existing research in the field of software refactoring. This research is compared and discussed based on a number of different criteria: the refactoring activities that are supported, the specific techniques and formalisms that are used for supporting these activities, the types of software artifacts that are being refactored, the important issues that need to be taken into account when building refactoring tool support, and the effect of refactoring on the software process. A running example is used throughout the paper to explain and illustrate the main concepts." links: doi: "http://csdl.computer.org/comp/trans/ts/2004/02/e0126abs.htm" tags: - "rule-based" - "refactoring" - "survey" - "rule-based refactoring" researchr: "https://researchr.org/publication/MensT04" cites: 0 citedby: 0 journal: "TSE" volume: "30" number: "2" pages: "126-139" kind: "article" key: "MensT04"