ARCHITECTURE EN COUCHES :
EXEMPLE
Dr. Rania MZID
COMMENT STRUCTURER UN PROJET ?
Imaginons un simple exemple : une calculatrice
+FrameCalculatrice()+refreshDisplay+intialiser()+AddCible(calculatrice:Calculatrice)FrameCalculatriceOperationButtonNumericButton+Calculatrice()+ajouter(nombre:integer)+soustraire(nombre:integer)+intialiser()+toString():String+AddObservable(frameCalculatrice:FrameCalculatrice)valeur:integer:0Calculatrice1 uneCalculatriceuneIHM1uneIHM1uneIHM operationButton1..operationButton1..*
CRITIQUES
Un seul diagramme de classes
– impossible pour de gros projets
• exploiter au maximum la notion de modèle (de vue)
La séparation IHM et cœur de métier n’est pas
assez marquée
– mieux séparer les concepts :
• 1 modèle pour l'IHM
• 1 modèle pour le cœur même : la calculatrice
COMMENT STRUCTURER UN PROJET ?
Coeur
Advertisement
IH
M
+FrameCalculatrice()+refreshDisplay+intialiser()+AddCible(calculatrice:Calculatrice)FrameCalculatriceOperationButtonNumericButton+Calculatrice()+ajouter(nombre:integer)+soustraire(nombre:integer)+intialiser()+toString():String+AddObservable(frameCalculatrice:FrameCalculatrice)valeur:integer:0Calculatrice1 uneCalculatriceuneIHM1uneIHM1uneIHM operationButton1..operationButton1..*COMMENT STRUCTURER UN PROJET ?
La définition de la structure d’un projet revient á définir
son architecture logicielle
Le terme architecture d’un
désigne sa
structure en terme de composants, relations entre
composants et relations avec l’environnement
logiciel
Durant la phase de conception, les choix réalisés
représente des contraintes sur l’architecture qui sera
traduites par la suite au niveau du code
SÉPARATION EN 2 PAQUETAGES
2 couches : 2 paquetages
ModèleCalculatrice:
– Contient tous les éléments
Advertisement
propres à la notion de
calculatrice
IHMCalculatrice
– Tous les éléments liés à
l'IHM
Liés par des liens de
dépendances:
« je peux utiliser tous les éléments du
paquetage qui est ma cible »
IHMCalculatriceModèleCalculatrice
SÉPARATION EN 2 PAQUETAGES
Remarque :
– bannir les dépendances circulaires !
A découper en 2 paquetages
IHMCalculatriceModèleCalculatriceDIAGRAMME DE CLASSES DU PAQUETAGE MODÈLE
Indication du paquetage
d’origine en italique
Advertisement
+FrameCalculatrice()+refreshDisplay+intialiser()+AddCible(calculatrice:Calculatrice)FrameCalculatrice(From IHMCalculatrice)+Calculatrice()+ajouter(nombre:integer)+soustraire(nombre:integer)+intialiser()+toString():String+AddObservable(frameCalculatrice:FrameCalculatrice)valeur:integer:0Calculatrice1 uneCalculatriceuneIHM *LES ARCHITECTURES N-TIERS
Décomposition d’un plusieurs niveaux : horizontale
et/ou verticale
ARCHITECTURE 3-TIERS (MVC)
Passage du modèle 1 au modèle MVC pour une plus grande
maitrise du développement web
Modèle 1 (1-tier) : Tous les traitements sont réalisés dans
un même niveau
Repose sur une séparation en couches (3 couches) des
différents concepts
MVC : Patron de conception (Model-View-Controller)
ARCHITECTURE 3-TIERS (MVC)
Model (Modèle)
Représente le fond du sujet
S’intéresse à la représentation des données de la
couche métier (business logic), i.e. données spécifiques
à l’application
Advertisement
ARCHITECTURE 3-TIERS (MVC)
View (Vue)
Concerne la forme (représentation)
La vue concerne principalement la représentation des données du
modèle à l’écran (ou sur tout autre périphérique de sortie)
Il peut donc exister plusieurs vues
ARCHITECTURE 3-TIERS (MVC)
Controller (Contrôleur)
Gère les interactions avec l’utilisateur
Détermine quels traitements doivent être réalisés
Interface entre le modèle et la vue
ARCHITECTURE 3-TIERS (MVC)