XMS1IE302 - Conception de logiciels

Enseignement des concepts, des techniques, des méthodes et du processus de base pour la conception de grands systèmes logiciels.

Responsable

Gerson Sunyé

ECTS

3

Intranet

Madoc

1. Objectifs

La conception de logiciels est un processus de résolution de problèmes dont l’objectif est de trouver et de décrire un moyen de mettre en œuvre les exigences fonctionnelles du logiciel, tout en respectant les exigences non-fonctionnelles (qualité, plateforme, processus, budget, performance, etc.) et en adhérant aux principes généraux de la qualité.

Pour concevoir des logiciels de qualité, le concepteur se base sur sa propre l’expérience de conception, ainsi que sur celle d’autres développeurs. L’acquisition de l’expérience se fait grâce à l’analyse e logiciels existant et aux différentes techniques de conception, comme les cadres d’application, les patrons de conception, l’approche par composants, etc.

Le contenu des cours comprend :

  • La place de la conception dans le cycle de développement, ainsi que ses activités principales

  • Les principaux principes de la conception à objets

  • La conception externe (ou préliminaire) des composants

  • La conception interne (ou détaillée) des composants

  • Les différentes architectures

  • Les principales techniques de conception à objets: les patrons de conception et les cadres d’application

2. Prérequis

Pour suivre ce cours, l’étudiant doit connaître les concepts de la programmation à objets, les principaux patrons de conception, ainsi que le langage de modélisation unifié (UML). Plus précisément, l’étudiant doit connaître :

  • Le langage Java

  • Les principaux patrons de conception :

    • Singleton

    • Décorateur

    • Fabrique Abstraite

    • Poids mouche

    • Itérateur

    • Méthode Fabrique

  • Les "odeurs" de code

  • Les opérations de refactoring

3. Contenu des cours magistraux

4. Organisation

CM: 10h40 (8 séances) TP: 13h20 (10 séances)

Heures Séances

Cours Magistraux

10h40

8

Travaux dirigés

0

0

Travaux pratiques

13h20

10

5. Evaluation

5.1. Résultats attendus

Réussite des travaux pratiques et du contrôle continu écrit. Pour bien réussir le contrôle, il est indispensable de :

  • maîtriser le vocabulaire utilisé en cours

  • comprendre les concepts introduits en cours. Il n’est pas attendu que l’étudiant apprenne par coeur les définitions des concepts vus en cours, mais il doit les comprendre, connaître leurs avantages et leurs inconvénients, savoir quand les utiliser, ainsi que les conséquences de leur utilisation.

5.2. Modalités de contrôle continu

Tableau 1. Première session

Contrôle continu écrit

60%

Contrôle continu pratique

40%

Tableau 2. Deuxième session

Examen

60%

Contrôle continu pratique

40%

6. Outils et tutoriels

Références

  • [Larman:2004] Craig Larman. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. Prentice Hall, 2004.

  • [Martin:2017] Robert Martin. Clean Architecture: A Craftsman’s Guide to Software Structure and Design. Robert C. Martin Series

  • [Evans:2003] Eric J. Evans. Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison Wesley.