Service-Oriented Software Engineering with MDE

Syventävät opinnot
Service-oriented software engineering (SOSE) is a software engineering approach which utilises constructs and concepts conforming with the service-oriented computing paradigm for designing, modelling and developing service based systems. The course introduces principles behind service-oriented software engineering, and approaches and methods for efficient service production in service ecosystems. The emphasis of the course is on service design, composition and modelling principles instead of specific implementation technologies.
Vuosi Lukukausi Päivämäärä Periodi Kieli Vastuuhenkilö
2016 kevät 19.01-04.03. 3-3 Englanti Lea Kutvonen


Aika Huone Luennoija Päivämäärä
Pe 10-12 C222 Lea Kutvonen 22.01.2016-05.02.2016
Pe 10-12 C222 Lea Kutvonen 26.02.2016-26.02.2016


Group: 1
Aika Huone Ohjaaja Päivämäärä Huomioitavaa
Pe 12-14 C222 Lea Kutvonen 29.01.2016—05.02.2016
Pe 12-14 C222 Lea Kutvonen 26.02.2016—26.02.2016

Information for international students

Course schedule

See course schedule here. Enter moodle here and check in with your normal account details. On the orientation materials below you find necessary course keys.

NEWS on ...

NEWS on 1.2. 2016

We now have a moodle course area. You can register to the course with details on the orientation material. The moodle area will be the regular task submission channel and has discussion forums as well.

You can already go to the Orientation module and fill in the pre-course questionnaire (not in moodle). 

NEWS on 31.1. 2016

Some of the materials have now been uploaded to be reachable through this web page. Especially the course rough content and introductory lecture slides are available. Module descriptions have suffered from busy schedule and home net connectivity problems, but will change substantially before Tue 2.2. lecture.

Orientation and opening materials available here. 


NEWS in mid-Jan 2016

This course have traditionally been offered every other year; now it seems that there would be more students interested on the leap year than on the period we have scheduled. That is something to be reacted to.

This time the course working method will be radically changed, and for preparations, we postpone the start of this course by a couple of weeks. That is, there is no lectures in January, but we open in 2.2. 2016.

In its new form, the course is going to be more self-study oriented, so it can be taken any time. On the biannual basis there will be more support in terms of study / reading groups and discussion sessions. The form will also better support those who wish to take the course remotely or through JOO-programme. Furthermore, by modularisation, the course can have a variety of alternative elements as the background knowledge of students coming to the course have been heterogeneous. After the renewal, each student can pick either a version from basic knowlege to intermediate level, or from intermediate to advanced, for example. 

After the course, more practical, hands on modeling can be done in CINCO Lab either with industry tools or research level tools. In the Lab, it is also possible to design an own langage and create a new MDE tool. 






The course key concept is model. A substance level model can be, for example,  a service model, collaboration choreography model, interoperability model, system model, or ecosystem model. None of the models remains an illustration or vague idea of the service or the system in question. Instead, the methods, tools and languages used in creating them provide such a rigorous semantics that a level of production, operation and management automation can be reached, even in heterogeneous systems across organisational boundaries. Further, meta-models declare how substance level models must be structured, behave, and what kind of properties they have.  

This course focuses on the role of models in service engineering processes, that is, how service implementation involves model creation and software generation, as well as publishing the created models to the service ecosystem in which the services are to be used.  The use of the created models in the inter-enterprise service compositions or collaborations is in more depth discussed at the Service ecosystems course.

This course focuses especially to innovation,  design and implementation time processes. The underlying  process may be waterfallish or agile or something else, that is not an essential concern here. Instead, we look at the tool chain involved, and focus on how hidden meta-models within each tool supports the consistency of the overall process, thus improving the quality of the resulting service software. We can observe in passing the option of using models as an aid in organising module, integration and acceptance testing. We can observe also in passing the option of using models as "type safety criteria" in communication. 

One fo the key focal points is in understanding how a variety of meta-models is used within the tools and tool chains so they effectively create facilities for interoperability and composability of services, personalisation and controllability properties on the compositions, and maintainability of the services dispite of heterogeneous environment populated by autonomous parties. This understanding involves skills of creating a model with a MDE modeling tool, insight to the domain specific language that tool supports, and the capability of MDE modeling tools to transform models to different representational formats based on joint meta-models. 

A basic  capability of MDE tool chain is to generate program code from platform and computation style independent models, and reverse that even after modifications. This supports maintainability of services. 


Kurssin suorittaminen


The main learning objectives will not change much. If you have taken an older version of the course, you may ammend it with the advanced elements, but you cannot include the overlapping parts into your degree. This does not stop you from participating course activities all through, for working group dynamics. In the course format, there are some major changes though: 

  • there is no compulsory individual modeling and metamodel management exercise involved, but that can be taken in the CINCO Lab or as an advanced module as a maturity test on research phase tools;
  • the course outline flows in a different order: we open with the ideas of models, build toward tools, and work then to two directions: a) how tools can be applied and benefited from, and b) how tools get built and how tools connect to platforms and ecosystem structures;
  • the tools and models are reflected back to engineering processes towards the end of course in order to find out how their use change the processes and what benefits or risks they bring in; the literature on this area  often focuses service-orientation as the externally visible element and hide the model driven nature within.

The course is started with a pre-course questionnaire to find out which modules you should take. You fill in a "form" with questions on your opinions, working style preferences, and some subject matters to measure your starting knowledge on which to build. This is going to produce some of the course points and recommendation of the modules to work on.

The course framework provides on order in which to proceed through the modules, like working through a textbook with chapters of text and exercises. Instead of (old) textbooks, we use a set of academic research papers that represent original results on the area. The selection of reading material is based on the gate concepts they include, the visibility of motivation in the text (newer papers may already skip that part and go directly for details), availability of usage examples, and coherence with the common terminology with the other papers in the pack. For each module there are guiding discussion / learning diary questions that paint essential path to be followed through the pack of papers suggested. The questions can also be used as an agenda for study groups. Each module is opened either with (a) lecture(s) on key issues, suitable video, or a piece of text written for this purpose. The outcome of a module can be a learning diary, discussion event, or a report composed jointly by the study group members. The outcome is measured in course points effecting the overall grade; each module has a predefined size in credit units.

As the last module, there is a home exam in which each student must work on their own. The module includes self-reflection on working methods and learning results, reflecting on the materials and goals, and a analythical or evaluative concluding task that pulls together the elements of earlier modules.


Kirjallisuus ja materiaali

The location of the modules will be published here in the end of January.