Architecture en Couches: Exemple

Software Architecture · course

Browse all génie logiciel documents

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)