Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Yassamine Seladji
yassamine.seladji@gmail.com
11 septembre 2017
1 / 34
Architecture et développement logiciels
Contexte
Un logiciel :
I est un ensemble de programmes interprétables par une
machine, cela permet d’automatiser une tache ou une
fonction.
2 / 34
Architecture et développement logiciels
Contexte
Un logiciel :
I est un ensemble de programmes interprétables par une
machine, cela permet d’automatiser une tache ou une
fonction.
I est caractérisé par :
2 / 34
Architecture et développement logiciels
Contexte
Un logiciel :
I est un ensemble de programmes interprétables par une
machine, cela permet d’automatiser une tache ou une
fonction.
I est caractérisé par :
I un environnement : utilisateurs, matériels, autres logiciels.
2 / 34
Architecture et développement logiciels
Contexte
Un logiciel :
I est un ensemble de programmes interprétables par une
machine, cela permet d’automatiser une tache ou une
fonction.
I est caractérisé par :
I un environnement : utilisateurs, matériels, autres logiciels.
I une spécification : définie le fonctionnement interne du logiciel,
ainsi que ses interactions avec son environnement.
2 / 34
Architecture et développement logiciels
3 / 34
Architecture et développement logiciels
3 / 34
Architecture et développement logiciels
3 / 34
Architecture et développement logiciels
3 / 34
Architecture et développement logiciels
3 / 34
Architecture et développement logiciels
3 / 34
Architecture et développement logiciels
3 / 34
Architecture et développement logiciels
3 / 34
Architecture et développement logiciels
Contexte
Un problème industriel
I le crash d’Ariane 5 : causé par un dépassement de capacité
(arithmétique overflow).
=⇒ 700 Million d’euro de perte.
4 / 34
Architecture et développement logiciels
Critère de qualité
5 / 34
Architecture et développement logiciels
Critère de qualité
5 / 34
Architecture et développement logiciels
Critère de qualité
5 / 34
Architecture et développement logiciels
Critère de qualité
5 / 34
Architecture et développement logiciels
Critère de qualité
5 / 34
Architecture et développement logiciels
Critère de qualité
5 / 34
Architecture et développement logiciels
Critère de qualité
5 / 34
Architecture et développement logiciels
6 / 34
Architecture et développement logiciels
6 / 34
Architecture et développement logiciels
6 / 34
Architecture et développement logiciels
6 / 34
Architecture et développement logiciels
6 / 34
Architecture et développement logiciels
7 / 34
Architecture et développement logiciels
7 / 34
Architecture et développement logiciels
7 / 34
Architecture et développement logiciels
7 / 34
Architecture et développement logiciels
8 / 34
Architecture et développement logiciels
8 / 34
Architecture et développement logiciels
8 / 34
Architecture et développement logiciels
9 / 34
Architecture et développement logiciels
9 / 34
Architecture et développement logiciels
9 / 34
Architecture et développement logiciels
Pattern
Un patron décrit à la fois un problème qui se produit très
fréquemment dans l’environnement et l’architecture de la solution à
ce problème de telle façon que l’on puisse utiliser cette solution des
milliers de fois sans jamais l’adapter deux fois de la même manière.
C.Alexander
10 / 34
Architecture et développement logiciels
Pattern
Un patron décrit à la fois un problème qui se produit très
fréquemment dans l’environnement et l’architecture de la solution à
ce problème de telle façon que l’on puisse utiliser cette solution des
milliers de fois sans jamais l’adapter deux fois de la même manière.
C.Alexander
10 / 34
Architecture et développement logiciels
11 / 34
Architecture et développement logiciels
11 / 34
Architecture et développement logiciels
11 / 34
Architecture et développement logiciels
11 / 34
Architecture et développement logiciels
12 / 34
Architecture et développement logiciels
12 / 34
Architecture et développement logiciels
12 / 34
Architecture et développement logiciels
12 / 34
Architecture et développement logiciels
13 / 34
Architecture et développement logiciels
13 / 34
Architecture et développement logiciels
13 / 34
Architecture et développement logiciels
14 / 34
Architecture et développement logiciels
15 / 34
Architecture et développement logiciels
15 / 34
Architecture et développement logiciels
15 / 34
Architecture et développement logiciels
15 / 34
Architecture et développement logiciels
16 / 34
Architecture et développement logiciels
17 / 34
Architecture et développement logiciels
Example : Labyrinthe
18 / 34
Architecture et développement logiciels
Example : Labyrinthe
19 / 34
Architecture et développement logiciels
Example : Labyrinthe
20 / 34
Architecture et développement logiciels
Example : Labyrinthe
21 / 34
Architecture et développement logiciels
Example : Labyrinthe
22 / 34
Architecture et développement logiciels
Example : Labyrinthe
Manque de flexibilité.
22 / 34
Architecture et développement logiciels
Le Modèle de Fabrique
Nom :
Le Modèle de Fabrique (The Factory Pattern).
Problème :
On utilise la modèle de fabrique lorsque :
I Une classe ne peut anticiper la classe de l’objet qu’elle doit
créer.
I Une classe délègue la responsabilité de la création à ses sous
classes, tout en concentrant l’interface dans une classe unique.
23 / 34
Architecture et développement logiciels
Le Modèle de Fabrique
Conséquences :
I Avantage : Élimination du besoin de code spécifique à
l’application dans le code du framework (uniquement
l’interface du Product).
I Inconvénient : Augmentation du nombre de classes.
24 / 34
Architecture et développement logiciels
25 / 34
Architecture et développement logiciels
Le Modèle de Fabrique
26 / 34
Architecture et développement logiciels
Le Modèle de Fabrique
27 / 34
Architecture et développement logiciels
La Fabrique Abstraite
Nom :
Le Modèle de Fabrique Abstraite (The Abstract Factory Pattern).
Problème :
Généralement le modèle de la fabrique est utilisé lorsque :
I Le système travaille avec un ensemble de produit mais à
besoin de rester indépendant du type de ces produits.
I Le système doit être indépendant de la manière dont ses
produits sont créés, assemblés, représentés.
I Le système veut définir une interface unique à une famille de
produits concrets.
28 / 34
Architecture et développement logiciels
La Fabrique Abstraite
Nom :
Le Modèle de Fabrique Abstraite (The Abstract Factory Pattern).
Problème :
Généralement le modèle de la fabrique est utilisé lorsque :
I Le système travaille avec un ensemble de produit mais à
besoin de rester indépendant du type de ces produits.
I Le système doit être indépendant de la manière dont ses
produits sont créés, assemblés, représentés.
I Le système veut définir une interface unique à une famille de
produits concrets.
La Fabrique Abstraite
Solution :
29 / 34
Architecture et développement logiciels
La Fabrique Abstraite
Conséquences :
I Avantage : Séparation entre classes concrètes et classe clients.
30 / 34
Architecture et développement logiciels
31 / 34
Architecture et développement logiciels
32 / 34
Architecture et développement logiciels
33 / 34
Architecture et développement logiciels
Exemple : Le labyrinthe
34 / 34