Fiche méthodologique de projet
C.2 Déterminer une architecture logicielle
Objectif
Mettre en oeuvre une architecture logicielle en couches.
On fait le choix d'une architecture très classique en 3 couches (pattern Architectural
Layer).
Préambule
L’architecture
L’architecture logicielle
logicielle décrit
décrit d’une
d’une manière
manière symbolique
symbolique et
et schématique
schématique les
les
différents éléments d’un ou de plusieurs systèmes informatiques, leurs
différents éléments d’un ou de plusieurs systèmes informatiques, leurs
relations
relations et
et leurs
leurs interactions.
interactions.
Styles d'architecture
L'architecture
L'architecture logicielle
logicielle peut
peut se
se catégoriser
catégoriser en
en styles.
styles. En
En effet,
effet, malgré
malgré les
les
millions
millions de systèmes informatiques construits de par le monde au cours des
de systèmes informatiques construits de par le monde au cours des
cinquante dernières années, tous se classent parmi un nombre extrêmement
cinquante dernières années, tous se classent parmi un nombre extrêmement
restreint
restreint de
de styles
styles architecturaux.
architecturaux. De
De plus,
plus, un
un système
système informatique
informatique peut
peut
utiliser
utiliser plusieurs
plusieurs styles.
styles.
Quelques
Quelques architectures
architectures «« célèbres
célèbres »» ::
Architecture
Architecture en
en couches
couches
Architecture
Architecture centrée
centrée sur
sur les
les données
données
Architecture
Architecture orientée
orientée objets
objets
Architecture trois tiers
L'architecture
L'architecture trois
trois tiers
tiers («
(« 3Tier
3Tier »» anglais
anglais tier
tier signifiant
signifiant étage
étage ou
ou niveau)
niveau) ou
ou
architecture
architecture àà trois
trois niveaux
niveaux estest un
un modèle
modèle logique
logique d'architecture
d'architecture applicative
applicative qui
qui vise
vise àà
séparer très nettement trois couches logicielles au sein d'une même application
séparer très nettement trois couches logicielles au sein d'une même application ou ou
système,
système, àà modéliser
modéliser et et présenter
présenter cette
cette application
application comme
comme un un empilement
empilement dede trois
trois
couches dont le rôle est clairement défini
couches dont le rôle est clairement défini : :
la
la présentation
présentation des
des données
données (couche
(couche présentation)
présentation) :: correspondant
correspondant àà l'affichage,
l'affichage, la
la
restitution sur le poste de travail, le dialogue avec l'utilisateur (IHM)
restitution sur le poste de travail, le dialogue avec l'utilisateur (IHM) ; ;
le
le traitement
traitement métier
métier des
des données
données (couche
(couche métier
métier ouou application)
application) :: correspond
correspond àà la
la
partie
partie fonctionnelle
fonctionnelle de
de l'application,
l'application, celle
celle qui
qui implémente
implémente la la «« logique
logique »» applicative
applicative ;;
l'accès aux données persistantes (couche accès aux données ou
l'accès aux données persistantes (couche accès aux données ou persistance) :: persistance)
correspondant
correspondant auxaux données
données qui
qui sont
sont destinées
destinées àà être
être conservées
conservées sur sur la
la durée,
durée, voire
voire de
de
manière définitive.
manière définitive.
Voir aussi : le Modèle-Vue-Contrôleur MVC
IlIl existe
existe aussi
aussi le
le ModèleVueContrôleur
ModèleVueContrôleur (MVC, (MVC, ModelViewController)
ModelViewController) qui qui est
est une
une
architecture
architecture et et une
une méthode
méthode de de conception
conception quiqui organise
organise l'interface
l'interface HommeMachine
HommeMachine (IHM) (IHM)
d'une application logicielle. Il divise l'ihm en un modèle (modèle de données),
d'une application logicielle. Il divise l'ihm en un modèle (modèle de données), une vue une vue
(présentation,
(présentation, interface
interface utilisateur)
utilisateur) et
et un
un contrôleur
contrôleur (logique
(logique de
de contrôle,
contrôle, gestion
gestion des
des
évènements,
évènements, synchronisation),
synchronisation), chacun
chacun ayant
ayant un
un rôle
rôle précis
précis dans
dans l'interface.
l'interface.
1 C.2. Concevoir
Exemple
On
On représente
représente l'architecture
l'architecture de
de l'application
l'application en
en utilisant un diagramme
utilisant un diagramme de
de packages
packages
d'architecture
d'architecture
Couche
Présentation
Remarques
Le
Le principal
principal objectif
objectif de
de cette
cette séparation
séparation enen trois
trois couches
couches est
est d'isoler
d'isoler la
la logique
logique dede
l'application
l'application de(s)
de(s) classe(s)
classe(s) de
de présentation
présentation (IHM)
(IHM) ainsi
ainsi que
que d'interdire
d'interdire un
un accès
accès direct
direct
aux
aux données stockées par ces classes. L'intérêt est de pouvoir modifier l'interface de
données stockées par ces classes. L'intérêt est de pouvoir modifier l'interface de
l'application
l'application sans
sans devoir
devoir modifier
modifier lala couche
couche Application
Application etet de
de pouvoir
pouvoir changer
changer dede
stockage
stockage sans
sans avoir
avoir àà retoucher
retoucher l'interface
l'interface et
et la
la couche
couche Application.
Application.
Pour
Pour éviter
éviter que
que les
les objets
objets de
de l'IHM
l'IHM ne
ne soient
soient obligés
obligés de
de connaître
connaître les
les détails
détails de
de la
la
couche
couche Application,
Application, onon introduit
introduit un
un objet,
objet, souvent appelé contrôleur,
souvent appelé contrôleur, qui
qui joue
joue le
le rôle
rôle de
de
façade visàvis de la couche Présentation (voir pattern GRASP « contrôleur
façade visàvis de la couche Présentation (voir pattern GRASP « contrôleur »). »).
2 C.2. Concevoir