• No results found

3.1 Example of Java source code before and after the Insert Parameter evolution. . . 35

3.2 Example of Java source code before and after the Rename Element evolution. . . 35

3.3 Example of Java source code before and after the Extract Method evolution. . . . 36

3.4 Example of Java source code before and after the Remove Statement evolution. . 37

3.5 Example of a DocBooklet file. . . 38

3.6 Example of a DocBooklet file before and after the Duplicate Section evolution. . 39

3.7 Example of a DocBooklet file before and after the Move Up Section evolution. . 40

3.8 Example of a DocBooklet file before and after the Extract Section evolution. . . 42

3.9 Example of a DocBooklet file before and after the Remove Section evolution. . . 43

4.1 Complete role model for ExtractX. . . 75

4.2 Complete refactoring specification for ExtractX. . . 76

4.3 Complete role mapping of ExtractX as Extract Super Class for the UML metamodel. 77 4.4 Java source code excerpt from AbstractProblemSpaceEvolution showing the five steps required for problem space evolutions. . . 82

4.5 Java source code excerpt from AbstractSolutionSpaceEvolution showing the six steps required for solution space evolutions. . . 86

4.6 Example of an ORSpec showing the different remapping instructions and their modifiers. . . 99

4.7 Example of a minimalistic role model. . . 105

4.8 Example of a minimalistic refactoring specification. . . 106

4.9 Example of a role mapping for Duplicate Feature. . . 106

4.10 Principle structure of the implementation of the evolution adapter for Duplicate Feature. . . 107

4.11 Principle structure of the implementation of the Duplicate Feature evolution. . . 108

4.12 Principle structure of the parameter page for Duplicate Feature. . . 109

4.13 Complete implementation of the evolution adapter for Duplicate Feature. . . 110

4.14 ORSpec for the generic interspatial evolution ExtractXWithReferenceClass. . . . 111

5.1 Java source code of the method createUI() of the class UIBuilder of the year 2001. . . 117

5.2 Shortened version of the MAXI Cheetah user manual of the year 2001. . . 118

5.3 Examplary excerpt from the NavMap file provided with the personal navigation device. . . 129

5.4 Manually modified version of the Java source code of the method createUI() of the class UIBuilder. . . 132

173

Bibliography

[AGM+06] Vander Alves, Rohit Gheyi, Tiago Massoni, Uir´a Kulesza, Paulo Borba, and Carlos Lucena. Refactoring product lines. In Proceedings of the 5th international conference on Generative programming and component engineering, GPCE ’06, pages 201–210, New York, NY, USA, 2006. ACM.

[AK08] Sven Apel and Christian K¨astner. An overview of feature-oriented software devel-opment. JOT, 2008.

[AMC+05] Vander Alves, Pedro Matos, Leonardo Cole, Paulo Borba, and Geber Ramalho.

Extracting and evolving mobile games product lines. In Henk Obbink and Klaus Pohl, editors, Software Product Lines, volume 3714 of Lecture Notes in Computer Science, pages 70–81. Springer Berlin / Heidelberg, 2005.

[Aoy01] Mikio Aoyama. Continuous and discontinuous software evolution: aspects of soft-ware evolution across multiple product lines. In Proceedings of the 4th International Workshop on Principles of Software Evolution, IWPSE ’01, pages 87–90, New York, NY, USA, 2001. ACM.

[Bor11] Paulo Borba. An introduction to software product line refactoring. In Jo˜ao Fernan-des, Ralf L¨ammel, Joost Visser, and Jo˜ao Saraiva, editors, Generative and Trans-formational Techniques in Software Engineering III, volume 6491 of Lecture Notes in Computer Science, pages 1–26. Springer Berlin / Heidelberg, 2011.

[Bos01] Jan Bosch. Software product lines: Organizational alternatives. International Con-ference on Software Engineering, 0:0091, 2001.

[Bos02] Jan Bosch. Maturity and evolution in software product lines: Approaches, artefacts and organization. In Gary Chastek, editor, Software Product Lines, volume 2379 of Lecture Notes in Computer Science, pages 247–262. Springer Berlin / Heidelberg, 2002.

[BPD+10] Goetz Botterweck, Andreas Pleuss, Deepak Dhungana, Andreas Polzer, and Ste-fan Kowalewski. Evofm: feature-driven planning of product-line evolution. In Proceedings of the 2010 ICSE Workshop on Product Line Approaches in Software Engineering, PLEASE ’10, pages 24–31, New York, NY, USA, 2010. ACM.

[BPPK09] Goetz Botterweck, Andreas Pleuss, Andreas Polzer, and Stefan Kowalewski. To-wards feature-driven planning of product-line evolution. In Proceedings of the

175

First International Workshop on Feature-Oriented Software Development, FOSD

’09, pages 109–116, New York, NY, USA, 2009. ACM.

[BTG10] Paulo Borba, Leopoldo Teixeira, and Rohit Gheyi. A theory of software product line refinement. In Ana Cavalcanti, David Deharbe, Marie-Claude Gaudel, and Jim Woodcock, editors, Theoretical Aspects of Computing ICTAC 2010, volume 6255 of Lecture Notes in Computer Science, pages 15–43. Springer Berlin / Heidelberg, 2010.

[CAK+05] Krzysztof Czarnecki, Michal Antkiewicz, Chang Hwan Peter Kim, Sean Lau, and Krzysztof Pietroszek. Model-driven software product lines. In Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, OOPSLA ’05, pages 126–127, New York, NY, USA, 2005. ACM.

[CBS+07] Fernando Calheiros, Paulo Borba, S´ergio Soares, Vilmar Nepomuceno, and Vander Alves. Product line variability refactoring tool. Proceedings of the 1st Workshop on Refactoring Tools (WRT’07), 2007.

[CE00] Krzysztof Czarnecki and Ulrich W. Eisenecker. Generative programming. In Pro-ceedings of the Joint European Software Engineering Conference and ACM SIG-SOFT International Symposium on the Foundations of Software Engineering, pages 2–19. Addison-Wesley, 2000.

[CH06] Krzysztof Czarnecki and Simon Helsen. Feature-based survey of model transforma-tion approaches. IBM Syst. J., 45:621–645, July 2006.

[CHE05] Krzysztof Czarnecki, Simon Helsen, and Ulrich Eisenecker. Formalizing cardinality-based feature models and their specialization. Software Process: Improvement and Practice, 10(1):7–29, 2005.

[CPGS07] Walter Cazzola, Sonia Pini, Ahmed Ghoneim, and Gunter Saake. Co-evolving application code and design models by exploiting meta-data. In Proceedings of the 2007 ACM symposium on Applied computing, SAC ’07, pages 1275–1279, New York, NY, USA, 2007. ACM.

[EBLSP10] Christoph Elsner, Goetz Botterweck, Daniel Lohmann, and Wolfgang Schr¨ oder-Preikschat. Variability in time - product line variability and evolution revisited. In Proceedings of the 4th International Workshop on Variability Modelling of Software-Intensive Systems (VAMOS 2010), 2010.

[FNS09] Lidia Fuentes, Carlos Nebrera, and Pablo Sanchez. Feature-oriented model-driven software product lines - the tente approach. Proceedings of CAiSE Forum 2009, 2009.

[Fow99] Martin Fowler. Refactoring - Improving the Design of Existing Code. Addison-Wesley Longman, Amsterdam, 1999.

[GHJV95] Erich Gamma, Richard Helm, Ralph E. Johnson, and John Vlissides. Design Pat-terns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA, 1995.

[Hei09] Florian Heidenreich. Towards systematic ensuring well-formedness of software prod-uct lines. In Proceedings of the 1st Workshop on Feature-Oriented Software Devel-opment. ACM Press, oct 2009.

[HKW08] Florian Heidenreich, Jan Kopcsek, and Christian Wende. Featuremapper: mapping features to models. In Companion of the 30th international conference on Software engineering, ICSE Companion ’08, pages 943–944, New York, NY, USA, 2008.

ACM.

[HP00] Idris His and Colin Potts. Studying the evolution and enhancement of software features. IEEE International Conference on Software Maintenance, 0:143, 2000.

[HSS+10] Florian Heidenreich, Pablo S´anchez, Jo˜ao Santos, Steffen Zschaler, Mauricio Alf´erez, Jo˜ao Ara´ujo, Lidia Fuentes, Uir´a Kulesza, Ana Moreira, and Awais Rashid. Relat-ing feature models to other models of a software product line. In Shmuel Katz, Mira Mezini, and J¨org Kienzle, editors, Transactions on Aspect-Oriented Software De-velopment VII, volume 6210 of Lecture Notes in Computer Science, pages 69–114.

Springer Berlin / Heidelberg, 2010.

[KK07] Christian K¨astner and Martin Kuhlemann. Automating feature-oriented refactoring of legacy applications. In ECOOP Workshop on Refactoring Tools, 2007.

[LBL06] Jia Liu, Don Batory, and Christian Lengauer. Feature oriented refactoring of legacy applications. In Proceedings of the 28th international conference on Software engi-neering, ICSE ’06, pages 112–121, New York, NY, USA, 2006. ACM.

[Mar05] Ra´ul Marticorena. Analysis and definition of a language independent refactoring catalog. Technical report, In 17th Conference on Advanced Information Systems Engineering (CAiSE 05). Doctoral Consortium, 2005.

[MCG05] Tom Mens, Krzysztof Czarnecki, and Pieter Van Gorp. A taxonomy of model trans-formations. In Jean Bezivin and Reiko Heckel, editors, Language Engineering for Model-Driven Software Development, number 04101 in Dagstuhl Seminar Proceed-ings, Dagstuhl, Germany, 2005. Internationales Begegnungs- und Forschungszen-trum f¨ur Informatik (IBFI), Schloss Dagstuhl, Germany.

[MMBJ09] Naouel Moha, Vincent Mah´e, Olivier Barais, and Jean-Marc J´ez´equel. Generic model refactorings. In Andy Sch¨urr and Bran Selic, editors, Model Driven Engi-neering Languages and Systems, volume 5795 of Lecture Notes in Computer Science, pages 628–643. Springer Berlin / Heidelberg, 2009.

[MR06] Kannan Mohan and Balasubramaniam Ramesh. Change management patterns in software product lines. Commun. ACM, 49:68–72, December 2006.

[MT04] Tom Mens and Tom Tourw´e. A survey of software refactoring. IEEE Trans. Softw.

Eng., 30:126–139, February 2004.

[MT07] Tom Mens and Gabriele Taentzer. Model-driven software refactoring. Proceedings of the 1st Workshop on Refactoring Tools (WRT’07), 2007.

[MTM07] Tom Mens, Gabriele Taentzer, and Dirk M¨uller. Challenges in model refactoring.

Proceedings of the 1st Workshop on Refactoring Tools, 2007.

[MWD+05] Tom Mens, Michel Wermelinger, Stephane Ducasse, Serge Demeyer, Robert Hirschfeld, and Mehdi Jazayeri. Challenges in software evolution. International Workshop on Principles of Software Evolution, 0:13–22, 2005.

[PBvdL05] Klaus Pohl, G¨unter B¨ockle, and Frank J. van der Linden. Software Product Line Engineering - Foundations, Principles and Techniques. Springer Berlin Heidelberg, 2005.

[PCS03] Ivan Porres, Turku Centre, and Computer Science. Model refactorings as rule-based update transformations. In UML 2003 - The Unified Modeling Language. Modeling Languages and Applications. Springer, 2003.

[Rei10] Jan Reimann. Generisches Modellrefactoring f¨ur EMFText. Diplomarbeit, Tech-nische Universit¨at Dresden, 2010.

[RSA10] Jan Reimann, Mirko Seifert, and Uwe Aßmann. Role-based generic model refac-toring. In Dorina Petriu, Nicolas Rouquette, and Øystein Haugen, editors, Model Driven Engineering Languages and Systems, volume 6395 of Lecture Notes in Com-puter Science, pages 78–92. Springer Berlin / Heidelberg, 2010.

[RWL96] Trygve Reenskaug, Per Wold, and Odd Arild Lehne. Working With Objects: the OOram Software Engineering Method. Manning, Greenwich, 1996.

[SB99] Mikael Svahnberg and Jan Bosch. Evolution in software product lines. Journal of Software Maintenance: Research and Practice, 1999.

[SBPM08] David Steinberg, Frank Budinsky, Marcelo Paternostro, and Ed Merks. EMF:

Eclipse Modeling Framework. Addison-Wesley Longman, 2008.

[TBK09] Thomas Th¨um, Don Batory, and Christian K¨astner. Reasoning about edits to feature models. In Proceedings of the 31st International Conference on Software Engineering, ICSE ’09, pages 254–264, Washington, DC, USA, 2009. IEEE Com-puter Society.

[Var06] D´aniel Varr´o. Model transformation by example. In Oscar Nierstrasz, Jon Whittle, David Harel, and Gianna Reggio, editors, Model Driven Engineering Languages and Systems, volume 4199 of Lecture Notes in Computer Science, pages 410–424.

Springer Berlin / Heidelberg, 2006.

[VSB+06] Markus V¨olter, Thomas Stahl, Jorn Bettin, Arno Haase, and Simon Helsen. Model-Driven Software Development - Technology, Engineering, Management. John Wiley and Sons, 2006.

[ZLG05] Jing Zhang, Yuehua Lin, and Jeff Gray. Generic and domain-specific model refac-toring using a model transformation engine. In Model-driven Software Development.

Springer, 2005.

I confirm that I independently prepared the thesis and that I used only the references and aux-iliary means indicated in the thesis.

Dresden, August 31, 2011