• Niveau d'étude

    BAC +3

  • ECTS

    3 crédits

  • Composante

    Sciences économiques, gestion, mathématiques et informatique

  • Volume horaire

    32h

  • Période de l'année

    Enseignement sixième semestre

Description

Ce cours s’intéresse à l’activité de conception d’architectures logicielles (terme à comprendre sous l’angle d’architectures d’interfaces et de classes métier, et de leur implémentation) de qualité. Il est architecturé autour des points suivants :

• Rappels de notation UML (diagrammes de classes, d’objets, de séquence, d’états)
• Notion de conception et d’espace de solutions
• Principes de qualité logicielle, tels que DRY et SOLID
• Odeurs de code et anti-patrons
• Refactoring
• Patrons de conception

Il est mis en oeuvre autour de cours et de TD où différents cas d’étude sont présentés (concevoir une architecture de qualité à partir d’un besoin, juger la qualité d’une architecture existante, refactorer une architecture pour en améliorer la qualité, procéder à la maintenance évolutive d’une architecture tout en maintenant sa qualité architecturale). Dans le cadre de l’utilisation toujours plus importante de l’IA générative et d’agents de code, le cours montrera aussi comment interagir avec ces derniers pour obtenir des solutions logicielles présentant une bonne qualité architecturale.
La notation de modélisation est UML. Les implémentations sont faites dans un langage de programmation à objets.

Lire plus

Objectifs

  • Savoir concevoir et développer des architectures logicielles de qualité.
  • Savoir détecter des problèmes conduisant à un déficit qualitatif dans une architecture logicielle.
  • Savoir refactorer une architecture logicielle pour gagner en qualité / maintenabilité.
Lire plus

Évaluation

Modalités : Mixte : CC + CT
SESSION 1 :
Contrôle Continu
• Type : Écrit
• Durée : --
• Précisions : Le contrôle continu représente 50 % de la note finale,
et comprend deux évaluations comptant chacune pour 25 %.

Contrôle Terminal
• Type : Écrit
• Durée : --
• Précisions : L’examen final représente 50 % de la note finale.

Régime Dérogatoire
• Type : Écrit
• Durée : --
• Précisions : L’examen final représente 100 % de la note finale.

SESSION 2 :
• Type : Écrit
• Durée : --
• Précisions : L’examen final représente 100 % de la note finale.

Utilisation de l'intelligence artificielle :
L’utilisation des équipements électroniques et de l’Intelligence Artificielle sont interdits lors des évaluations.

Lire plus

Heures d'enseignement

  • CMCM16h
  • TDTD16h

Bibliographie

  • M. P. Robillard, Introduction to Software Design with Java, Springer, 2017.
  • M. Fowler, Refactoring: Improving the Design of Existing Code, Addison Wesley, 1999.
  • J. Bloch, Effective Java (3rd Ed.), Addison Wesley, 2018.
  • R. C. Martin, Clean Code: A Handbook of Agile Software Craftmanship, Prentice Hall, 2008.
Lire plus