SENG441-19S1 (C) Semester One 2019

Special Topic: Model-Driven Software Engineering

15 points
18 Feb 2019 - 23 Jun 2019

Description

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.

Learning Outcomes

  • 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.

Pre-requisites

(1) COSC261 and SENG301 and (2) Subject to approval by Head of Department

Timetable 2019

Students must attend one activity from each section.

Lecture A
Activity Day Time Location Weeks
01 Tuesday 09:00 - 11:00 Jack Erskine 239 18 Feb - 7 Apr
29 Apr - 2 Jun
Computer Lab A
Activity Day Time Location Weeks
01 Thursday 11:00 - 13:00 Jack Erskine 134 Lab 3 18 Feb - 7 Apr
29 Apr - 2 Jun

Course Coordinator

Fabian Gilson

Textbooks / Resources

Domain-Specific Languages, Martin Fowler, Addison-Wesley, ISBN 978-0321712943

Implementing 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/).

Indicative Fees

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.

All SENG441 Occurrences

  • SENG441-19S1 (C) Semester One 2019