Use the Tab and Up, Down arrow keys to select menu items.
This course introduces model-driven software engineering, including related processes, practices and tools, domain-specific languages, automatic code generation and model analysis techniques.
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 or simulation artefacts can be created or executable source code can be generated. 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 language and implement a dedicated development environment. Last, they will conduct a scientifically grounded comparative study of their domain specific language framework regarding existing modelling techniques.
In this course, students will:Understand the differences between languages’ abstract syntax, concrete syntax and semantics. Students will be able to define a language metamodel, express its textual grammar and apply model transformations to a concrete semantics. Apply analysis skills to comprehend a particular domain and translate its core concepts using an appropriate meta-modelling language.Propose a concrete syntax for this domain-specific language in order to ease the work of domain experts, i.e., the potential or actual stakeholders of the language to be developed, by providing only the necessary constructs they can manipulate.Implement the concrete syntax in a tool set with proper development support to domain experts with, among others, concrete syntax checking, model visualisation, and exportation facilities.Analyse available semantics-mapping solutions (e.g., model transformation languages) and apply the most suitable strategy to write mapping rules and/or necessary model transformations from the domain specific infrastructure to a concrete runnable environment.Understand and apply advanced model-driven software engineering techniques, i.e., model/code refactoring, model analysis techniques and model-based testing.Conduct an evaluation in the form of a comparative case study of the tool set on a mid-scale realistic sample to assess its benefits in terms of, among others, usability, development time gain, reusability and maintainability of models.Write, compile and present their domain specific solution and its evaluation into a technical report, supported by an oral synthesis to demonstrate effective communication skills both in report writing and presentation.
(1) COSC261 and SENG301 and (2) Subject to approval by Head of Department
Students must attend one activity from each section.
Domain-Specific Languages, Martin Fowler, Addison-Wesley, ISBN 978-0321712943Implementing Domain-Specific Languages with Xtext and Xtend, Lorenzo Bettini, Packt Publishing Ltd, 978-1782160304 DSL Engineering: Designing, Implementing and Using Domain-Specific Languages, M Voelter, 978-1481218580 (available freely on http://voelter.de/books/).
Domestic fee $1,002.00
International fee $4,575.00
* Fees include New Zealand GST and do not include any programme level discount or additional course related expenses.
For further information see
Computer Science and Software Engineering.