IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Model Driven Development Project 
Kursusnavn (engelsk):Model Driven Development Project 
Semester:Forår 2014 
Udbydes under:cand.it., softwareudvikling og -teknologi (sdt) 
Omfang i ECTS:7,50 
Kursussprog:Engelsk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:
Forventet antal deltagere:55 
Maks. antal deltagere:100 
Formelle forudsætninger:This course assumes that you are a confident software developer, knowledgeable in programming language paradigms and concepts, and that you are able to work with (moderately) complex development projects yourself. These abilities can normally be obtained by following a bachelor programme in software development. Concretely:

  • You efficiently use object oriented programming constructs and concepts such as classes, encapsulation, inheritance, polymorphism, interfaces, exceptions
  • You can independently use existing libraries and code implemented by others, following available documentation.
  • You know basic UML class diagrams notation, the relational data model and the SQL language
  • You know and can use basic constructs of declarative functional programming, in particular anonymous functions and higher order functions.
  • You can manipulate standard data structures such as lists, trees and graphs. You have basic working knowledge of complexity and algorithms, including dynamic programming.
  • You know basic programming language concepts, and implementation techniques (grammars, abstract and concrete syntax, parsing, interpretation and compilation). This can be gained following a compiler course, for instance "Programming Language Concepts and Implementation"
  • You are comfortable using Eclipse as your development environment (or a similarly mature tool, for instance IntelliJ)
  • You can read professional computing literature; you have read research papers and books about programming before (this can be gained in almost every SDT course; or by trying to read a few papers before the course commences).
  • You know the basic of software engineering processes and quality assurance, for instance having followed an introductory software engineering course (this can be gained following the course "Software Engineering and Quality Assurance")
Moreover the student must always meet the admission requirements of the IT University.
-----
Information about study structure
SDT
This course is mandatory for students admitted on the Software Engineering track on SDT. It is recommended that you take this course as early as possible, before the Advanced Software Engineering course.

This course serves as a thesis preparation activity for SDT students. Students following the Development Technology track are also welcome to join it, but preferably in the third semester of your studies (just before thesis).
-----
Information om studiestruktur
Dette er et obligatorisk kursus på masteruddannelsen i Softwarekonstruktion. 
Læringsmål:After this course you should be able to:
  • Use modelling as a tool to comprehend legacy code

  • Use test-driven approach to work with legacy code
  • Re-engineer legacy code to model driven architectures, including product line architectures
  • Describe the main techniques used for domain modelling and implementation (domain specific languages, modelling frameworks, transformation languages, code generators, concrete syntax and models)
  • Implement simple applications using Eclipse technologies: use eclipse as a development platform, extend it and customize it with your own editors (it is possible to substitute Eclipse with other platforms that are suitable for your individual project objectives)
  • Use complex industrial strength frameworks (by having experienced work with, for example, OSGi, EMF, GMF, XText, Xpand and other components of the Eclipse platform)
  • Find, select, and read research papers in the area.
  • Discuss, criticize and assess technologies in this space, including placing them in established classifications, and contrasting them to other significant competitors.
  • Concisely report results of your project in a written work, including proper problem formulation, problem motivation, discussion of state of the art, description of the solution, its limitations and a cogent argument for quality and validity of the solution.
The objective to make you write a good research report is essential for this project. This is the main peparatory activity before approaching your final thesis. 
Fagligt indhold:The goal of this course is to give you a mindset of working with software in an abstract and semi automated fashion, as in a production process (as opposed to a hand crafting process). This is achieved by introducing modeling languages and models as first class artifacts that are designed, manipulated, transformed and translated to code in an automatic fashion.

A secondary goal is to expose students to modern modeling technology. We will name and allow exploring a number of technologies in this space. Among others you it will be possible to explore the Eclipse modeling project as a means of giving them easier entry into the Eclipse technical space.

Subjects will include
  • Meta-modelling and design of domain specific languages
  • Concrete Syntax, and concrete syntax editors
  • Architecture modelling, product line architectures, variability modeling
  • Object Constraint Language
  • Model based test generation
  • Model Transformation and code generation (using examples of Xtend, Xpand and ATL)
  • Implementation of domain specific languages using generic tools; Automatic model transformation
  • Project supervision: most groups will be encouraged to follow a standard, predefined project.
 
Læringsaktiviteter:14 ugers undervisning bestående af forelæsninger og øvelser

16 weeks semester containing approximately 25 hours of lectures, 18 hours of tutorials and a project with supervision.

There will be classes running throughout the semester to help you with your project. There is less classes though than in a regular course. Most of the learning happens in exercises and in a project which is implemented in a 4-person team.

The project part of the course accounts for about 60% of the workload.

To achieve the goal you will need to learn new technologies you have never heard about, meet up for supervision meetings, study related literature (papers, books), and co-author a project report.

Since the precise choice of technologies to use varies between the project groups, you are expected to work on your own computer.

----------
See the course schedule here:
link to the time table
The schedule will be ready shortly before the beginning of the term.
----- 

Obligatoriske aktivititer:There are 6 simple mandatory assignments graded PASS/FAIL. Every student must pass five of these asignments and hand in a project report in order to qualify for the exam. 
Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam), 7-trins-skala, Ekstern prøve

Each research team on the course will have to deliver a report paper strictly adhering to requirements detailed on the course website. Paper must be maximum 15 pages in length, conforming to the Springer LNCS formatting guidelines (http://www.springer.com/computer/lncs?SGWID=0-164-6-793341-0). No changes of font, margins, or other formatting aspects are permitted.  

Litteratur udover forskningsartikler:Lecture notes, online material, and books depending on the needs of the project (no standard text book). Examples of books that are relevant:

  • Lorenzo Bettini. Implementing Domain-Specific Languages with Xtext and Xtend. 2013
  • Martin Fowler. Rebecca Parsons. Domain-Specific Languages. Addison-Wesley 2011.
  • T. Stahl, M. Völter: Model-Driven Software Development: Technology, Engineering, Management. Wiley (2006)
  • Richard C. Gronbach: Eclipse Modeling Project. A Domain-Specific Language (DSL) Toolkit. Addison Wesley (2009)

None of these books is our main textbook, so you should not automatically buy them. 
 
Afholdelse (tid og sted)
Kurset afholdes på følgende tid og sted:
UgedagTidspunktForelæsning/ØvelserStedLokale
Onsdag 14.00-15.50 Øvelser ITU Aud 2
Onsdag 16.00-17.50 Forelæsning ITU Aud 2
Onsdag 18.00-19.50 Øvelser ITU Aud 2

Eksamen afholdes på følgende tid og sted:
EksamensdatoTidspunktEksamenstypeStedLokale
2014-05-14 14:00 Skriftlige arbejder ITU To be uploaded in learnIT
2014-06-17 08:00-18:00 Mundtlig eksamen ITU 4A54
2014-06-18 08:00-18:00 Mundtlig eksamen ITU 4A54
2014-06-19 08:00-18:00 Mundtlig eksamen ITU 4A54
2014-06-20 08:00-18:00 Mundtlig eksamen ITU 4A54
2014-08-18 13:00-18:00 - reeksamen Mundtlig eksamen ITU 2A18