Use the Tab and Up, Down arrow keys to select menu items.
The purpose of this course is to introduce students to model-driven software engineering practices where models (e.g., software component or activity diagrams, state or flow charts,...) are not used as documentation and reasoning artefacts solely, but are first class products from which other modelling, simulation artefacts or executable source code can be produced. Students will first learn about appropriate methodologies and suitable tooling support for model-driven software engineering. Then, they will develop team work skills as software language engineers where they will create their own software language and implement a dedicated development environment. Last, they will conduct a scientifically-grounded empirical evaluation of a domain specific language framework developed by their peers. The course will use a mix of theoretical lectures (e.g., language engineering, model notations, knowledge management, ontologies) and practical labs (using e.g., Arduinos, testing frameworks) to put in practice both software language engineering and model-driven engineering techniques. The assignments will be executed in pairs and presented to the whole class. The final examination will be an open book exam.
The lecture of this course provides the fundamental knowledge of model-driven methodologies to enable the students to build their own domain-specific languages, including editors and code generation capabilities. It includes, among others, standard modeling specification (Ecore, MetaObject Facility (MOF), Unified Modeling Language (UML)), the Model to Model (QVT) specification, and the Model to Text (MofM2T) specification. This knowledge is used in the lab, where an Arduino domain-specific language is built using the Eclipse Modeling Framework (EMF). The developed meta-model is used to create a graphical editor using Eclipse Sirius and a text editor using XText (for both parts, 15-minute tutorials are available (Sirius, XText)). Now it is possible to create a model of the structure and behaviour of an Arduino example setup. Based on this model, an executable application using a self-defined generator using Acceleo is generated.
Knowledge about model-driven software engineering standard and specifications (MDA, MOF, Ecore, UML, Model to Model and Model to Text transformation (QVT, MofM2T, Xtext))Build self-defined domain specific languagesBuild graphical and textual domain specific editorsGenerate text (source code) based on domain specific modelsTransform models of a defined language into other models in another languageUse this knowledge in practical applications
COSC261 and SENG301
Students must attend one activity from each section.
Fabian Gilson
Ralph Maschotta
Domestic fee $1,079.00
International fee $5,125.00
* All fees are inclusive of NZ GST or any equivalent overseas tax, and do not include any programme level discount or additional course-related expenses.
For further information see Computer Science and Software Engineering .