Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Refactorings for Xpand / Xtend / Check"

(Poll)
(Progress)
Line 24: Line 24:
 
== Progress ==
 
== Progress ==
  
The poll's results and the implementation progress will be published here at a later time.
+
The poll's results can be found here:
 +
 
 +
[http://www.micropoll.com/akira/mpresult/430960-91944 result]
 
<div style="clear: right; border: solid #aaa 1px; margin: 0 0 1em 1em; font-size: 90%; background: #f9f9f9; width: 250px; padding: 4px; text-align: left; float: right;">
 
<div style="clear: right; border: solid #aaa 1px; margin: 0 0 1em 1em; font-size: 90%; background: #f9f9f9; width: 250px; padding: 4px; text-align: left; float: right;">
 
'''Legend'''
 
'''Legend'''

Revision as of 05:42, 11 June 2008

This project is part of the Google Summer of Code 2008

Mentor: Peter Friese

Student: Steven Reinisch

Abstract

Model Driven Software Development (MDSD) describes an approach to Software Engineering that comprises the separated specification of a system's (abstract) functionality and its (concrete) technical implementation. The description of a system's (abstract) functionality is done by specifying formal models (e.g. UML (Unified Modeling Language) models), of which running code, the (concrete) technical implementation, is generated. The code generation is a multistep process. After specifying the formal functional models based on one or more metamodels they are in turn transformed into other models. At each transformation step a model is checked against the metamodel(s) to detect modelling errors. At a final step software artefacts, e.g. classes or configuration files, are generated. Xpand, Xtend and Check are languages that comprise the generator framework openArchitectureWare (oAW). These three languages are used to build custom code generators. Xtend is used for model transformations, Check for model validations and Xpand for controlling text generation. Besides these languages oAW offers tools, that extend the Eclipse IDE, to simplify the development of a code generator. Since a code generator is a software product itself, it is subject to decreasing code quality as its code base grows. The code quality maintenance can be achieved by applying refactorings to it. A refactoring is used to change the code's structure or the naming of artefacts to improve its readability and thus its maintainability without changing its functional behaviour. Refactorings can be very labour-intensive. The amount of time spent for refactorings can be reduced to a minimum by automating it. The goal of this project is to create a refactoring support for the oAW's Eclipse tools to achieve a higher maintainability of code generators comprised of Xpand, Xtend and Check files. One challenge is the fact, that extensions comprising XTend files can be used within XPand and Check files. Thus a local change to an extension is not only limited to the extension space. Another challenge is that the basis for a generator are one or more metamodels. Changes to them have an effect on all XTend, XPand and Check files. To reduce the implementation effort, the existing Eclipse refactoring and JDT (Java Development Tools) infrastructure will be used. Special attention will be paid to the LTK (Refactoring Language Toolkit), which offers an API for refactorings.

Poll

The poll has been closed. Thanks for participating!

Progress

The poll's results can be found here:

result

Legend

Progress.gif Work in progress

Ok green.gif Feature added

Back to the top