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 |
|
ECTS |
3 |
Intranet |
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
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.
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.