UE Architecture : components and services

User information

Please note that you are curently looking at the ongoing Academic Programs. Applications are now closed for this academic year (2020-2021) for licences, professional licences, masters, DUT and regulated health training. If you are interested for an application in 2021-2022, please click on this link for the appropriate Academic Programs.

Degrees incorporating this pedagocial element :


The software crisis is due to the growing complexity of the software. Indeed, the software applications must follow the user needs and are thus constantly modified. Software developer groups should develop and change software to follow the changes at an increasing pace. In recent years, the software engineering area has provided new programming paradigm and tools to struggle against the software crisis: component-based and service-oriented programming. These approaches mainly propose to decouple the software elements, to reduce the number of elements to manipulated by a developer and to separate the various functional and non-functional concerns of the application. The course objective is to present the new software engineering approaches used by those paradigms, with both theorical and practical concerns.The outline is : - introducing software architecture: viewpoints, patterns and quality attributes - key features of software components and service-oriented architecture - formal notions of component composition, equivalence and refinement - components as labelled transitions systems: simulation, bisimulation, concurrent composition, the BIP component model - basic notions of model checking: Hennessy-Milner logic, elementary model checking - compositional verification: basic strategies and limitations - practical training with OSGi and iPOJO : design, implementation and deployment of a basic component-based application.

Recommended prerequisite

- principles and practice of object-oriented programming - elementary set theory, mathematical induction and predicate logic - basic notions of theory of computation: finite automata, regular languages, partial orders and fixpoints

Targeted skills

- understand basic notions of sotfware architecture, key features of software components and software component models, key principles of service oriented architecture - understand key notions of component composition, component equivalence and refinement - understand basic principles and limits of model checking and compositional verification - working knowledge of component-based and service-oriented technologies