15/11/2017
Chapitre 4
La Conception
Cours G nie
Logiciel 1
Niveau II2
AU: 2017/2018
PLAN
Introduction
Pr sentation de la conception
Principes de la conception
Qualit s dune bonne conception
Conception architecturale
D finitions
Choix dune architecture
Styles architecturaux
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
2
1
INTRODUCTION
3
D E L A N A LY S E L A
C O N C E P T I O N
Analyse
Quoi-Faire ?
1 .I NT RODUCT I ON
Conception
Comment-Faire ?
Difficult de la conception:
La conception ne se contente pas didentifier le
probl me mais doit lui apporter une solution valide.
Processus cr atif
Activit it rative/incr mentale qui transforme
progressivement les besoins vers un produit final.
tape cruciale du d veloppement logiciel: pont
entre lanalyse des besoins et limpl mentation.
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
4
15/11/2017
2
15/11/2017
D E L A C O N C E P T I O N
L I M P L M E N TAT I O N
1 .I NT RODUCT I ON
Limpl mentation est la mise en Suvre des choix issus de la
conception.
Limpl mentation doit pouvoir r pondre aux contraintes de
r alisation sans mettre en cause les choix de conception.
5
C O N C E P T I O N V S
I M P L M E N TAT I O N - E X E M P L E
T Y P I Q U E
1 . I NT RODU CT I O N
On introduit, lors de limpl mentation, une optimisation
qui brise une abstraction issue de la conception.
Ceci t moigne dune mauvaise conception : une sp cification non
fonctionnelle concernant lefficacit na pas t prise en compte.
Ceci t moigne dune mauvaise impl mentation : les choix de
conception doivent toujours tre respect s par limpl mentation.
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
6
3
15/11/2017
PR SENTATION DE
LA CONCEPTION
7
D FINITIONS
2 . P R S E N TAT I O N D E
L A C O N C E P T I O N
La conception est un processus de r solution de probl mes
dont lobjectif est didentifier la meilleure fa on:
dimpl menter les besoins fonctionnels dun syst me...
tout en respectant les contraintes impos es par les besoins non
fonctionnels...
et en adh rant des principes de base menant un logiciel de qualit .
La conception propose une solution au probl me sp cifi
lors de lanalyse :
architecture de lapplication (architecture logicielle et architecture
physique),
description d taill e des modules, des interfaces utilisateurs, des
donn es.
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
8
4
D FINITIONS
2 . P R S E N TAT I O N D E
L A C O N C E P T I O N
Activit Intellectuelle
Cr ativit
Exp rience.
Pas de recettes toutes faites.
mais il existe des m thodes (principes & bonnes pratiques)
pouvant tre de bons conseils
R sultat de la phase de conception = conception ou
design .
Une bonne conception contribue la qualit du logiciel:
fiabilit , correction, volutivit , etc.
9
LA CONCEPTION = S RIE
DE D CISIONS
2 . P R S E N TAT I O N D E
L A C O N C E P T I O N
Lors de la r solution dun probl me, tout concepteur fera
face une s rie de probl mes:
1. Ce sont des sous-probl mes devant tre r solus.
2. Chacun de ces probl mes peut tre solutionn de diff rentes
fa ons
=> Ce sont des options de conception.
3. Le concepteur doit donc prendre des d cisions de conception
afin de r soudre chacun de ces sous-probl mes en tenant
compte:
des exigences
du design courant
de la technologie disponible
des principes de bon design
de lexp rience pass e
4.
Il faudra tre en mesure de toujours choisir la meilleure
alternative.
10
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
15/11/2017
5
15/11/2017
LA CONCEPTION = S RIE
DE D CISIONS
2 . P R S E N TAT I O N D E
L A C O N C E P T I O N
Lespace engendr par lensemble des solutions possibles
pour un design sappelle lespace de design
Par exemple:
fat-client
thin-client
separate
user interface
layer for
client
no
separate
user interface
layer for client
client-server
monolithic
programmmed in Java
programmed in Visual Basic
programmed in C++
11
TAPES DE LA
CONCEPTION
2 . P R S E N TAT I O N D E
L A C O N C E P T I O N
La conception passe par deux tapes:
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
12
6
TAPES DE LA
CONCEPTION
Conception architecturale
2 . P R S E N TAT I O N D E
L A C O N C E P T I O N
=conception de haut niveau= conception globale
Premi re tape qui consiste d finir les fonctions des l ments d'un
syst me et leurs relations fonctionnelles.
Objectif: Structuration et organisation g n rale du syst me concevoir
Contient la description des l ments principaux du syst me, les
relations entre eux, les contraintes respecter, les motifs et la logique
de cette d composition.
La division du syst me en sous-syst mes et composantes
Comment ceux-ci seront interconnect es.
Comment vont-ils interagir.
Leurs interfaces.
Quest ce quils contiennent (Conception des modules)
SD, op rations et associations.
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
13
TAPES DE LA
CONCEPTION
Conception d taill e
2 . P R S E N TAT I O N D E
L A C O N C E P T I O N
=conception de bas niveau
tape qui consiste d tailler les r sultats de lanalyse fonctionnelle,
jusqu' un niveau suffisant pour en permettre finalement le codage dans
un langage de programmation choisi.
D finition dun design logiciel respectant le plan de la conception
architecturale.
Publicité
Objectif: d tailler les l ments produits dans la conception architecturale
et pr parer au mieux limpl mentation:
description pr cise de chaque module
algorithmes mis en Suvre
traitements effectu s en cas d'erreur
Conception des donn es
Conception des algorithmes:
tude de leur efficacit .
Conception de protocoles:
Les messages et r gles utilis s dans la conversation.
14
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
15/11/2017
7
TAPES DE LA
CONCEPTION
2 . P R S E N TAT I O N D E
L A C O N C E P T I O N
But: D composition et raffinement progressif du syst me en
modules de plus en plus d taill s.
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
15
PROCESSUS DE
CONCEPTION
2 . P R S E N TAT I O N D E
L A C O N C E P T I O N
Plusieurs tapes :
Conception de larchitecture
Conception de linterface
Conception des composants
Structures de donn es
Algorithmes
Interface
Syst me
16
15/11/2017
8
PROCESSUS DE
CONCEPTION
2 . P R S E N TAT I O N D E
L A C O N C E P T I O N
Sp cification
des besoins
Conception de
larchitecture
Conception de
linterface
Conception du
composant
Architecture
Sp cification
Interface
Struct.
Don
Algo.
Sp cification
S. D. & Algo.
17
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
LACTIVIT DE
CONCEPTION
2 . P R S E N TAT I O N D E
L A C O N C E P T I O N
Sp cifications des besoins
Principes fondamentaux du G nie Logiciel
CONCEPTION
Mod lisation
des donn es
Architecture
du syst me
Interface
Utilisateur
Composants
(modules)
tape d cisive pour :
la fiabilit
l'efficacit
la maintenabilit
la r utilisabilit
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
18
15/11/2017
9
PRINCIPALES
ACTIVIT S
2 . P R S E N TAT I O N D E
L A C O N C E P T I O N
la conception des structures des donn es
con oit et sp cifie en d tail les structures de donn es
La conception de larchitecture du syst me : d finir les s/syst mes
- identifie les sous-syst mes qui composeront le syst me global
- tablit une description des services support s par chaque sous-
syst me
la conception de linterface : identifier et documenter les
interactions entre s/syst mes.
la conception des composants : services offerts
- d coupe les sous-syst mes en plusieurs composants
- con oit et sp cifie en d tail les algorithmes pour r aliser les
diff rents services
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
19
PRINCIPES DE
CONCEPTION
15/11/2017
10
15/11/2017
PRINCIPES DE BASE
3 .P RI NCI P ES DE
LA CONCEP T I ON
La conception ne doit pas r inventer la roue
Le temps est pr cieux exploiter des solutions existantes
La conception doit tre uniforme et int grable
- R gles de style et de format pr alablement d finies pour toute
l quipe
- D finition minutieuse des interfaces entre les composants
La conception doit avoir une structure facilitant
l volution
- Tra abilit entre les besoins et les l ments de la conception
- Application des principes du g nie logiciel (modularit ,
abstraction, etc.)
21
PRINCIPES DE BASE
3 .P RI NCI P ES DE
LA CONCEP T I ON
La conception nest pas le codage et vice versa
Distinguer les niveaux dabstraction conceptuel/code source
La conception doit miser sur la qualit
Divers concepts et mesures sont disponibles
La conception doit tre revue pour minimiser les erreurs
s mantiques
Faire attention aux omissions, ambigu t s et inconsistances
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
22
11
15/11/2017
QUELQUES PRINCIPES DE
CONCEPTION
3 .P RI NCI P ES DE
LA CONCEP T I ON
1. Modularit
2. Abstraction
3. Encapsulation
4. Anticipation des changements
5. R utilisabilit
6. R utilisation
7. Forte coh sion
8. Faible couplage
Qualit s
logicielles en
jeu
23
MODULARIT
3 .P RI NCI P ES DE
LA CONCEP T I ON
Objectif: d terminer la structure modulaire du syst me
d velopper
unit de
conception
" unit de codage et tests
" unit d'int gration et d'archivage
" unit de r utilisation
" unit de maintenance
R pondre aux questions:
Quels sont les modules ?
Quelles relations lient les modules entre eux ?
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
24
12
15/11/2017
MODULARIT
3 .P RI NCI P ES DE
LA CONCEP T I ON
n principe : s parer le syst me en composants logiques
modules
n avantages :
r duction de complexit
les modules peuvent tre
con us et construits s par ment
r utilis s
syst me modifi en changeant un nombre limit de modules
25
MODULE: D FINITION
3 .P RI NCI P ES DE
LA CONCEP T I ON
Un module est un composant dune application, contenant
des d finitions de donn es et/ou de types de donn es et/ou
de fonctions et constituant un tout coh rent.
Par exemple des m thodes, des classes, des paquetages sont des modules
Publicité
en Java.
On peut d finir un module comme un fournisseur de
ressources ou/et de services.
Quand on d compose un syst me en modules il faut d crire
pr cis ment les relations entre ces modules.
Quels sont les modules ? (fonction, proc dure, Classe, paquet,
composant : JavaBean, EJB, ActiveX, COM, DCOM, &)
Quelles relations lient les modules entre eux ?
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
26
13
15/11/2017
MODULARIT
3 .P RI NCI P ES DE
LA CONCEP T I ON
Relations entre modules : Deux types de relations sont
utiles pour d crire la structure dun syst me
Relation UTILISE : On dit que Mi UTILISE Mj si Mi requiert la
pr sence de Mj car Mj lui fournit des ressources ou des services.
Exemple : Appel de proc dure
UML: association, liens de d pendance&
Relation CONTIENT : On dit que Mi CONTIENT Mk si Mi est
r alis en assemblant un ou plusieurs modules dont le module Mk
Exemple : regroupement en paquetages UML
D claration dune classe lint rieur dune autre classe
UML: regroupement en paquetages
(aussi agr gation/composition)
27
MODULARISATION
3 .P RI NCI P ES DE
LA CONCEP T I ON
Relation UTILISE
On dit que Mi UTILISE Mj si Mi requiert la
pr sence de Mj car Mj lui fournit des
ressources ou des services.
La relation UTILISE doit id alement tre une hi rarchie. Pourquoi est-ce
pr f rable ?
Facilite la compr hension de la structure (par niveau dabstraction)
Facilite le test unitaire&
Autrement: on peut se retrouver avec un syst me qui ne marche pas
jusqu ce que tout marche (Parnas)
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
28
14
15/11/2017
MODULARISATION
3 .P RI NCI P ES DE
LA CONCEP T I ON
Relation UTILISE
Relation d finie statiquement i.e. ind pendamment de
toute ex cution du logiciel.
29
MODULARISATION
3 .P RI NCI P ES DE
LA CONCEP T I ON
Relation UTILISE
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
30
15
15/11/2017
MODULARISATION
3 .P RI NCI P ES DE
LA CONCEP T I ON
Relation UTILISE
On doit trouver une solution de compromis raisonnable qui
offre un couplage faible.
31
MODULARISATION
3 .P RI NCI P ES DE
LA CONCEP T I ON
Relation UTILISE
On recommande une relation UTILISE qui pr sente une
silhouette profonde&
A viter: r teau !
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
32
16
15/11/2017
MODULARISATION
3 .P RI NCI P ES DE
LA CONCEP T I ON
Relation Contient
On dit que Mi CONTIENT M k si Mi est r alis en
assemblant un ou plusieurs modules dont le module M k
Exemple: inclusion de packages et de classes en Java
33
MODULARIT
3 .P RI NCI P ES DE
LA CONCEP T I ON
Identifier les modules en assurant:
forte coh sion l'int rieur du module
faible couplage entre les modules
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
34
17
15/11/2017
ABSTRACTION
3 .P RI NCI P ES DE
LA CONCEP T I ON
Maintenir le niveau dabstraction aussi lev que
possible
La complexit dun design est r duite lorsquun maximum
de d tails se trouve masqu
Une abstraction de qualit utilise toujours le principe de
masquage de linformation
Une abstraction permet de saisir lessence dun syst me sans avoir
en conna tre les d tails de son impl mentation
35
ABSTRACTION - EXEMPLE
3 .P RI NCI P ES DE
LA CONCEP T I ON
En orient e objet, les classes sont des abstractions de
donn es contenant des abstractions de proc dures
Attribuer une visibilit priv e aux variables permet daccro tre la
qualit de labstraction.
R duire le nombre de m thodes publiques accro t la qualit de
labstraction
Une meilleure abstraction est obtenue en d finissant des
m thodes ayant peu de param tres
La cr ation de super-classes et dinterfaces accro t
consid rablement la qualit de labstraction.
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
36
18
ENCAPSULATION
3 .P RI NCI P ES DE
LA CONCEP T I ON
Associer un composant une vue externe et une vue
interne.
Vue externe : c'est l'interface, elle d finit ce que le composant doit
faire.
Vue interne: c'est l'impl mentation, elle d finit comment il le fait.
Exemple : PILE
initialiser,
empiler,
d piler.
37
ANTICIPATION DES
CHANGEMENTS
3 .P RI NCI P ES DE
LA CONCEP T I ON
Un des principaux soucis de lactivit de conception:
d velopper un design qui facilite lajustement du syst me
aux changements:
Perfectionnement du syst me impos par les nouvelles exigences
du client.
Adaptations impos s par la modification de lenvironnement
mat riel, social, etc.
Importante qualit logicielle en jeu: maintenabilit
Publicité
38
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
15/11/2017
19
15/11/2017
CONCEVOIR POUR
CHANGER
3 .P RI NCI P ES DE
LA CONCEP T I ON
Types de changements
Sources de vrais changements
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
39
CONCEVOIR POUR
CHANGER
3 .P RI NCI P ES DE
LA CONCEP T I ON
Pourquoi?
Quelques cons quences ind sirables
Un design, m me merveilleux , peut se r v ler
extr mement difficile et co teux adapter.
Cons quence: n cessit de refaire un tout nouveau design pour
int grer un changement apparemment mineur&
En essayant daccommoder larchitecture aux changements,
le concepteur risque de briser l l gante structure initiale
du design.
Cons quence: application de plus en plus difficile maintenir et
inspirant peu confiance (fiabilit compromise ?)
40
20
15/11/2017
CONCEVOIR POUR
CHANGER
3 .P RI NCI P ES DE
LA CONCEP T I ON
Types de changements
Changement dalgorithme.
Changement de repr sentation des donn es.
Changement au niveau des p riph riques.
Changement de lenvironnement social.
Changements dus au processus de d veloppement.
41
ANTICIPATION DES
CHANGEMENTS
3 .P RI NCI P ES DE
LA CONCEP T I ON
R duire le couplage et accro tre la coh sion
Cr er des abstractions
Ne pas introduire de constante num rique ad hoc (pas de
hard-coding)
Permettre un maximum doptions
Ne pas restreindre inutilement les options
Utiliser du code r utilisable et rendre le code r utilisable
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
42
21
15/11/2017
R UTILISABILIT
3 .P RI NCI P ES DE
LA CONCEP T I ON
Accro tre la r utilisabilit autant que possible
Concevoir le design de fa on ce que les diff rents aspects
du syst me soient utilisables dans diff rents contextes
G n raliser le design autant que possible
Simplifier le design autant que possible
Ajouter des options aux diff rents modules
43
R UTILISATION
3 .P RI NCI P ES DE
LA CONCEP T I ON
R utiliser autant de composantes que possible
La r utilisation est le principe compl mentaire au principe
de r utilisabilit
R utiliser les designs existants permet de tirer profit de leffort
investi par les concepteurs de composantes r utilisables
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
44
22
UN CERCLE VICIEUX
SINSTALLE
Les d veloppeurs de logiciels ne con oivent pas de
composantes r utilisables, il ny a donc rien r utiliser.
Pour r soudre ce probl me, il faut reconna tre que:
Ce cercle vicieux a un co t
Investir dans la r utilisabilit est important
Sassurer de la qualit des composantes r utilisables
produites est essentiel
De cette fa on, les r utilisateurs potentiels auront
confiance en ce produit
La qualit globale du logiciel est celle de sa
composante la plus faible
Le d veloppement de logiciel r utilisable m ne souvent,
en fait, une simplification du logiciel
45
D VELOPPEMENT POUR
ET PAR LA R UTILISATION
Le d veloppement par la r utilisation logicielle impose un
cycle de production-r utilisation perp tuel et une
architecture logicielle normalis e.
Une r utilisation bien orchestr e n cessite la cr ation et le maintien
d'une biblioth que logicielle et un changement de focus;
cr er une application revient cr er les composants de biblioth que
n cessaires puis construire l'application l'aide de ces composants.
Une telle biblioth que, facilitant le d veloppement d'application est un
framework (cadriciel) d'entreprise et son architecture, ainsi que sa
documentation sont les pierres angulaires de la r utilisation logicielle
en entreprise.
L'architecte doit
explorer la biblioth que pour trouver les composants logiciels
appropri s
puis cr er les composants manquants, les documenter et les int grer
la biblioth que.
Dans une grande entreprise, ce r le est rempli par UN
responsable du d veloppement harmonieux de la
biblioth que et de la conservation de l'int grit de son
architecture. (l'architecte en chef )
46
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
15/11/2017
23
D VELOPPEMENT PAR LA
R UTILISATION
Aucun logiciel de grande taille nest d velopp depuis z ro
aujourdhui
Utilisation de
Bouts de code
Structures + fonctions / Classes + m thodes
Biblioth ques
Cadriciels: cadre dapplication (fraweworks)
47
BIBLIOTH QUES
Biblioth que logicielle est un ensemble de
fonctions utilitaires, regroup es et mises disposition afin
de pouvoir tre utilis es sans avoir les r crire
Plut t que de coder une proc dure courante dans chaque
programme en ayant besoin, on rassemble ces proc dures dans
des biblioth ques.
Si un programme a une fonction remplir et que celle-ci se trouve
en biblioth que, il l'utilisera directement.
Les biblioth ques logicielles se distinguent des ex cutables dans
la mesure o elles ne repr sentent pas une application
Exemples
La biblioth que de classes Java
La STL de C++
48
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
15/11/2017
24
15/11/2017
Publicité
BIBLIOTH QUES
L'organisation classique des biblioth ques se fait par d coupage
th matique des fonctions, suivant les services qu'elles rendent:
Biblioth ques de bas niveau ou biblioth ques syst me : elles
fournissent des services d'interface avec le syst me d'exploitation,
avec les p riph riques, ou fournissent des outils g n riques :
biblioth ques d'entr es/sorties : fonctions de lecture et d' criture
de fichiers, de p riph riques d'entr e/sortie comme le clavier,
l' cran, etc.
gestion de structures de donn es syst me
Biblioth ques de haut niveau, aussi appel es biblioth ques m tier,
elles interagissent avec celles de bas niveau : les fonctions qu'elles
contiennent sont propres une activit sp cifique:
bo tes outils graphiques : ensemble de fonctions permettant de
g rer, d'animer et d'afficher des objets graphiques complexes
Exemple : OpenGL
biblioth ques d'op rateurs de traitement d'image : ensemble de
fonctions destin es structurer l'information dans une image des
fins d'analyse,
gestion de structures de donn es utilisateur.
49
BIBLIOTH QUES
Les biblioth ques offrent une interface de
programmation (API: Application
Programming Interface), permettant aux
programmeurs de choisir les fonctions.
Les API se pr sentent comme une liste des
noms des fonctions ou/et classes disponibles,
avec une documentation sur les param tres
leur fournir et sur les r sultats retourn s.
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
50
25
CADRE DAPPLICATIONS:
CADRICIEL
Un cadriciel est un espace de travail modulaire.
C'est un ensemble de biblioth ques, d'outils et de conventions
permettant le d veloppement de programmes.
Cest un logiciel
r utilisable qui propose une
solution
g n rique un probl me g n ralisable.
Il fournit les services que requi rent diff rentes applications.
Un cadriciel fournit un contexte o les composants sont r utilis s.
Cest une application logicielle partielle
int grant les connaissances d'un domaine,
dot e d'une architecture logicielle et d'un cSur (code) g n rique
d di e a la r alisation de nouvelles applications du domaine vis , par
param trage et extension
Un framework fournit:
un ensemble de fonctions facilitant la cr ation de tout ou d'une partie
d'un syst me logiciel
un guide architectural en divisant le domaine vis en modules.
51
BIBLIOTH QUES VS
CADRICIELS
Une biblioth que est limit e l'ensemble des fonctions
du syst me, par contre un cadriciel peut tre employ
par extension pour inclure galement l'architecture
logicielle pr conis e pour cette biblioth que (eg.
organisation en couches, utilisation du mod le MVC,
etc),
Exemples
Jdom est une librairie permettant de parser des fichiers XML.
Son API contient des fonctions de lecture des noeuds,
d'insertion de noeuds dans l'arbre XML, d'ajout d'attributs aux
balises...
Struts est un Framework qui permet de coder toute la partie
graphique d'une application, par un ensemble de librairies
(gestion des taglibs, des fichiers ressources pour les messages
ou la gestion des langues, gestion du mapping entre les
adresses et les pages, gestion des formulaires et des Beans,
etc.)
52
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
15/11/2017
26
15/11/2017
BIBLIOTH QUES VS
CADRICIELS
Une biblioth que s'utilise, un Framework s tend ou se
param tre
Avec une biblioth que, le code d'une nouvelle application
invoque le code de la biblioth que
Le code d'un Framework appelle le code de la nouvelle
application: I n ve r s i o n de c o n t r l e ( ga l e me n t di t p r i n c i p e de Ho l l ywo o d :
l e c o de du Fr a me wo r k (p r e x i s t a n t ) i n vo qu e (c a l l b a c k ) l e s p a r t i e s de c o de
r e p r s e n t a n t l a n o u ve l l e a p p l i c a t i o n e n u n c e r t a i n n o mb r e s d' e n dr o i t s p r d fi n i s
n o mme s (p o i n t s d' e x t e n s i o n s o u p o i n t s de p a r a m t r a ge s o u (h i s t o r i qu e me n t )
Ho t s p o t
53
CADRE DAPPLICATIONS:
CADRICIEL
On trouve diff rents types de cadriciels :
Cadriciel d'infrastructure syst me : pour d velopper des syst mes
d'exploitation, des interfaces graphiques, des outils de
communication.
Exemple : Framework .Net, Eclipse, NetBeans, Struts
Cadriciel d'int gration intergicielle (middleware) : pour f d rer
des applications h t rog nes. Pour mettre dispositions
diff rentes technologies sous la forme d'une interface unique.
Exemple : Ampoliros avec ses interfaces RPC, SOAP, XML
Cadriciel orient s Syst me de gestion de contenu
Exemple: Joomla, itsEasy, WMaker
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
54
27
CADRE DAPPLICATION
ORIENT OBJET
Conform ment au paradigme orient objet, un
cadre dapplication sera compos dun ensemble
de classes.
Le API est alors lensemble de toutes les m thodes publiques de
ces classes.
Quelques-unes de ces classes seront abstraites
55
56
TYPES DE CADRES
DAPPLICATIONS
Un cadre horizontal fournit des services g n raux quun
grand nombre dapplications peuvent utiliser
Un cadre vertical est beaucoup plus complet, seules
demeurent quelques ouvertures qui doivent tre d finies
afin de sadapter une application sp cifique
Application
Services offered
by the framework
Application
Horizontal framework
Vertical
framework
Code to be provided to adapt the framework to the
needs of the application
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
15/11/2017
28
15/11/2017
QUALIT S DUN BON
DESIGN
3 .P RI NCI P ES DE
LA CONCEP T I ON
Une bonne conception devrait favoriser
lind pendance des modules
Pour valuer lind pendance des modules, on se
base g n ralement sur les concepts suivants:
Le couplage
La coh sion
Concepts qui peuvent dailleurs sinfluencer lun et lautre
57
CARACT RISTIQUES DUN
BON DESIGN
3 .P RI NCI P ES DE
LA CONCEP T I ON
Un bon design
=
une bonne d composition en modules qui favorise:
une forte coh sion: les l ments ne sont pas r unis dans un
m me module par hasard: ils forment un tout dans le but
de r aliser une t che commune.
un faible couplage: les modules sont relativement
ind pendants, ne d pendent pas trop des l ments d finis
dans dautres modules.
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
C
o
u
r
s
G
L
-
A
C
O
O
E
N
S
I
58
29
15/11/2017
FAIBLE COUPLAGE
2 .P RI NCI P ES DE
LA CONCEP T I ON
Couplage: mesure de linterd pendance entre deux
modules.
Un ensemble de modules est faiblement coupl si les
liens de d pendance (cf. interactions induisant une
relation UTILISE ) entre les modules sont peu
nombreux.
Un faible couplage est pr curseur&
Dun bon d coupage du syst me: les l ments qui
d pendent les uns des autres ne sont pas parpill s
travers les modules du syst me.
Dune facilit de maintenance: une modification dans un
module affecte ventuellement un nombre restreint dautres
modules. Nombre de r visions r duites&
59
COUP LAG E...