Unité pédagogique

Ingénierie logicielle

Derniere édition le: 22/02/2024

Modifier

Responsable:

CHARPENAY Victor

Description générale :

This course is given in English as it corresponds to a Teaching Unit of the International MSc on Cyber Physical and Social Systems (CPS2): CPS2 engineering and development

Today's IT applications are increasingly complex. Resulting from the integration of multiple functionalities or pre-existing or non-existing services, they run in complex, distributed environments (e.g. Internet of Things, Cloud, Web). In addition to developing techniques for analyzing and processing the masses of data these applications have to cope with, the engineering of such applications is a major challenge if they are to be based on efficient, flexible and scalable architectures, so that they can integrate new data sources and new processes at the lowest possible cost.

The engineering of such systems is a major issue combining modeling, architecture definition, agility and reactivity. It is based on increasingly rich technical foundations, covering the whole cycle of development and production. It is of first importance to understand the challenges and problems of developing such systems, to master and know the models and technologies to address these challenges in order to choose the right models, technologies and methods according to the context and pursued objectives.

The pedagogical objectives of this course are to understand the current challenges and problems of the development of IT system that result from the bottom-up or top-down integration of existing systems (so called systems of systems), and that operate in distributed environments such as Web, IoT, Cloud, etc.

The students will acquire the skills to be able:

  • to carry out an agile development of IT applications,
  • to model, design, architect and integrate different IT services, data sources and systems with the right models, architectures,
  • to efficiently develop, implement, deliver and put in production such systems with the right technologies and best practices

The following concepts will be covered mainly through practical cases.

  • Introduction to Software Engineering and Agile software engineering methodologies
  • the SCRUM methodology
  • Unified Modeling Language (UML) 
  • proven models and good practices in the design and coding of software systems
  • common software architectural styles (REST, micro-services, publish-subscribe)

Mots-clés:

UML Développement agile Design Patterns S.O.L.I.D Patrons d'Integration d'Entreprises Numérique responsable Architecture logicielle REST Micro-services

Nombre d’heures à l’emploi du temps:

40

Domaine(s) ou champs disciplinaires:

Informatique, Systèmes d'information

Langue d’enseignement:

Français Anglais

Objectifs d’apprentissage:

A la fin de l’unité pédagogique, l’élève sera capable de : Niveau de taxonomie Priorité
Méthodologies agiles 5. Synthétiser Essentiel
Bonnes pratiques de programmation (S.O.L.I.D.) 3. Appliquer Essentiel
Bonnes pratiques de conception (Design Patterns) 3. Appliquer Essentiel
Éco-conception 2. Comprendre Utile

Modalités d’évaluation des apprentissages:

Part de l'évaluation individuelle Part de l'évaluation collective
Examen sur table : 50 % Livrable(s) de projet : 50 %
Examen oral individuel : 0 % Exposé collectif : 0 %
Exposé individuel : 0 % Exercice pratique collectif : 0 %
Exercice pratique individuel : 0 % Rapport collectif : 0 %
Rapport individuel : 0 %
Autre(s) : 0 %

Programme et contenus:

Type d’activité pédagogique : Contenu, séquencement et organisation
Software Engineering
  • Introduction to Software Engineering and Agile software engineering methodologies
  • the SCRUM methodology
  • Unified Modeling Language (UML)
Software Development Best practices
  • Design patterns et principes de codage
  • GOF DP, Enterprise Integration Patterns,
  • S.O.L.I.D., Coding/Design Principles (M. Fowler)
  • Nommage
  • SI et responsabilité sociétale
Software Architecture
  • Modèles architecturaux
  • REST et micro-services
  • Publish-subscribe
  • Langages formels pour la vérification et la simulation de modèles architecturaux