IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Projektklynge: Model Driven Development 
Kursusnavn (engelsk):Project cluster: Model Driven Development 
Semester:Efterår 2012 
Udbydes under:cand.it., softwareudvikling og -teknologi (sdt) 
Omfang i ECTS:0,00 
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
Denne projektklynge svarer til et obligatorisk kursus på masteruddannelsen i Softwarekonstruktion. 
Læringsmål:After this project cluster 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.
  • Carry over a limited research project in a medium-sized team, contributing to the area of (automated) software engineering.
  • Concisely report results of your project in a written work conforming to the writing standards of the relevant research community, 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 project cluster 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, which is a popular platform in the Danish IT industry.

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: defining a research project, matching arguments to objectives, structure and content of a research paper in software engineering, reading and describing related work, threats to validity, text editing.
Two kinds of projects will be offered:

  • case studies in re-engineering existing code
  • development of technology or evaluation of technology
 
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.

This is a project cluster. There will be classes running throughout the semester to help you with your project. There is less classes though than in a regular course, and there is no homework assignments. Most of the learning happens in exercises and in a project which is implemented in a 4-person team. Normally each team implements a different project, with slightly different goals. In the project you explore a particular software project introducing model-driven development principles into it. Alternatively you explore a sub-field of model driven development as a research area, delimit a research problem, solve it, and document it in a short and formal research paper.

The project part of the course accounts for about 60%-70% 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 research paper in the end.

Since the precise choice of technologies to use varies between the project groups, you are expected to work on your own computer (it is possible to work with the software available on ITU machines, but with limitations - for example you have to stick to Eclipse).
To achieve the goal you will need to study a significant amount of related literature (papers, books), learn new technologies you have never heard about, meet up regularly for supervision meetings, and co-author a research quality paper in the end.

Since the precise choice of technologies to use varies between the project groups, you are expected to work on your own computer (it is possible to work with the software available on ITU machines, but with limitations - for example you have to stick to Eclipse).
----------
See the course schedule here:
link to the time table
The schedule will be ready shortly before the beginning of the term.
-----
Project cluster.
This is a the project cluster: You sign up for this project cluster as if for a normal course. You will also need to enter your project agreement of a 7,5 ECTS project in the project base where it will be assessed by the supervisor and the Board of Studies.
The project cluster will not appear on your diploma but the project that you register in the project base will of course appear once you have passed the exam. 

Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam), 7-trins-skala, Ekstern censur

Each research team in the cluster 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.

The handed in papers will be evaluated taking into account: clarity of the problem definition, problem significance, significance of the contribution of the work, quality of the evaluation (argument for validity of the work), study of existing literature, potential impact, and adherence to formatting guidelines.  

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:
  • 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) http://www.slbooks.dk/shop/books/book.do?action=find&id=2895078

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 3A12/14
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
2012-12-17 Tidspunkt oplyses senere Skriftlige arbejder ITU Lokale oplyses senere
2013-01-07 Tidspunkt oplyses senere Mundtlig eksamen ITU Lokale oplyses senere
2013-01-08 Tidspunkt oplyses senere Mundtlig eksamen ITU Lokale oplyses senere
2013-01-09 Tidspunkt oplyses senere Mundtlig eksamen ITU Lokale oplyses senere
2013-01-10 Tidspunkt oplyses senere Mundtlig eksamen ITU Lokale oplyses senere
2013-01-11 Tidspunkt oplyses senere Mundtlig eksamen ITU Lokale oplyses senere