Generation of programming environments - Open to students
Supervisor: Artur Boronat (ab373)
Prerequisites
Good background in Java and UML (class diagrams and object diagrams).
Aims of Project
Model-Driven Development (MDD) is a new paradigm to develop software in a semi-automatic way. In a MDD approach, Code is represented by means of models (usually UML diagrams) from which many different tasks can be automated: reverse engineering, refactoring, automatic code generation or generation of other software artifacts (other models). This paradigm has received the attention of the big software companies, such as IBM (Eclipse Modeling Project) or Microsoft (DSL Tools), in the last years.
The goal of this project consists in generating a model-based programming environment for a programming language. This involves:
- Automatic generation of parsers and programming environments for theEclipse platformby usingopenArchitectureWare
- Automatic generation of code by usingJET, or similar technology.
Other features that student may add. - The programming language of interest is chosen by the student.
Challenges presented by the project
This project offers many challenges that will lead the student to the last trends in industrial software development. Some of them are listed as follows:
- Understanding MDD and how it increases the productivity in the software development.
- Use of the experimental openArchitectureWare framework.
- Understanding of the Eclipse platform.
Learning Outcomes
- Learn about MDD, metamodeling, automated generation of parsers and compilers.
- Use of UML class diagrams for metamodeling.
- Gain experience in languages and tools currently used in MDD.
- Get an insight into scientific and industry-oriented research.
- Get experience with the development of plugins for the Eclipse platform.
Nature of End-Product
Eclipse-based programming environment for a given language.
Project Timetable
Semester One
Study and experimentation with: Eclipse Modeling Framework, openArchitectureWare (language xText) and JET. First prototype.
Semester Two
Complete prototype, examples and report.