Program

The EMOOSE program provides students with a solid background in object-oriented technologies, addressing fundamental theoretical concepts and their practical application.

Students who graduate from this master will have a solid knowledge of object-oriented modeling methods, programming languages and integrated development environments and emerging software development areas. Proficiency in emerging software development areas/technologies combined with a strong knowledge in fundamental concepts of object oriented programming will prepare them to conceive, design, develop and evaluate applications in different areas using well-proven and mature concepts.

The program will prepare students to work in international settings by interacting with foreign peers, professors and researchers and allow them to go abroad and experience other cultural and working practices.

EMOOSE 2008-2009 - Curriculum Overview

The following table provides an overview of the EMOOSE curriculum.

Course

Theory (hours)

Practice (hours)

ECTS
Credits

Capita Selecta from Computer Science - CAPITA

30

30

5

Advanced Software Engineering Techniques - ASET

30

30

5

Advanced Object-Oriented Software Architecture - AOSA

30

30

5

Distributed Object-Oriented Systems - DOOS

30

30

5

Object Oriented Programming Languages and their Implementation - OOPL

30

15

4

Aspect-Oriented Software Development - AOSD

30

15

4

Fundamentals of the Object-Oriented Technology - FOOT

30

15

4

Specialisation Training - SPEC TRAIN

-

150

6

Thesis - THESIS

6 months

-

22

  1. Course units descriptions

Capita Selecta - CAPITA

Duration: 

60 hours

Content: 

This course is centered around lectures and conferences presenting the state of the art in advanced topics of object-oriented and aspect-oriented technology as well as software engineering in general. It also includes seminars on advanced research topics in this scope as well as on applications of these technologies in: multimedia, information systems, graphical interactive systems, operating and network systems and telecommunication systems. Each student has to produce a state-of-the-art survey on a subject proposed by a member of the EMOOSE network. The advisor of this so-called “capita selecta” will be the member who proposed the chosen subject.


Advanced Software Engineering Techniques - ASET

Duration:

60 hours

Content: 

Although object-oriented programming languages (OOPL) provide us with the correct programming language mechanisms that allows the reuse of code, reuse is not an automatic consequence of using OOPL. This course addresses emerging and advanced software engineering techniques that go beyond OOPL to address the problem of reusability. These are techniques like meta-modeling, reverse engineering, aspect orientation, generative programming, quality of product versus quality of process, quality management systems, resource estimation models, configuration management techniques and tools, software review techniques and tools, software testing techniques and tools, defect tracking systems, software metrics, software engineering standards, software certification, software process improvement frameworks and project management. The student must be acquainted with the terminology and must be able to select and apply the techniques to a real-world situation.

Advanced Object-Oriented Software Architecture - AOSA

Duration: 

60 hours

Content: 

In the last few years, several techniques have been developed for building architectures and expressing them focusing on separation of concerns. There is, for example, a growing acceptance of component-based and aspect-oriented systems. Component-based and aspect-oriented technologies will play an increasingly significant role in the design and implementation of large-scale software systems during the next few years. This course presents advanced techniques for the design and implementation of large-scale software architectures. Techniques such as components, aspects, agents, services, etc. are artefacts of some of the advanced techniques that can be used to build architectures at various levels of detail. Furthermore, development methodologies that focus on the building of large-scale architectures (such as model-driven development) through architectural description languages are the focus of this course.

Distributed Object-Oriented Systems - DOOS

Duration: 

60 hours

Content: 

Networked and distributed computing is playing an increasing role in today's information technologies. This course bridges the gap between the design of a software architecture and its implementation in today's standard "internet" distributed and concurrent setting using standard lightweight frameworks (such as Java RMI, SOAP,etc) or heavyweight infrastructures such as industrial component infrastructures (J2EE, web services, etc.) or aspect-oriented middleware. Furthermore, the problems related to the composition of technical and business concerns are studied in the implementation of the model-driven development approaches.

Object-Oriented Programming Languages and their Implementation - OOPL

Duration: 

45 hours

Content: 

Study of semantic models of different object-oriented subparadigms. This includes aspect-oriented, prototype-based and actor-based extensions to object-oriented languages as well as other (experimental) language features and their impact on virtual machine implementations, method lookup strategies, memory management systems, method re-entrance, object delegation and inheritance, etc.

Aspect-Oriented Software Development - AOSD

Duration: 

45 hours

Content: 

This course introduces the idea of "separation of concerns" and shows how (new) aspect-oriented approaches complement recent developments in the object-oriented paradigm. This includes the study of the techniques on aspect-oriented requirements engineering, aspect-oriented analysis and design, aspect-oriented programming, formal foundation for aspect-oriented software develoment, aspect-oriented applications and software composition. The goal of the course is to make the students acquainted with the bulk of terminology and essential concepts in this emerging field as well as the application of AOSD in practice.

Fundamentals of the Object-Oriented Technology - FOOT

Duration: 

45 hours

Content: 

This course discusses fundamental properties of the object-oriented technology both at the theoretical and the practical level, addressing questions such as the following ones: What are the basic principles of the OO paradigm? Why is it interesting in practice? What are its impact on our way to develop software? What are its relationship with other programming paradigms? How can we formalize and reason about OO models and programs? What are its limitations and how can it be extended and/or merged with other paradigms? Another objective of this course is to explore the wide design space of object-oriented programming languages. For instance, the prototype-based and actor-based paradigms are two major alternatives to the 'traditional' class-based view on object orientation.


Specialization training - SPEC TRAIN

Duration: 

150 hours

Content: 

This course aims at training the students with the development of a software application in a specific domain and following a methodology. The student will have to write a detailed report of the work and to give an oral presentation. Each student has to perform development work in a group of two students on a subject proposed by a member of the EMOOSE network. The advisor of the specialization training will be the member who proposed the chosen subject.

Thesis - THESIS

Duration:

6 months

Content:

Based on a master's thesis proposal of an EMOOSE network partner, students conduct research at the partner's site to complete a master's dissertation supporting their thesis.

 

Teachers

The teachers are members of the SENSO network or of the AOSD-Europe network (http://www.aosd-europe.net/). This includes the following institutions: Universidad del Comahue (Argentina), Universidad Nacional de La Plata (Argentina), Monash University (Australia), Katholieke Universiteit Leuven (Belgium), Vrije Universiteit Brusse (Belgium), Pontificia Universidade Catolica do Parana (Brazil), Universidade Federal do Rio de Janeiro (Brazil), Universidad de Chile (Chile), Universidad de Los Andes (Colombia), Ecole des Mines de Nantes (France), INRIA (France), Technische Universität Darmstadt (Germany), Trinitity College Dublin (Ireland), Technion – Israel Institute of Technology (Israel), Universidad de Malaga (Spain), Universidade Nova de Lisboa (Portugal), Universiteit Twente (The Netherlands), The University of Lancaster (United Kingdom).

Schedule

The first part of the programme will take place from October 2008 to February 2009 at the Ecole des Mines, in Nantes. The first semester will start on October 2. The thesis project will be conducted at one of the above-mentioned institutions, with the defense taking place during the last week of August 2009 in Nantes.