<?xml version="1.0" encoding="UTF-8"?>

<rdf:RDF
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
   xmlns="http://purl.org/rss/1.0/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:prism="http://prismstandard.org/namespaces/1.2/basic/"
   xmlns:dcterms="http://purl.org/dc/terms/"

>
<channel rdf:about="http://www.citeulike.org/about">
<pubDate>Wed, 20 Aug 2008 21:20:05 BST</pubDate>


	<title>CiteULike: mcphee's watchlist</title>
	<description>CiteULike: mcphee's watchlist</description>


	<link>http://www.citeulike.org/user/mcphee/watchlist</link>
	<dc:publisher>CiteULike.org</dc:publisher>
	<dc:language>en-gb</dc:language>
	<dc:rights>Copyright &#169; 2004-2008 citeulike.org</dc:rights>
	<items>
    <rdf:Seq>
        <rdf:li rdf:resource="http://www.citeulike.org/user/shimomura/article/3078315"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/paulampkelly/article/1218263"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/mrabick/article/2785317"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/mrabick/article/3033411"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/mrabick/article/2785321"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/leonardo/article/3033237"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/alphabetagamma/article/3017891"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/alphabetagamma/article/3008425"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/alphabetagamma/article/3008419"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/alphabetagamma/article/3007915"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/emerson/article/506466"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/emerson/article/609099"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/billkidwell/article/2973157"/>
        <rdf:li rdf:resource="http://www.citeulike.org/group/5863/article/1731404"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/emerson/article/2948963"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/billkidwell/article/2948627"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/leonardo/article/2942467"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/emerson/article/2932340"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/emerson/article/2932336"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/pautasso/article/2624464"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/fabul/article/2889992"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/emerson/article/2881667"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/emerson/article/2881650"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/momo54/article/2878651"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/emerson/article/2855817"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/nominolo/article/530969"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/eabait/article/2796294"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/nominolo/article/2759139"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/leonardo/article/2724524"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/leonardo/article/2697473"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/leonardo/article/2464828"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/segura/article/782693"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/segura/article/1632061"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/segura/article/466552"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/smogit/article/2280690"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/leonardo/article/838411"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/BastianSpanneberg/article/693776"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/leonardo/article/2141495"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/leonardo/article/2140534"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/leonardo/article/1725048"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/leonardo/article/2014112"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/leonardo/article/1993089"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/emerson/article/1988475"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/leonardo/article/1987258"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/emerson/article/1928619"/>
        <rdf:li rdf:resource="http://www.citeulike.org/group/1660/article/1903696"/>
        <rdf:li rdf:resource="http://www.citeulike.org/group/1660/article/423212"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/germoglio/article/1903518"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/biomedtextminer/article/1657227"/>
        <rdf:li rdf:resource="http://www.citeulike.org/user/germoglio/article/1899192"/>

	</rdf:Seq>
	</items>
	</channel>


<item rdf:about="http://www.citeulike.org/user/shimomura/article/3078315">
    <title>リファクタリング―プログラムの体質改善テクニック (Object Technology Series)</title>
    <link>http://www.citeulike.org/user/shimomura/article/3078315</link>
    <description>&lt;i&gt;&lt;/i&gt;</description>
    <dc:title>リファクタリング―プログラムの体質改善テクニック (Object Technology Series)</dc:title>

    <dc:creator>マーチン ファウラー</dc:creator>
    <dc:creator>Martin Fowler</dc:creator>
    <dc:creator>児玉 公信</dc:creator>
    <dc:creator>平澤</dc:creator>
    <dc:creator>友野 晶夫</dc:creator>
    <dc:creator>梅沢 真史</dc:creator>
    <dc:date>2008-08-03T07:41:55-00:00</dc:date>
    <prism:publisher>ピアソンエデュケーション</prism:publisher>
    <prism:category>2000</prism:category>
    <prism:category>engineer</prism:category>
    <prism:category>refactoring</prism:category>
    <prism:category>software</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/paulampkelly/article/1218263">
    <title>A framework for software architecture refactoring using model transformations and semantic annotations</title>
    <link>http://www.citeulike.org/user/paulampkelly/article/1218263</link>
    <description>&lt;i&gt;Software Maintenance and Reengineering, 2006. CSMR 2006. Proceedings of the 10th European Conference on, Vol. 00 (2006), 10 pp..&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Software-intensive systems evolve continuously under the pressure of new and changing requirements, generally leading to an increase in overall system complexity. In this respect, to improve quality and decrease complexity, software artifacts need to be restructured and refactored throughout their lifecycle. Since software architecture artifacts represent the highest level of implementation abstraction, and constitute the first step in mapping requirements to design, architecture refactorings can be considered as the first step in the quest of maintaining system quality during evolution. In this paper, we introduce an approach for refactoring software architecture artifacts using model transformations and quality improvement semantic annotations. First, the conceptual architecture view is represented as a UML 2.0 profile with corresponding stereotypes. Second, instantiated architecture models are annotated using elements of the refactoring context, including soft-goals, metrics, and constraints. Finally, the actions that are most suitable for the given refactoring context are applied after being selected from a set of possible refactorings. The approach is applied to a simple example, demonstrating refactoring transformations for improved maintainability, performance, and security.</description>
    <dc:title>A framework for software architecture refactoring using model transformations and semantic annotations</dc:title>

    <dc:creator>I Ivkovic</dc:creator>
    <dc:creator>K Kontogiannis</dc:creator>
    <dc:identifier>doi:10.1109/CSMR.2006.3</dc:identifier>
    <dc:source>Software Maintenance and Reengineering, 2006. CSMR 2006. Proceedings of the 10th European Conference on, Vol. 00 (2006), 10 pp..</dc:source>
    <dc:date>2007-04-09T20:40:07-00:00</dc:date>
    <prism:publicationYear>2006</prism:publicationYear>
    <prism:publicationName>Software Maintenance and Reengineering, 2006. CSMR 2006. Proceedings of the 10th European Conference on</prism:publicationName>
    <prism:volume>00</prism:volume>
    <prism:startingPage>10 pp.</prism:startingPage>
    <prism:category>and</prism:category>
    <prism:category>model</prism:category>
    <prism:category>refactoring</prism:category>
    <prism:category>transformations</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/mrabick/article/2785317">
    <title>Towards a catalog of aspect-oriented refactorings</title>
    <link>http://www.citeulike.org/user/mrabick/article/2785317</link>
    <description>&lt;i&gt;(2005), pp. 111-122.&lt;/i&gt;</description>
    <dc:title>Towards a catalog of aspect-oriented refactorings</dc:title>

    <dc:creator>Miguel Monteiro</dc:creator>
    <dc:creator>Ao Jo\</dc:creator>
    <dc:identifier>doi:10.1145/1052898.1052908</dc:identifier>
    <dc:source>(2005), pp. 111-122.</dc:source>
    <dc:date>2008-05-11T19:52:46-00:00</dc:date>
    <prism:publicationYear>2005</prism:publicationYear>
    <prism:startingPage>111</prism:startingPage>
    <prism:endingPage>122</prism:endingPage>
    <prism:publisher>ACM</prism:publisher>
    <prism:category>aspect</prism:category>
    <prism:category>catalog</prism:category>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/mrabick/article/3033411">
    <title>Deriving refactorings for AspectJ</title>
    <link>http://www.citeulike.org/user/mrabick/article/3033411</link>
    <description>&lt;i&gt;(2005), pp. 123-134.&lt;/i&gt;</description>
    <dc:title>Deriving refactorings for AspectJ</dc:title>

    <dc:creator>Leonardo Cole</dc:creator>
    <dc:creator>Paulo Borba</dc:creator>
    <dc:identifier>doi:10.1145/1052898.1052909</dc:identifier>
    <dc:source>(2005), pp. 123-134.</dc:source>
    <dc:date>2008-07-22T18:51:51-00:00</dc:date>
    <prism:publicationYear>2005</prism:publicationYear>
    <prism:startingPage>123</prism:startingPage>
    <prism:endingPage>134</prism:endingPage>
    <prism:publisher>ACM</prism:publisher>
    <prism:category>aspect</prism:category>
    <prism:category>aspectj</prism:category>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/mrabick/article/2785321">
    <title>Bridging the gap between aspect mining and refactoring</title>
    <link>http://www.citeulike.org/user/mrabick/article/2785321</link>
    <description>&lt;i&gt;(2007)&lt;/i&gt;</description>
    <dc:title>Bridging the gap between aspect mining and refactoring</dc:title>

    <dc:creator>Isaac Yuen</dc:creator>
    <dc:creator>Martin Robillard</dc:creator>
    <dc:identifier>doi:10.1145/1275672.1275673</dc:identifier>
    <dc:source>(2007)</dc:source>
    <dc:date>2008-05-11T19:58:55-00:00</dc:date>
    <prism:publicationYear>2007</prism:publicationYear>
    <prism:publisher>ACM</prism:publisher>
    <prism:category>aspect</prism:category>
    <prism:category>mining</prism:category>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/leonardo/article/3033237">
    <title>Alloy as a Refactoring Checker?</title>
    <link>http://www.citeulike.org/user/leonardo/article/3033237</link>
    <description>&lt;i&gt;Electronic Notes in Theoretical Computer Science, Vol. 214 (28 June 2008), pp. 331-357.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Refactorings are systematic changes made to programs, models or specifications in order to improve their structure without changing the externally observable behaviour. We will examine how a constraint solver (the Alloy Analyzer) can be used to automatically check if refactorings, applied to a formal specification (written in Z), meet this requirement. Furthermore, we identify a class of refactorings for which the use of this tool is reasonable in general.</description>
    <dc:title>Alloy as a Refactoring Checker?</dc:title>

    <dc:creator>H-Christian Estler</dc:creator>
    <dc:creator>Heike Wehrheim</dc:creator>
    <dc:identifier>doi:10.1016/j.entcs.2008.06.015</dc:identifier>
    <dc:source>Electronic Notes in Theoretical Computer Science, Vol. 214 (28 June 2008), pp. 331-357.</dc:source>
    <dc:date>2008-07-22T17:11:57-00:00</dc:date>
    <prism:publicationYear>2008</prism:publicationYear>
    <prism:publicationName>Electronic Notes in Theoretical Computer Science</prism:publicationName>
    <prism:volume>214</prism:volume>
    <prism:startingPage>331</prism:startingPage>
    <prism:endingPage>357</prism:endingPage>
    <prism:category>2008</prism:category>
    <prism:category>alloy</prism:category>
    <prism:category>checker</prism:category>
    <prism:category>_hardcopy</prism:category>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/alphabetagamma/article/3017891">
    <title>Use case refactoring: a tool and a case study</title>
    <link>http://www.citeulike.org/user/alphabetagamma/article/3017891</link>
    <description>&lt;i&gt;Software Engineering Conference, 2004. 11th Asia-Pacific (2004), pp. 484-491.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Use case models are widely used for requirements engineering to capture functional and nonfunctional requirements, guide scenario-based design and validation, and to manage projects. Our tool for use case development and evolution supports reorganization (refactoring) of use case models as well as the extension of use case models to include new functional and nonfunctional requirements. The tool is based on a three-level metamodel covering the environment or context of a use case model, the structure of use cases, and the event or message-passing details of a scenario. In this paper we describe the tool that we have developed, and demonstrate its application to a case study for bank teller machines (ATMs). We show that the concept of refactoring can be applied to use case models as an aid to their development and evolution. We are now working on a firm semantic foundation for use cases in order to verify the behaviour-preserving property of individual refactorings.</description>
    <dc:title>Use case refactoring: a tool and a case study</dc:title>

    <dc:creator>J Xu</dc:creator>
    <dc:creator>W Yu</dc:creator>
    <dc:creator>K Rui</dc:creator>
    <dc:creator>G Butler</dc:creator>
    <dc:identifier>doi:10.1109/APSEC.2004.106</dc:identifier>
    <dc:source>Software Engineering Conference, 2004. 11th Asia-Pacific (2004), pp. 484-491.</dc:source>
    <dc:date>2008-07-18T13:09:22-00:00</dc:date>
    <prism:publicationYear>2004</prism:publicationYear>
    <prism:publicationName>Software Engineering Conference, 2004. 11th Asia-Pacific</prism:publicationName>
    <prism:startingPage>484</prism:startingPage>
    <prism:endingPage>491</prism:endingPage>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/alphabetagamma/article/3008425">
    <title>A basis for AspectJ refactoring</title>
    <link>http://www.citeulike.org/user/alphabetagamma/article/3008425</link>
    <description>&lt;i&gt;(2004)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Abstract. Refactorings are specific code transformations that can improve the design of existing code without changing its behavior. Many refactorings for object-oriented programs are well known, and refactoring support is now common in IDEs. Authors of AspectJ programs, however, cannot take full advantage of this wisdom and tool support for two reasons. First, there is currently a limited set of aspect-oriented refactorings. A second, more fundamental, problem is that aspect-oriented language constructs can impact what changes are behavior-preserving. As a result, even traditional refactorings are unreliable. This paper presents a framework for judging whether a program transformation is a refactoring in AspectJ. This framework is then applied to establish AspectJ-safe versions of existing refactorings and several new refactorings specific to AOP designs. 1</description>
    <dc:title>A basis for AspectJ refactoring</dc:title>

    <dc:creator>Shimon Rura</dc:creator>
    <dc:creator>Barbara Lerner</dc:creator>
    <dc:source>(2004)</dc:source>
    <dc:date>2008-07-16T13:00:56-00:00</dc:date>
    <prism:publicationYear>2004</prism:publicationYear>
    <prism:category>aop</prism:category>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/alphabetagamma/article/3008419">
    <title>An approach to aspect refactoring based on crosscutting concern types</title>
    <link>http://www.citeulike.org/user/alphabetagamma/article/3008419</link>
    <description>&lt;i&gt;(2005), pp. 1-5.&lt;/i&gt;</description>
    <dc:title>An approach to aspect refactoring based on crosscutting concern types</dc:title>

    <dc:creator>Marius Marin</dc:creator>
    <dc:creator>Leon Moonen</dc:creator>
    <dc:creator>Arie van Deursen</dc:creator>
    <dc:identifier>doi:10.1145/1083125.1083140</dc:identifier>
    <dc:source>(2005), pp. 1-5.</dc:source>
    <dc:date>2008-07-16T12:59:31-00:00</dc:date>
    <prism:publicationYear>2005</prism:publicationYear>
    <prism:startingPage>1</prism:startingPage>
    <prism:endingPage>5</prism:endingPage>
    <prism:publisher>ACM</prism:publisher>
    <prism:category>aop</prism:category>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/alphabetagamma/article/3007915">
    <title>Refactoring to aspects: an interactive approach</title>
    <link>http://www.citeulike.org/user/alphabetagamma/article/3007915</link>
    <description>&lt;i&gt;(2003), pp. 74-78.&lt;/i&gt;</description>
    <dc:title>Refactoring to aspects: an interactive approach</dc:title>

    <dc:creator>Jan Hannemann</dc:creator>
    <dc:creator>Thomas Fritz</dc:creator>
    <dc:creator>Gail Murphy</dc:creator>
    <dc:identifier>doi:10.1145/965660.965676</dc:identifier>
    <dc:source>(2003), pp. 74-78.</dc:source>
    <dc:date>2008-07-16T09:23:50-00:00</dc:date>
    <prism:publicationYear>2003</prism:publicationYear>
    <prism:startingPage>74</prism:startingPage>
    <prism:endingPage>78</prism:endingPage>
    <prism:publisher>ACM</prism:publisher>
    <prism:category>aop</prism:category>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/emerson/article/506466">
    <title>Refactoring for software migration</title>
    <link>http://www.citeulike.org/user/emerson/article/506466</link>
    <description>&lt;i&gt;Communications Magazine, IEEE, Vol. 39, No. 10. (2001), pp. 88-93.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Refactoring can be an important ingredient in the strategy for development and evolution of complex telecommunications software systems. Refactoring is one way to reuse and extend a successful software system. This article presents some design tactics that will assist a development team when they choose evolution from an existing software system over building a completely new system from the ground up. Strictly speaking, the refactoring process changes only the internal design of the software. Refactoring does not add any new functionality. However, the goal of refactoring work is to pave the way for the software to be modified and extended more easily. The simplest example of redesign is the creation of simple &#8220;wrapper classes&#8221; that contain groups of functions extracted from the legacy code. More complex design patterns are also useful when attempting to improve the design. Developers usually divide the redesign work into stages so that each stage can be implemented and tested separately. This article describes a real-world example of this approach that shows how refactoring improved the design of a wireless base station controller product</description>
    <dc:title>Refactoring for software migration</dc:title>

    <dc:creator>D Mancl</dc:creator>
    <dc:source>Communications Magazine, IEEE, Vol. 39, No. 10. (2001), pp. 88-93.</dc:source>
    <dc:date>2006-02-15T19:33:13-00:00</dc:date>
    <prism:publicationYear>2001</prism:publicationYear>
    <prism:publicationName>Communications Magazine, IEEE</prism:publicationName>
    <prism:volume>39</prism:volume>
    <prism:number>10</prism:number>
    <prism:startingPage>88</prism:startingPage>
    <prism:endingPage>93</prism:endingPage>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/emerson/article/609099">
    <title>The LAN-simulation: a refactoring teaching example</title>
    <link>http://www.citeulike.org/user/emerson/article/609099</link>
    <description>&lt;i&gt;Principles of Software Evolution, Eighth International Workshop on (2005), pp. 123-131.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The notion of refactoring - transforming the source-code of an object-oriented program without changing its external behaviour - has been studied intensively within the last decade. This diversity has created a plethora of toy-examples, cases and code snippets, which make it hard to assess the current state-of-the-art. Moreover, due to this diversity, there is currently no accepted way of teaching good refactoring practices, despite the acknowledgment in the software engineering body of knowledge. Therefore, this paper presents a common example - the LAN simulation - which has been used by a number of European Universities for both research and teaching purposes.</description>
    <dc:title>The LAN-simulation: a refactoring teaching example</dc:title>

    <dc:creator>S Demeyer</dc:creator>
    <dc:creator>F Van Rysselberghe</dc:creator>
    <dc:creator>T Girba</dc:creator>
    <dc:creator>J Ratzinger</dc:creator>
    <dc:creator>R Marinescu</dc:creator>
    <dc:creator>T Mens</dc:creator>
    <dc:creator>B Du Bois</dc:creator>
    <dc:creator>D Janssens</dc:creator>
    <dc:creator>S Ducasse</dc:creator>
    <dc:creator>M Lanza</dc:creator>
    <dc:creator>M Rieger</dc:creator>
    <dc:creator>H Gall</dc:creator>
    <dc:creator>M El-Ramly</dc:creator>
    <dc:source>Principles of Software Evolution, Eighth International Workshop on (2005), pp. 123-131.</dc:source>
    <dc:date>2006-05-01T15:28:47-00:00</dc:date>
    <prism:publicationYear>2005</prism:publicationYear>
    <prism:publicationName>Principles of Software Evolution, Eighth International Workshop on</prism:publicationName>
    <prism:startingPage>123</prism:startingPage>
    <prism:endingPage>131</prism:endingPage>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/billkidwell/article/2973157">
    <title>Clone Smells in Software Evolution</title>
    <link>http://www.citeulike.org/user/billkidwell/article/2973157</link>
    <description>&lt;i&gt;Software Maintenance, 2007. ICSM 2007. IEEE International Conference on (2007), pp. 24-33.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Although source code cloning (copy&#38;paste programming) represents a significant threat to the maintainability of a software system, problems usually start to arise only when the system evolves. Most of the related research papers tackle the question of finding code clones in one particular version of the software only, leaving the dynamic behavior of the clones out of consideration. Eliminating these clones in large software systems often seems absolutely hopeless, as there might exist several thousands of them. Alternatively, tracking the evolution of individual clones can be used to identify those occurrences that could really cause problems in the future versions. In this paper we present an approach for mapping clones from one particular version of the software to another one, based on a similarity measure. This mapping is used to define conditions under which clones become suspicious (or &#34;smelly&#34;) compared to their other occurrences. Accordingly, these conditions introduce the notion of dynamic clone smells. The usefulness of these smells is validated on the Mozilla Firefox internet browser, where the approach was able to find specific bugs that resulted from neglecting earlier copy&#38;paste activities.</description>
    <dc:title>Clone Smells in Software Evolution</dc:title>

    <dc:creator>T Bakota</dc:creator>
    <dc:creator>R Ferenc</dc:creator>
    <dc:creator>T Gyimothy</dc:creator>
    <dc:identifier>doi:10.1109/ICSM.2007.4362615</dc:identifier>
    <dc:source>Software Maintenance, 2007. ICSM 2007. IEEE International Conference on (2007), pp. 24-33.</dc:source>
    <dc:date>2008-07-08T18:45:02-00:00</dc:date>
    <prism:publicationYear>2007</prism:publicationYear>
    <prism:publicationName>Software Maintenance, 2007. ICSM 2007. IEEE International Conference on</prism:publicationName>
    <prism:startingPage>24</prism:startingPage>
    <prism:endingPage>33</prism:endingPage>
    <prism:category>analysis</prism:category>
    <prism:category>maintenance</prism:category>
    <prism:category>refactoring</prism:category>
    <prism:category>smells</prism:category>
    <prism:category>software</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/group/5863/article/1731404">
    <title>Refactoring in Large Software Projects: Performing Complex Restructurings Successfully</title>
    <link>http://www.citeulike.org/group/5863/article/1731404</link>
    <description>&lt;i&gt;(05 June 2006)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&#60;i&#62;Large Refactorings&#60;/i&#62; looks at methods of establish design improvements as an important and independent activity during development of software, and will help to ensure that software continues to adapt, improve and remain easy to read and modify without altering its observable behaviour. It provides real-world experience from real refactored projects and shows how to refactor software to ensure that it is efficient, fresh and adaptable.</description>
    <dc:title>Refactoring in Large Software Projects: Performing Complex Restructurings Successfully</dc:title>

    <dc:creator>Martin Lippert</dc:creator>
    <dc:creator>Stephen Roock</dc:creator>
    <dc:source>(05 June 2006)</dc:source>
    <dc:date>2007-10-05T17:22:05-00:00</dc:date>
    <prism:publicationYear>2006</prism:publicationYear>
    <prism:publisher>Wiley</prism:publisher>
    <prism:category>programming</prism:category>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/emerson/article/2948963">
    <title>A case study in re-engineering to enforce architectural control flow and data sharing</title>
    <link>http://www.citeulike.org/user/emerson/article/2948963</link>
    <description>&lt;i&gt;J. Syst. Softw., Vol. 80, No. 2. (February 2007), pp. 240-264.&lt;/i&gt;</description>
    <dc:title>A case study in re-engineering to enforce architectural control flow and data sharing</dc:title>

    <dc:creator>Marwan Abi-Antoun</dc:creator>
    <dc:creator>Jonathan Aldrich</dc:creator>
    <dc:creator>Wesley Coelho</dc:creator>
    <dc:identifier>doi:10.1016/j.jss.2006.10.036</dc:identifier>
    <dc:source>J. Syst. Softw., Vol. 80, No. 2. (February 2007), pp. 240-264.</dc:source>
    <dc:date>2008-07-01T18:14:26-00:00</dc:date>
    <prism:publicationYear>2007</prism:publicationYear>
    <prism:publicationName>J. Syst. Softw.</prism:publicationName>
    <prism:issn>0164-1212</prism:issn>
    <prism:volume>80</prism:volume>
    <prism:number>2</prism:number>
    <prism:startingPage>240</prism:startingPage>
    <prism:endingPage>264</prism:endingPage>
    <prism:publisher>Elsevier Science Inc.</prism:publisher>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/billkidwell/article/2948627">
    <title>An Empirical Study of the Evolution of an Agile-Developed Software System</title>
    <link>http://www.citeulike.org/user/billkidwell/article/2948627</link>
    <description>&lt;i&gt;(2007), pp. 511-518.&lt;/i&gt;</description>
    <dc:title>An Empirical Study of the Evolution of an Agile-Developed Software System</dc:title>

    <dc:creator>A Capiluppi</dc:creator>
    <dc:creator>J Fernandez-Ramil</dc:creator>
    <dc:creator>J Higman</dc:creator>
    <dc:creator>HC Sharp</dc:creator>
    <dc:creator>N Smith</dc:creator>
    <dc:identifier>doi:10.1109/ICSE.2007.14</dc:identifier>
    <dc:source>(2007), pp. 511-518.</dc:source>
    <dc:date>2008-07-01T15:27:12-00:00</dc:date>
    <prism:publicationYear>2007</prism:publicationYear>
    <prism:startingPage>511</prism:startingPage>
    <prism:endingPage>518</prism:endingPage>
    <prism:publisher>IEEE Computer Society</prism:publisher>
    <prism:category>agile</prism:category>
    <prism:category>evolution</prism:category>
    <prism:category>metrics</prism:category>
    <prism:category>refactoring</prism:category>
    <prism:category>software</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/leonardo/article/2942467">
    <title>Model Refactorings as Rule-Based Update Transformations</title>
    <link>http://www.citeulike.org/user/leonardo/article/2942467</link>
    <description>&lt;i&gt;“UML�? 2003 - The Unified Modeling Language (2003), pp. 159-174.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;A model refactoring is a model transformation that improves the design described in the model. A refactoring should only affect a previously chosen subset of the original model. In this paper, we discuss how to define and execute model refactorings as rule-based transformations. We also present an experimental tool to execute these transformations.</description>
    <dc:title>Model Refactorings as Rule-Based Update Transformations</dc:title>

    <dc:creator>Ivan Porres</dc:creator>
    <dc:source>“UML�? 2003 - The Unified Modeling Language (2003), pp. 159-174.</dc:source>
    <dc:date>2008-06-30T01:04:09-00:00</dc:date>
    <prism:publicationYear>2003</prism:publicationYear>
    <prism:publicationName>“UML�? 2003 - The Unified Modeling Language</prism:publicationName>
    <prism:startingPage>159</prism:startingPage>
    <prism:endingPage>174</prism:endingPage>
    <prism:category>2003</prism:category>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/emerson/article/2932340">
    <title>Paying Down Design Debt with Strategic Refactoring</title>
    <link>http://www.citeulike.org/user/emerson/article/2932340</link>
    <description>&lt;i&gt;Computer, Vol. 39, No. 12. (2006), pp. 131-134.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Our studies indicate that strategic refactoring using design patterns is the most effective way to repair decaying code for object-oriented (OO) systems. However, applying a pattern-based approach to legacy system repair or even post-design pattern injection is often difficult and, in some cases if misapplied, detrimental</description>
    <dc:title>Paying Down Design Debt with Strategic Refactoring</dc:title>

    <dc:creator>CJ Neill</dc:creator>
    <dc:creator>PA Laplante</dc:creator>
    <dc:identifier>doi:10.1109/MC.2006.435</dc:identifier>
    <dc:source>Computer, Vol. 39, No. 12. (2006), pp. 131-134.</dc:source>
    <dc:date>2008-06-27T01:15:05-00:00</dc:date>
    <prism:publicationYear>2006</prism:publicationYear>
    <prism:publicationName>Computer</prism:publicationName>
    <prism:volume>39</prism:volume>
    <prism:number>12</prism:number>
    <prism:startingPage>131</prism:startingPage>
    <prism:endingPage>134</prism:endingPage>
    <prism:category>refactoring</prism:category>
    <prism:category>refactoring_process</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/emerson/article/2932336">
    <title>JDeodorant: Identification and Removal of Type-Checking Bad Smells</title>
    <link>http://www.citeulike.org/user/emerson/article/2932336</link>
    <description>&lt;i&gt;Software Maintenance and Reengineering, 2008. CSMR 2008. 12th European Conference on (2008), pp. 329-331.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;In this demonstration, we present an Eclipse plug-in that automatically identifies type-checking bad smells in Java source code, and resolves them by applying the &#34;replace conditional with polymorphism&#34; or &#34;replace type code with state/strategy &#34; refactorings. To the best of our knowledge there is a lack of tools that identify type-checking bad smells. Moreover, none of the state-of-the-art IDEs support the refactorings that resolve such kind of bad smells.</description>
    <dc:title>JDeodorant: Identification and Removal of Type-Checking Bad Smells</dc:title>

    <dc:creator>N Tsantalis</dc:creator>
    <dc:creator>T Chaikalis</dc:creator>
    <dc:creator>A Chatzigeorgiou</dc:creator>
    <dc:identifier>doi:10.1109/CSMR.2008.4493342</dc:identifier>
    <dc:source>Software Maintenance and Reengineering, 2008. CSMR 2008. 12th European Conference on (2008), pp. 329-331.</dc:source>
    <dc:date>2008-06-27T01:09:47-00:00</dc:date>
    <prism:publicationYear>2008</prism:publicationYear>
    <prism:publicationName>Software Maintenance and Reengineering, 2008. CSMR 2008. 12th European Conference on</prism:publicationName>
    <prism:startingPage>329</prism:startingPage>
    <prism:endingPage>331</prism:endingPage>
    <prism:category>code_smells</prism:category>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/pautasso/article/2624464">
    <title>JOpera: an agile environment for Web service composition with visual unit testing and refactoring</title>
    <link>http://www.citeulike.org/user/pautasso/article/2624464</link>
    <description>&lt;i&gt;Visual Languages and Human-Centric Computing, 2005 IEEE Symposium on (2005), pp. 311-313.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Agile methodologies employ light-weight development practices emphasizing a test-driven approach to the development of software systems. Modern agile development environments support this approach by providing tools that automate most of the work required to effectively deal with change, including unit testing and different forms of refactoring. In this paper we discuss how to apply such techniques within the JOpera Visual Composition Language. More precisely, we show how we used the visual language to implement a regression testing framework for compositions written in the language itself and how we introduced support in the visual environment for refactorings such as renaming, synchronization of service interface changes, and extraction/inlining across different levels of nesting. This is done in the context of the Web service composition tools provided with the JOpera for Eclipse research platform.</description>
    <dc:title>JOpera: an agile environment for Web service composition with visual unit testing and refactoring</dc:title>

    <dc:creator>C Pautasso</dc:creator>
    <dc:identifier>doi:10.1109/VLHCC.2005.48</dc:identifier>
    <dc:source>Visual Languages and Human-Centric Computing, 2005 IEEE Symposium on (2005), pp. 311-313.</dc:source>
    <dc:date>2008-04-02T21:17:01-00:00</dc:date>
    <prism:publicationYear>2005</prism:publicationYear>
    <prism:publicationName>Visual Languages and Human-Centric Computing, 2005 IEEE Symposium on</prism:publicationName>
    <prism:startingPage>311</prism:startingPage>
    <prism:endingPage>313</prism:endingPage>
    <prism:category>agile</prism:category>
    <prism:category>composition</prism:category>
    <prism:category>eclipse</prism:category>
    <prism:category>jopera</prism:category>
    <prism:category>refactoring</prism:category>
    <prism:category>service</prism:category>
    <prism:category>visual</prism:category>
    <prism:category>web</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/fabul/article/2889992">
    <title>Automated Inference of Pointcuts in Aspect-Oriented Refactoring</title>
    <link>http://www.citeulike.org/user/fabul/article/2889992</link>
    <description>&lt;i&gt;Software Engineering, 2007. ICSE 2007. 29th International Conference on (2007), pp. 127-136.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Software refactoring is the process of reorganizing the internal structure of code while preserving the external behavior. Aspect-Oriented Programming (AOP) provides new modularization of software systems by encapsulating crosscutting concerns. Based on these two techniques, aspect-oriented (AO) refactoring restructures crosscutting elements in code. AO refactoring includes two steps: aspect mining (identification of aspect candidates in code) and as- pect refactoring (semantic-preserving transformation to mi- grate the aspect-candidate code to AO code). Aspect refac- toring clusters similar join points together for the aspect candidates and encapsulates each cluster with an effective pointcut definition. With the increase in size of the code and crosscutting concerns, it is tedious to manually identify aspects and their corresponding join points, cluster the join points, and infer pointcut expressions. Therefore, there is a need to auto- mate the process of AO refactoring. This paper proposes an automated approach that identifies aspect candidates in code and infers pointcut expressions for these aspects. Our approach mines for aspect candidates, identifies the join points for the aspect candidates, clusters the join points, and infers an effective pointcut expression for each clus- ter of join points. The approach also provides an addi- tional testing mechanismto ensure that the inferred pointcut expressions are of correct strength. The empirical results show that our approach helps achieve a significant reduc- tion in the total number of pointcut expressions to be used in the refactored code.</description>
    <dc:title>Automated Inference of Pointcuts in Aspect-Oriented Refactoring</dc:title>

    <dc:creator>Prasanth Anbalagan</dc:creator>
    <dc:creator>Tao Xie</dc:creator>
    <dc:identifier>doi:10.1109/ICSE.2007.19</dc:identifier>
    <dc:source>Software Engineering, 2007. ICSE 2007. 29th International Conference on (2007), pp. 127-136.</dc:source>
    <dc:date>2008-06-12T20:15:45-00:00</dc:date>
    <prism:publicationYear>2007</prism:publicationYear>
    <prism:publicationName>Software Engineering, 2007. ICSE 2007. 29th International Conference on</prism:publicationName>
    <prism:startingPage>127</prism:startingPage>
    <prism:endingPage>136</prism:endingPage>
    <prism:category>aop</prism:category>
    <prism:category>aosd</prism:category>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/emerson/article/2881667">
    <title>Microscopic coupling metrics for refactoring</title>
    <link>http://www.citeulike.org/user/emerson/article/2881667</link>
    <description>&lt;i&gt;Software Maintenance and Reengineering, 2006. CSMR 2006. Proceedings of the 10th European Conference on, Vol. 00 (2006), 8 pp..&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;It is observed that most object oriented coupling metrics are macroscopic, which makes them unsuitable for making finer refactoring decisions. The notions of microscopic viewpoints and coupling projections are introduced. Existing metrics are classified in terms of viewpoints and projections. Two microscopic metrics called relative method coupling (RMC) and relative inward coupling (RIC) are introduced, and a method of applying them to refactoring is discussed. A case study is also included.</description>
    <dc:title>Microscopic coupling metrics for refactoring</dc:title>

    <dc:creator>P Joshi</dc:creator>
    <dc:creator>RK Joshi</dc:creator>
    <dc:identifier>doi:10.1109/CSMR.2006.32</dc:identifier>
    <dc:source>Software Maintenance and Reengineering, 2006. CSMR 2006. Proceedings of the 10th European Conference on, Vol. 00 (2006), 8 pp..</dc:source>
    <dc:date>2008-06-11T05:35:03-00:00</dc:date>
    <prism:publicationYear>2006</prism:publicationYear>
    <prism:publicationName>Software Maintenance and Reengineering, 2006. CSMR 2006. Proceedings of the 10th European Conference on</prism:publicationName>
    <prism:volume>00</prism:volume>
    <prism:startingPage>8 pp.</prism:startingPage>
    <prism:category>metrics</prism:category>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/emerson/article/2881650">
    <title>Refactoring--Does It Improve Software Quality?</title>
    <link>http://www.citeulike.org/user/emerson/article/2881650</link>
    <description>&lt;i&gt;Software Quality, 2007. WoSQ'07: ICSE Workshops 2007. Fifth International Workshop on (2007), pp. 10-10.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Software systems undergo modifications, improvements and enhancements to cope with evolving requirements. This maintenance can cause their quality to decrease. Various metrics can be used to evaluate the way the quality is affected. Refactoring is one of the most important and commonly used techniques of transforming a piece of software in order to improve its quality. However, although it would be expected that the increase in quality achieved via refactoring is reflected in the various metrics, measurements on real life systems indicate the opposite. We analyzed source code version control system logs of popular open source software systems to detect changes marked as refactorings and examine how the software metrics are affected by this process, in order to evaluate whether refactoring is effectively used as a means to improve software quality within the open source community.</description>
    <dc:title>Refactoring--Does It Improve Software Quality?</dc:title>

    <dc:creator>K Stroggylos</dc:creator>
    <dc:creator>D Spinellis</dc:creator>
    <dc:identifier>doi:10.1109/WOSQ.2007.11</dc:identifier>
    <dc:source>Software Quality, 2007. WoSQ'07: ICSE Workshops 2007. Fifth International Workshop on (2007), pp. 10-10.</dc:source>
    <dc:date>2008-06-11T05:11:59-00:00</dc:date>
    <prism:publicationYear>2007</prism:publicationYear>
    <prism:publicationName>Software Quality, 2007. WoSQ'07: ICSE Workshops 2007. Fifth International Workshop on</prism:publicationName>
    <prism:startingPage>10</prism:startingPage>
    <prism:endingPage>10</prism:endingPage>
    <prism:category>metrics</prism:category>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/momo54/article/2878651">
    <title>Effective Software Merging in the Presence of Object-Oriented Refactorings</title>
    <link>http://www.citeulike.org/user/momo54/article/2878651</link>
    <description>&lt;i&gt;Software Engineering, IEEE Transactions on, Vol. 34, No. 3. (2008), pp. 321-335.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Current text based Software Configuration Management (SCM) systems have trouble with refactorings. Refactorings result in global changes which lead to merge conflicts. A refactoring-aware SCM system reduces merge conflicts. This paper describes MolhadoRef, a refactoring-aware SCM system and the merge algorithm at its core. MolhadoRef records change operations (refactorings and edits) used to produce one version, and replays them when merging versions. Since refactorings are change operations with well defined semantics, MolhadoRef treats them intelligently. A case study and a controlled experiment show that MolhadoRef automatically solves more merge conflicts than CVS while resulting in fewer merge errors.</description>
    <dc:title>Effective Software Merging in the Presence of Object-Oriented Refactorings</dc:title>

    <dc:creator>Danny Dig</dc:creator>
    <dc:creator>Kashif Manzoor</dc:creator>
    <dc:creator>Ralph Johnson</dc:creator>
    <dc:creator>Tien Nguyen</dc:creator>
    <dc:identifier>doi:10.1109/TSE.2008.29</dc:identifier>
    <dc:source>Software Engineering, IEEE Transactions on, Vol. 34, No. 3. (2008), pp. 321-335.</dc:source>
    <dc:date>2008-06-10T06:46:22-00:00</dc:date>
    <prism:publicationYear>2008</prism:publicationYear>
    <prism:publicationName>Software Engineering, IEEE Transactions on</prism:publicationName>
    <prism:volume>34</prism:volume>
    <prism:number>3</prism:number>
    <prism:startingPage>321</prism:startingPage>
    <prism:endingPage>335</prism:endingPage>
    <prism:category>merge</prism:category>
    <prism:category>refactoring</prism:category>
    <prism:category>semantic</prism:category>
    <prism:category>software-engineering</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/emerson/article/2855817">
    <title>Refactoring Tools and Complementary Techniques</title>
    <link>http://www.citeulike.org/user/emerson/article/2855817</link>
    <description>&lt;i&gt;Computer Systems and Applications, 2006. IEEE International Conference on. (2006), pp. 685-688.&lt;/i&gt;</description>
    <dc:title>Refactoring Tools and Complementary Techniques</dc:title>

    <dc:creator>M Drozdz</dc:creator>
    <dc:creator>DG Kourie</dc:creator>
    <dc:creator>BW Watson</dc:creator>
    <dc:creator>A Boake</dc:creator>
    <dc:source>Computer Systems and Applications, 2006. IEEE International Conference on. (2006), pp. 685-688.</dc:source>
    <dc:date>2008-06-02T04:50:18-00:00</dc:date>
    <prism:publicationYear>2006</prism:publicationYear>
    <prism:publicationName>Computer Systems and Applications, 2006. IEEE International Conference on.</prism:publicationName>
    <prism:startingPage>685</prism:startingPage>
    <prism:endingPage>688</prism:endingPage>
    <prism:category>refactoring</prism:category>
    <prism:category>tool_adoption</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/nominolo/article/530969">
    <title>Tool support for refactoring functional programs</title>
    <link>http://www.citeulike.org/user/nominolo/article/530969</link>
    <description>&lt;i&gt;(2003), pp. 27-38.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Refactorings are source-to-source program transformations which change program structure and organisation, but not program functionality. Documented in catalogues and supported by tools, refactoring provides the means to adapt and improve the design of existing code, and has thus enabled the trend towards modern agile software development processes. Refactoring has taken a prominent place in software development and maintenance, but most of this recent success has taken place in the OO and XP communities.In our project, we explore the prospects for 'Refactoring Functional Programs', taking Haskell as a concrete case-study. This paper discusses the variety of pragmatic and implementation issues raised by our work on the Haskell Refactorer. We briefly introduce the ideas behind refactoring, and a set of elementary functional refactorings. The core of the paper then outlines the main challenges that arise from our aim to produce practical tools for a decidedly non-toy language, summarizes our experience in trying to establish the necessary meta-programming infrastructure and gives an implementation overview of our current prototype refactoring tool. Using Haskell as our implementation language, we also offer some preliminary comments on Haskell programming-in-the-large.</description>
    <dc:title>Tool support for refactoring functional programs</dc:title>

    <dc:creator>Huiqing Li</dc:creator>
    <dc:creator>Claus Reinke</dc:creator>
    <dc:creator>Simon Thompson</dc:creator>
    <dc:identifier>doi:10.1145/871895.871899</dc:identifier>
    <dc:source>(2003), pp. 27-38.</dc:source>
    <dc:date>2006-03-05T00:54:07-00:00</dc:date>
    <prism:publicationYear>2003</prism:publicationYear>
    <prism:startingPage>27</prism:startingPage>
    <prism:endingPage>38</prism:endingPage>
    <prism:publisher>ACM Press</prism:publisher>
    <prism:category>functional-programming</prism:category>
    <prism:category>program-transformation</prism:category>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/eabait/article/2796294">
    <title>Object Oriented Reengineering Patterns (The Morgan Kaufmann Series in Software Engineering and Programming)</title>
    <link>http://www.citeulike.org/user/eabait/article/2796294</link>
    <description>&lt;i&gt;(08 July 2002)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The documentation is missing or obsolete, and the original developers have departed. Your team has limited understanding of the system, and unit tests are missing for many, if not all, of the components. When you fix a bug in one place, another bug pops up somewhere else in the system. Long rebuild times make any change difficult. All of these are signs of software that is close to the breaking point.&#60;br&#62;&#60;br&#62;Many systems can be upgraded or simply thrown away if they no longer serve their purpose. Legacy software, however, is crucial for operations and needs to be continually available and upgraded. How can you reduce the complexity of a legacy system sufficiently so that it can continue to be used and adapted at acceptable cost?&#60;br&#62;&#60;br&#62;Based on the authors' industrial experiences, this book is a guide on how to reverse engineer legacy systems to understand their problems, and then reengineer those systems to meet new demands. Patterns are used to clarify and explain the process of understanding large code bases, hence transforming them to meet new requirements. The key insight is that the right design and organization of your system is not something that can be evident from the initial requirements alone, but rather as a consequence of understanding how these requirements evolve.&#60;br&#62;&#60;br&#62;* Describes how to reverse engineer a monolithic system to understand how it really works and how to identify potential problems.&#60;br&#62;* Includes reengineering patterns that tackle well-known reengineering techniques often encountered in object-oriented programming, such as introducing polymorphism, factoring out common behavior, detecting duplicated code, and understanding design.&#60;br&#62;* Shows how to build a culture of continuous reengineering for achieving flexible and maintainable object-oriented systems.</description>
    <dc:title>Object Oriented Reengineering Patterns (The Morgan Kaufmann Series in Software Engineering and Programming)</dc:title>

    <dc:creator>Serge Demeyer</dc:creator>
    <dc:creator>Stéphane Ducasse</dc:creator>
    <dc:creator>Oscar Nierstrasz</dc:creator>
    <dc:source>(08 July 2002)</dc:source>
    <dc:date>2008-05-14T00:22:00-00:00</dc:date>
    <prism:publicationYear>2002</prism:publicationYear>
    <prism:publisher>Morgan Kaufmann</prism:publisher>
    <prism:category>object-oriented</prism:category>
    <prism:category>patterns</prism:category>
    <prism:category>program</prism:category>
    <prism:category>refactoring</prism:category>
    <prism:category>transformation</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/nominolo/article/2759139">
    <title>The Semantics of “Semantic Patches” in Coccinelle: Program Transformation for the Working Programmer</title>
    <link>http://www.citeulike.org/user/nominolo/article/2759139</link>
    <description>&lt;i&gt;Programming Languages and Systems (2007), pp. 303-318.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;We rationally reconstruct the core of the Coccinelle system, used for automating and documenting collateral evolutions in Linux device drivers. A denotational semantics of the system’s underlying semantic patch language (SmPL) is developed, and extended to include variables. The semantics is in essence a higher-order functional program and so executable; but is inefficient and limited to straight-line source programs. A richer and more efficient SmPL version is defined, implemented by compiling to the temporal logic CTL-V (CTL with existentially quantified variables ranging over source code parameters and program points; defined using the staging concept from partial evaluation). The compilation is formally proven correct and a model check algorithm is outlined.</description>
    <dc:title>The Semantics of “Semantic Patches” in Coccinelle: Program Transformation for the Working Programmer</dc:title>

    <dc:creator>Neil Jones</dc:creator>
    <dc:creator>René Hansen</dc:creator>
    <dc:identifier>doi:10.1007/978-3-540-76637-7_21</dc:identifier>
    <dc:source>Programming Languages and Systems (2007), pp. 303-318.</dc:source>
    <dc:date>2008-05-05T20:24:54-00:00</dc:date>
    <prism:publicationYear>2007</prism:publicationYear>
    <prism:publicationName>Programming Languages and Systems</prism:publicationName>
    <prism:startingPage>303</prism:startingPage>
    <prism:endingPage>318</prism:endingPage>
    <prism:category>program-analysis</prism:category>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/leonardo/article/2724524">
    <title>Verification of Architectural Refactorings by Rule Extraction</title>
    <link>http://www.citeulike.org/user/leonardo/article/2724524</link>
    <description>&lt;i&gt;Fundamental Approaches to Software Engineering (2008), pp. 347-361.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;With the success of model-driven development as well as component-based and service-oriented systems, models of software architecture are key artefacts in the development process. To adapt to changing requirements and improve internal software quality such models have to evolve while preserving aspects of their behaviour. To avoid the costly verification of refactoring steps on large systems we present a method which allows us to extract a (usually much smaller) rule from the transformation performed and verify this rule instead. The main result of the paper shows that the verification of rules is indeed sufficient to guarantee the desired semantic relation between source and target models. We apply the approach to the refactoring of architectural models based on UML component, structure, and activity diagrams, with using CSP as a semantic domain.</description>
    <dc:title>Verification of Architectural Refactorings by Rule Extraction</dc:title>

    <dc:creator>Dénes Bisztray</dc:creator>
    <dc:creator>Reiko Heckel</dc:creator>
    <dc:creator>Hartmut Ehrig</dc:creator>
    <dc:identifier>doi:10.1007/978-3-540-78743-3_26</dc:identifier>
    <dc:source>Fundamental Approaches to Software Engineering (2008), pp. 347-361.</dc:source>
    <dc:date>2008-04-27T19:06:29-00:00</dc:date>
    <prism:publicationYear>2008</prism:publicationYear>
    <prism:publicationName>Fundamental Approaches to Software Engineering</prism:publicationName>
    <prism:startingPage>347</prism:startingPage>
    <prism:endingPage>361</prism:endingPage>
    <prism:category>2008</prism:category>
    <prism:category>csp</prism:category>
    <prism:category>refactoring</prism:category>
    <prism:category>statecharts</prism:category>
    <prism:category>uml</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/leonardo/article/2697473">
    <title>Modelchecking Correctness of Refactorings - Some Experiments</title>
    <link>http://www.citeulike.org/user/leonardo/article/2697473</link>
    <description>&lt;i&gt;Electronic Notes in Theoretical Computer Science, Vol. 187 (15 July 2007), pp. 3-17.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Refactorings are changes made to programs, models or specifications with the intention of improving their structure and thus making them clearer, more readable and re-usable. Refactorings are required to be behaviour-preserving in that the external behaviour of the program/model/specification remains unchanged. In this paper we show how a simple type of refactorings on object-oriented specifications (written in Object-Z) can be formally shown to be behaviour-preserving using a modelchecker (SAL). The class of refactorings treated covers those operating on a single method only.</description>
    <dc:title>Modelchecking Correctness of Refactorings - Some Experiments</dc:title>

    <dc:creator>H-Christian Estler</dc:creator>
    <dc:creator>Thomas Ruhroth</dc:creator>
    <dc:creator>Heike Wehrheim</dc:creator>
    <dc:identifier>doi:10.1016/j.entcs.2006.08.041</dc:identifier>
    <dc:source>Electronic Notes in Theoretical Computer Science, Vol. 187 (15 July 2007), pp. 3-17.</dc:source>
    <dc:date>2008-04-21T18:02:42-00:00</dc:date>
    <prism:publicationYear>2007</prism:publicationYear>
    <prism:publicationName>Electronic Notes in Theoretical Computer Science</prism:publicationName>
    <prism:volume>187</prism:volume>
    <prism:startingPage>3</prism:startingPage>
    <prism:endingPage>17</prism:endingPage>
    <prism:category>2007</prism:category>
    <prism:category>_hardcopy</prism:category>
    <prism:category>model_checking</prism:category>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/leonardo/article/2464828">
    <title>Refactoring UML Models</title>
    <link>http://www.citeulike.org/user/leonardo/article/2464828</link>
    <description>&lt;i&gt;«UML» 2001 — The Unified Modeling Language. Modeling Languages, Concepts, and Tools (2001), pp. 134-148.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;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.</description>
    <dc:title>Refactoring UML Models</dc:title>

    <dc:creator>Gerson Sunyé</dc:creator>
    <dc:creator>Damien Pollet</dc:creator>
    <dc:creator>Yves Le Traon</dc:creator>
    <dc:creator>Jean Jézéquel</dc:creator>
    <dc:identifier>doi:10.1007/3-540-45441-1_11</dc:identifier>
    <dc:source>«UML» 2001 — The Unified Modeling Language. Modeling Languages, Concepts, and Tools (2001), pp. 134-148.</dc:source>
    <dc:date>2008-03-04T13:18:40-00:00</dc:date>
    <prism:publicationYear>2001</prism:publicationYear>
    <prism:publicationName>«UML» 2001 — The Unified Modeling Language. Modeling Languages, Concepts, and Tools</prism:publicationName>
    <prism:startingPage>134</prism:startingPage>
    <prism:endingPage>148</prism:endingPage>
    <prism:category>2001</prism:category>
    <prism:category>refactoring</prism:category>
    <prism:category>uml</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/segura/article/782693">
    <title>Feature oriented refactoring of legacy applications</title>
    <link>http://www.citeulike.org/user/segura/article/782693</link>
    <description>&lt;i&gt;(2006), pp. 112-121.&lt;/i&gt;</description>
    <dc:title>Feature oriented refactoring of legacy applications</dc:title>

    <dc:creator>Jia Liu</dc:creator>
    <dc:creator>Don Batory</dc:creator>
    <dc:creator>Christian Lengauer</dc:creator>
    <dc:identifier>doi:10.1145/1134285.1134303</dc:identifier>
    <dc:source>(2006), pp. 112-121.</dc:source>
    <dc:date>2006-08-02T11:53:21-00:00</dc:date>
    <prism:publicationYear>2006</prism:publicationYear>
    <prism:startingPage>112</prism:startingPage>
    <prism:endingPage>121</prism:endingPage>
    <prism:publisher>ACM Press</prism:publisher>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/segura/article/1632061">
    <title>A State-of-the-Art Survey on Software Merging</title>
    <link>http://www.citeulike.org/user/segura/article/1632061</link>
    <description>&lt;i&gt;IEEE Trans. Softw. Eng., Vol. 28, No. 5. (May 2002), pp. 449-462.&lt;/i&gt;</description>
    <dc:title>A State-of-the-Art Survey on Software Merging</dc:title>

    <dc:creator>T Mens</dc:creator>
    <dc:identifier>doi:10.1109/TSE.2002.1000449</dc:identifier>
    <dc:source>IEEE Trans. Softw. Eng., Vol. 28, No. 5. (May 2002), pp. 449-462.</dc:source>
    <dc:date>2007-09-07T15:51:39-00:00</dc:date>
    <prism:publicationYear>2002</prism:publicationYear>
    <prism:publicationName>IEEE Trans. Softw. Eng.</prism:publicationName>
    <prism:issn>0098-5589</prism:issn>
    <prism:volume>28</prism:volume>
    <prism:number>5</prism:number>
    <prism:startingPage>449</prism:startingPage>
    <prism:endingPage>462</prism:endingPage>
    <prism:publisher>IEEE Press</prism:publisher>
    <prism:category>model-merging</prism:category>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/segura/article/466552">
    <title>A Survey of Software Refactoring</title>
    <link>http://www.citeulike.org/user/segura/article/466552</link>
    <description>&lt;i&gt;IEEE Trans. Softw. Eng., Vol. 30, No. 2. (February 2004), pp. 126-139.&lt;/i&gt;</description>
    <dc:title>A Survey of Software Refactoring</dc:title>

    <dc:creator>Tom Mens</dc:creator>
    <dc:creator>Tom Tourw&#38;\#233;</dc:creator>
    <dc:identifier>doi:10.1109/TSE.2004.1265817</dc:identifier>
    <dc:source>IEEE Trans. Softw. Eng., Vol. 30, No. 2. (February 2004), pp. 126-139.</dc:source>
    <dc:date>2006-01-17T00:18:07-00:00</dc:date>
    <prism:publicationYear>2004</prism:publicationYear>
    <prism:publicationName>IEEE Trans. Softw. Eng.</prism:publicationName>
    <prism:issn>0098-5589</prism:issn>
    <prism:volume>30</prism:volume>
    <prism:number>2</prism:number>
    <prism:startingPage>126</prism:startingPage>
    <prism:endingPage>139</prism:endingPage>
    <prism:publisher>IEEE Press</prism:publisher>
    <prism:category>model-merging</prism:category>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/smogit/article/2280690">
    <title>Mining a Change-Based Software Repository</title>
    <link>http://www.citeulike.org/user/smogit/article/2280690</link>
    <description>&lt;i&gt;(2007)&lt;/i&gt;</description>
    <dc:title>Mining a Change-Based Software Repository</dc:title>

    <dc:creator>Romain Robbes</dc:creator>
    <dc:identifier>doi:10.1109/MSR.2007.18</dc:identifier>
    <dc:source>(2007)</dc:source>
    <dc:date>2008-01-23T13:57:20-00:00</dc:date>
    <prism:publicationYear>2007</prism:publicationYear>
    <prism:publisher>IEEE Computer Society</prism:publisher>
    <prism:category>change</prism:category>
    <prism:category>cvs</prism:category>
    <prism:category>empirical</prism:category>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/leonardo/article/838411">
    <title>Reverse Engineering Goal Models from Legacy Code</title>
    <link>http://www.citeulike.org/user/leonardo/article/838411</link>
    <description>&lt;i&gt;Requirements Engineering, 2005. Proceedings. 13th IEEE International Conference on, (2005), pp. 363-372.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;A reverse engineering process aims at reconstructing high-level abstractions from source code. This paper presents a novel reverse engineering methodology for recovering stakeholder goal models from both structured and unstructured legacy code. The methodology consists of the following major steps: 1) Refactoring source code by extracting methods based on comments; 2) Converting the refactored code into an abstract structured program through statechart refactoring and hammock graph construction; 3) Extracting a goal model from the structured program's abstract syntax tree; 4) Identifying nonfunctional requirements and derive soft goals based on the traceability between the code and the goal model. To illustrate this requirements recovery process, we refactor stakeholder goal models from two legacy software code bases: an unstructured Web-based email in PHP (SquirrelMail) and a structured email client system in Java (Columba).</description>
    <dc:title>Reverse Engineering Goal Models from Legacy Code</dc:title>

    <dc:creator>Yijun Yu</dc:creator>
    <dc:creator>Yiqiao Wang</dc:creator>
    <dc:creator>John Mylopoulos</dc:creator>
    <dc:creator>Sotirios Liaskos</dc:creator>
    <dc:creator>Alexei Lapouchnian</dc:creator>
    <dc:creator>Julio Leite</dc:creator>
    <dc:identifier>doi:10.1109/RE.2005.61</dc:identifier>
    <dc:source>Requirements Engineering, 2005. Proceedings. 13th IEEE International Conference on, (2005), pp. 363-372.</dc:source>
    <dc:date>2006-09-10T02:21:36-00:00</dc:date>
    <prism:publicationYear>2005</prism:publicationYear>
    <prism:publicationName>Requirements Engineering, 2005. Proceedings. 13th IEEE International Conference on,</prism:publicationName>
    <prism:startingPage>363</prism:startingPage>
    <prism:endingPage>372</prism:endingPage>
    <prism:publisher>IEEE Computer Society</prism:publisher>
    <prism:category>2005</prism:category>
    <prism:category>_hardcopy</prism:category>
    <prism:category>refactoring</prism:category>
    <prism:category>reverse_engineering</prism:category>
    <prism:category>statecharts</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/BastianSpanneberg/article/693776">
    <title>Refactoring Databases : Evolutionary Database Design (Addison Wesley Signature Series)</title>
    <link>http://www.citeulike.org/user/BastianSpanneberg/article/693776</link>
    <description>&lt;i&gt;(03 March 2006)&lt;/i&gt;</description>
    <dc:title>Refactoring Databases : Evolutionary Database Design (Addison Wesley Signature Series)</dc:title>

    <dc:creator>Scott Ambler</dc:creator>
    <dc:creator>Pramodkumar Sadalage</dc:creator>
    <dc:source>(03 March 2006)</dc:source>
    <dc:date>2006-06-12T14:50:16-00:00</dc:date>
    <prism:publicationYear>2006</prism:publicationYear>
    <prism:publisher>Addison-Wesley Professional</prism:publisher>
    <prism:category>database</prism:category>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/leonardo/article/2141495">
    <title>Program Refactoring, Program Synthesis, and Model-Driven Development</title>
    <link>http://www.citeulike.org/user/leonardo/article/2141495</link>
    <description>&lt;i&gt;Compiler Construction (2007), pp. 156-171.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Program refactoring, feature-based and aspect-oriented software synthesis, and model-driven development are disjoint research areas. However, they are all architectural metaprogramming technologies as they treat programs as values and use functions (a.k.a. transformations) to map programs to other programs. In this paper, I explore their underlying connections by reviewing recent advances in each area from an architectural metaprogramming perspective. I conjecture how these areas can converge and outline a theory that may unify them.</description>
    <dc:title>Program Refactoring, Program Synthesis, and Model-Driven Development</dc:title>

    <dc:creator>Don Batory</dc:creator>
    <dc:identifier>doi:10.1007/978-3-540-71229-9_11</dc:identifier>
    <dc:source>Compiler Construction (2007), pp. 156-171.</dc:source>
    <dc:date>2007-12-18T16:14:16-00:00</dc:date>
    <prism:publicationYear>2007</prism:publicationYear>
    <prism:publicationName>Compiler Construction</prism:publicationName>
    <prism:startingPage>156</prism:startingPage>
    <prism:endingPage>171</prism:endingPage>
    <prism:category>2007</prism:category>
    <prism:category>mdd</prism:category>
    <prism:category>refactoring</prism:category>
    <prism:category>_to_download_springer</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/leonardo/article/2140534">
    <title>Removing ill-structured arcs in Hierarchical and Concurrent State Diagrams</title>
    <link>http://www.citeulike.org/user/leonardo/article/2140534</link>
    <description>&lt;i&gt;Emerging Technologies and Factory Automation, 2006. ETFA '06. IEEE Conference on (2006), pp. 1230-1237.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;This paper starts presenting a methodology for embedded systems co-design where statecharts play the role of specification formalism. The system model is expressed using a statechart model, which is a kind of hierarchical and concurrent state diagram, and the methodology relies on the decomposition of the system model into a set of parallel components. The system model is edited using a UML-2.0 compliant graphical editor, and the tool described in this paper produces an intermediary representation of the components using XML (after model partitioning), amenable to feed automatic code generation tools, allowing production of VHDL-code, C-code, or SystemC-code. The paper presents a set of arc lifting mechanisms to be applied to an ill-structured hierarchical and concurrent state diagram in order to obtain a well-structured model, which, according with methodology's requirements, is a requisite for removing hierarchical structures in the model and allow partitioning of the model into a set of concurrent components.</description>
    <dc:title>Removing ill-structured arcs in Hierarchical and Concurrent State Diagrams</dc:title>

    <dc:creator>L Gomes</dc:creator>
    <dc:creator>A Costa</dc:creator>
    <dc:identifier>doi:10.1109/ETFA.2006.355193</dc:identifier>
    <dc:source>Emerging Technologies and Factory Automation, 2006. ETFA '06. IEEE Conference on (2006), pp. 1230-1237.</dc:source>
    <dc:date>2007-12-18T11:22:06-00:00</dc:date>
    <prism:publicationYear>2006</prism:publicationYear>
    <prism:publicationName>Emerging Technologies and Factory Automation, 2006. ETFA '06. IEEE Conference on</prism:publicationName>
    <prism:startingPage>1230</prism:startingPage>
    <prism:endingPage>1237</prism:endingPage>
    <prism:category>2006</prism:category>
    <prism:category>refactoring</prism:category>
    <prism:category>statecharts</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/leonardo/article/1725048">
    <title>Refactoring by Transformation</title>
    <link>http://www.citeulike.org/user/leonardo/article/1725048</link>
    <description>&lt;i&gt;Electronic Notes in Theoretical Computer Science, Vol. 70, No. 3. (November 2002), pp. 311-330.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;In this paper we present how refactoring of object-oriented programs can be accomplished by using refinement. Our approach is based on algebraic laws of an object-oriented language for refinement similar to Java. We follow a strategy involving data and algorithmic refinement of classes.</description>
    <dc:title>Refactoring by Transformation</dc:title>

    <dc:creator>Márcio Cornélio</dc:creator>
    <dc:creator>Ana Cavalcanti</dc:creator>
    <dc:creator>Augusto Sampaio</dc:creator>
    <dc:identifier>doi:10.1016/S1571-0661(05)82564-2</dc:identifier>
    <dc:source>Electronic Notes in Theoretical Computer Science, Vol. 70, No. 3. (November 2002), pp. 311-330.</dc:source>
    <dc:date>2007-10-03T20:31:21-00:00</dc:date>
    <prism:publicationYear>2002</prism:publicationYear>
    <prism:publicationName>Electronic Notes in Theoretical Computer Science</prism:publicationName>
    <prism:volume>70</prism:volume>
    <prism:number>3</prism:number>
    <prism:startingPage>311</prism:startingPage>
    <prism:endingPage>330</prism:endingPage>
    <prism:category>2002</prism:category>
    <prism:category>oo</prism:category>
    <prism:category>refactoring</prism:category>
    <prism:category>transformation</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/leonardo/article/2014112">
    <title>A Hierarchical Program Representation for Refactoring</title>
    <link>http://www.citeulike.org/user/leonardo/article/2014112</link>
    <description>&lt;i&gt;Electronic Notes in Theoretical Computer Science, Vol. 82, No. 7. (June 2003), pp. 91-104.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Currently there is a lot of interest in graph representations of software systems, as they provide a natural and flexible means to describe complex structures. The various visual sublanguages of the UML are perhaps the most obvious example of this. In [11] a graph representation of object-oriented programs was presented that enables one to describe refactoring operations (behaviour-preserving changes in the structure of a program) in a formal, concise way by graph rewriting productions. In general, however, a refactoring makes changes to a small part of a program, so the graph representation should only contain the information needed to carry out that refactoring. All other details are redundant and make the graph unnecessarily large for good visualization. A possible solution consists in using a hierarchical representation. Such a representation of object-oriented programs is presented in this paper. It is based on node-rewriting graph productions: each refinement step corresponds to a production. The construction is illustrated by applying it to a small Java simulation of a Local Area Network.</description>
    <dc:title>A Hierarchical Program Representation for Refactoring</dc:title>

    <dc:creator>Niels Van Eetvelde</dc:creator>
    <dc:creator>Dirk Janssens</dc:creator>
    <dc:identifier>doi:10.1016/S1571-0661(04)80749-7</dc:identifier>
    <dc:source>Electronic Notes in Theoretical Computer Science, Vol. 82, No. 7. (June 2003), pp. 91-104.</dc:source>
    <dc:date>2007-11-29T12:14:21-00:00</dc:date>
    <prism:publicationYear>2003</prism:publicationYear>
    <prism:publicationName>Electronic Notes in Theoretical Computer Science</prism:publicationName>
    <prism:volume>82</prism:volume>
    <prism:number>7</prism:number>
    <prism:startingPage>91</prism:startingPage>
    <prism:endingPage>104</prism:endingPage>
    <prism:category>2003</prism:category>
    <prism:category>hierarchy</prism:category>
    <prism:category>refactoring</prism:category>
    <prism:category>refinement</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/leonardo/article/1993089">
    <title>Model refactorings through rule-based inconsistency resolution</title>
    <link>http://www.citeulike.org/user/leonardo/article/1993089</link>
    <description>&lt;i&gt;(2006), pp. 1210-1217.&lt;/i&gt;</description>
    <dc:title>Model refactorings through rule-based inconsistency resolution</dc:title>

    <dc:creator>Ragnhild Van Der Straeten</dc:creator>
    <dc:creator>Maja D'Hondt</dc:creator>
    <dc:identifier>doi:10.1145/1141277.1141564</dc:identifier>
    <dc:source>(2006), pp. 1210-1217.</dc:source>
    <dc:date>2007-11-27T13:30:17-00:00</dc:date>
    <prism:publicationYear>2006</prism:publicationYear>
    <prism:startingPage>1210</prism:startingPage>
    <prism:endingPage>1217</prism:endingPage>
    <prism:publisher>ACM</prism:publisher>
    <prism:category>2006</prism:category>
    <prism:category>model_inconsistencies</prism:category>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/emerson/article/1988475">
    <title>Beyond refactoring: a framework for modular maintenance of crosscutting design idioms</title>
    <link>http://www.citeulike.org/user/emerson/article/1988475</link>
    <description>&lt;i&gt;(2007), pp. 175-184.&lt;/i&gt;</description>
    <dc:title>Beyond refactoring: a framework for modular maintenance of crosscutting design idioms</dc:title>

    <dc:creator>Macneil Shonle</dc:creator>
    <dc:creator>William Griswold</dc:creator>
    <dc:creator>Sorin Lerner</dc:creator>
    <dc:identifier>doi:10.1145/1287624.1287650</dc:identifier>
    <dc:source>(2007), pp. 175-184.</dc:source>
    <dc:date>2007-11-26T21:06:27-00:00</dc:date>
    <prism:publicationYear>2007</prism:publicationYear>
    <prism:startingPage>175</prism:startingPage>
    <prism:endingPage>184</prism:endingPage>
    <prism:publisher>ACM</prism:publisher>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/leonardo/article/1987258">
    <title>Refactoring OCL annotated UML class diagrams</title>
    <link>http://www.citeulike.org/user/leonardo/article/1987258</link>
    <description>&lt;i&gt;Software and Systems Modeling, Vol. 7, No. 1. (23 February 2008), pp. 25-47.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Abstract&#160;&#160;Refactoring of UML class diagrams is an emerging research topic and heavily inspired by refactoring of program code written in object-oriented implementation languages. Current class diagram refactoring techniques concentrate on the diagrammatic part but neglect OCL constraints that might become syntactically incorrect by changing the underlying class diagram. This paper formalizes the most important refactoring rules for class diagrams and classifies them with respect to their impact on attached OCL constraints. For refactoring rules that have an impact on OCL constraints, we formalize the necessary changes of the attached constraints. Our refactoring rules are specified in a graph-grammar inspired formalism. They have been implemented as QVT transformation rules. We finally discuss for our refactoring rules the problem of syntax preservation and show, by using the KeY-system, how this can be resolved.</description>
    <dc:title>Refactoring OCL annotated UML class diagrams</dc:title>

    <dc:creator>Slaviša Marković</dc:creator>
    <dc:creator>Thomas Baar</dc:creator>
    <dc:identifier>doi:10.1007/s10270-007-0056-x</dc:identifier>
    <dc:source>Software and Systems Modeling, Vol. 7, No. 1. (23 February 2008), pp. 25-47.</dc:source>
    <dc:date>2007-11-26T16:20:32-00:00</dc:date>
    <prism:publicationYear>2008</prism:publicationYear>
    <prism:publicationName>Software and Systems Modeling</prism:publicationName>
    <prism:volume>7</prism:volume>
    <prism:number>1</prism:number>
    <prism:startingPage>25</prism:startingPage>
    <prism:endingPage>47</prism:endingPage>
    <prism:category>2008</prism:category>
    <prism:category>ocl</prism:category>
    <prism:category>refactoring</prism:category>
    <prism:category>uml</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/emerson/article/1928619">
    <title>Common refactorings, a dependency graph and some code smells: an empirical study of Java OSS</title>
    <link>http://www.citeulike.org/user/emerson/article/1928619</link>
    <description>&lt;i&gt;(2006), pp. 288-296.&lt;/i&gt;</description>
    <dc:title>Common refactorings, a dependency graph and some code smells: an empirical study of Java OSS</dc:title>

    <dc:creator>S Counsell</dc:creator>
    <dc:creator>Y Hassoun</dc:creator>
    <dc:creator>G Loizou</dc:creator>
    <dc:creator>R Najjar</dc:creator>
    <dc:identifier>doi:10.1145/1159733.1159777</dc:identifier>
    <dc:source>(2006), pp. 288-296.</dc:source>
    <dc:date>2007-11-16T22:37:51-00:00</dc:date>
    <prism:publicationYear>2006</prism:publicationYear>
    <prism:startingPage>288</prism:startingPage>
    <prism:endingPage>296</prism:endingPage>
    <prism:publisher>ACM</prism:publisher>
    <prism:category>refactoring</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/group/1660/article/1903696">
    <title>Optimizing Object-Oriented Languages through Architectural Transformations</title>
    <link>http://www.citeulike.org/group/1660/article/1903696</link>
    <description>&lt;i&gt;Compiler Construction (1999), pp. 244-258.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Certain features of the object-oriented paradigm are a serious impediment for the runtime performance of object-oriented programs. Although compiler techniques to alleviate this problem were developed over the years, we will present some real-world examples which show that these solutions fall short in making any significant optimizations to systems that are required to be very flexible and highly reusable. As a solution, we propose a radically different approach: using an open compiler to &#8221;compile away&#8221; whole designs by performing architectural transformations based on programmer annotations. We will discuss this approach in detail and show why it is more suited to solve the efficiency problems inherently associated with object-oriented programming.</description>
    <dc:title>Optimizing Object-Oriented Languages through Architectural Transformations</dc:title>

    <dc:creator>Tom Tourwé</dc:creator>
    <dc:creator>Wolfgang De Meuter</dc:creator>
    <dc:source>Compiler Construction (1999), pp. 244-258.</dc:source>
    <dc:date>2007-11-12T18:20:49-00:00</dc:date>
    <prism:publicationYear>1999</prism:publicationYear>
    <prism:publicationName>Compiler Construction</prism:publicationName>
    <prism:startingPage>244</prism:startingPage>
    <prism:endingPage>258</prism:endingPage>
    <prism:category>architecture</prism:category>
    <prism:category>evolution</prism:category>
    <prism:category>refactoring</prism:category>
    <prism:category>software</prism:category>
    <prism:category>software-architecture</prism:category>
    <prism:category>software-engineering</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/group/1660/article/423212">
    <title>Evolving Object-Oriented Designs with Refactorings</title>
    <link>http://www.citeulike.org/group/1660/article/423212</link>
    <description>&lt;i&gt;Automated Software Engg., Vol. 8, No. 1. (January 2001), pp. 89-120.&lt;/i&gt;</description>
    <dc:title>Evolving Object-Oriented Designs with Refactorings</dc:title>

    <dc:creator>Lance Tokuda</dc:creator>
    <dc:creator>Don Batory</dc:creator>
    <dc:identifier>doi:10.1023/A:1008715808855</dc:identifier>
    <dc:source>Automated Software Engg., Vol. 8, No. 1. (January 2001), pp. 89-120.</dc:source>
    <dc:date>2005-12-06T05:00:01-00:00</dc:date>
    <prism:publicationYear>2001</prism:publicationYear>
    <prism:publicationName>Automated Software Engg.</prism:publicationName>
    <prism:issn>0928-8910</prism:issn>
    <prism:volume>8</prism:volume>
    <prism:number>1</prism:number>
    <prism:startingPage>89</prism:startingPage>
    <prism:endingPage>120</prism:endingPage>
    <prism:publisher>Kluwer Academic Publishers</prism:publisher>
    <prism:category>design</prism:category>
    <prism:category>evolution</prism:category>
    <prism:category>refactoring</prism:category>
    <prism:category>software</prism:category>
    <prism:category>software-engineering</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/germoglio/article/1903518">
    <title>Maintenance: less is not more</title>
    <link>http://www.citeulike.org/user/germoglio/article/1903518</link>
    <description>&lt;i&gt;Software, IEEE, Vol. 15, No. 4. (1998), pp. 67-68.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Dekleva's (1992) study confirms that if you build a system well, it will be maintained more than if you don't. Why! Because maintenance is about product enhancement and a well-built system is easier to enhance. So, if you still believe we can eliminate maintenance by doing our development jobs better, the author has a different view. That's not how it works. When it comes to software maintenance, it's increasingly clear that we should be doing more of it, not less. Maintenance is a unique advantage that the discipline of software brings to the table. Maintenance can be best served not by searching for ways of obliterating it, as some have suggested, but by searching for ways of doing it more effectively and efficiently</description>
    <dc:title>Maintenance: less is not more</dc:title>

    <dc:creator>RL Glass</dc:creator>
    <dc:source>Software, IEEE, Vol. 15, No. 4. (1998), pp. 67-68.</dc:source>
    <dc:date>2007-11-12T17:27:10-00:00</dc:date>
    <prism:publicationYear>1998</prism:publicationYear>
    <prism:publicationName>Software, IEEE</prism:publicationName>
    <prism:volume>15</prism:volume>
    <prism:number>4</prism:number>
    <prism:startingPage>67</prism:startingPage>
    <prism:endingPage>68</prism:endingPage>
    <prism:category>evolution</prism:category>
    <prism:category>refactoring</prism:category>
    <prism:category>software</prism:category>
    <prism:category>software-engineering</prism:category>
    <prism:category>software-evolution</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/biomedtextminer/article/1657227">
    <title>Corpus Refactoring: a Feasibility Study</title>
    <link>http://www.citeulike.org/user/biomedtextminer/article/1657227</link>
    <description>&lt;i&gt;Journal of Biomedical Discovery and Collaboration, Vol. 2 (13 September 2007), 4.&lt;/i&gt;</description>
    <dc:title>Corpus Refactoring: a Feasibility Study</dc:title>

    <dc:creator>Helen Johnson</dc:creator>
    <dc:creator>William Baumgartner</dc:creator>
    <dc:creator>Martin Krallinger</dc:creator>
    <dc:creator>Bretonnel Cohen</dc:creator>
    <dc:creator>Lawrence Hunter</dc:creator>
    <dc:identifier>doi:10.1186/1747-5333-2-4</dc:identifier>
    <dc:source>Journal of Biomedical Discovery and Collaboration, Vol. 2 (13 September 2007), 4.</dc:source>
    <dc:date>2007-09-14T15:11:16-00:00</dc:date>
    <prism:publicationYear>2007</prism:publicationYear>
    <prism:publicationName>Journal of Biomedical Discovery and Collaboration</prism:publicationName>
    <prism:issn>1747-5333</prism:issn>
    <prism:volume>2</prism:volume>
    <prism:startingPage>4</prism:startingPage>
    <prism:category>biology</prism:category>
    <prism:category>corpus</prism:category>
    <prism:category>curation</prism:category>
    <prism:category>format</prism:category>
    <prism:category>language</prism:category>
    <prism:category>mining</prism:category>
    <prism:category>natural</prism:category>
    <prism:category>nlp</prism:category>
    <prism:category>processing</prism:category>
    <prism:category>refactoring</prism:category>
    <prism:category>text</prism:category>
</item>



<item rdf:about="http://www.citeulike.org/user/germoglio/article/1899192">
    <title>Reconstruction of successful software evolution using clone detection</title>
    <link>http://www.citeulike.org/user/germoglio/article/1899192</link>
    <description>&lt;i&gt;Software Evolution, 2003. Proceedings. Sixth International Workshop on Principles of (2003), pp. 126-130.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;In modern software engineering, researchers regard a software system as an organic life form that must continue to evolve to remain successful. Unfortunately, little is known about how successful software systems have evolved, and consequently little has been learned from previous experience. We demonstrate a heuristic to reconstruct evolution processes of existing software systems by exploiting techniques to detect duplication in large amounts of data. A case study, evaluating various versions of Tomcat using this heuristic, revealed that the removal of duplicated code is a much smaller concern than grouping functionality in classes with one clear responsibility.</description>
    <dc:title>Reconstruction of successful software evolution using clone detection</dc:title>

    <dc:creator>F Van Rysselberghe</dc:creator>
    <dc:creator>S Demeyer</dc:creator>
    <dc:source>Software Evolution, 2003. Proceedings. Sixth International Workshop on Principles of (2003), pp. 126-130.</dc:source>
    <dc:date>2007-11-11T17:17:27-00:00</dc:date>
    <prism:publicationYear>2003</prism:publicationYear>
    <prism:publicationName>Software Evolution, 2003. Proceedings. Sixth International Workshop on Principles of</prism:publicationName>
    <prism:startingPage>126</prism:startingPage>
    <prism:endingPage>130</prism:endingPage>
    <prism:category>evolution</prism:category>
    <prism:category>refactoring</prism:category>
    <prism:category>software</prism:category>
    <prism:category>software-evolution</prism:category>
</item>



</rdf:RDF>

