Académique Documents
Professionnel Documents
Culture Documents
architecture logicielle et
conception avancée
Yann-Gaël Guéhéneuc
Architectures – Partie 2/2
Tiré du cours de Julie Vachon
4/18
Développer un modèle architectural
Diagramme de composants
– Offre une vue de haut niveau de l’architecture du
système
– Utilisé pour décrire le système d’un point de vue
implémentation
– Permet de décrire les composants d’un système et les
interactions entre ceux-ci
– Illustre comment grouper concrètement et physiquement
les éléments (objets, interfaces, etc.) du système au sein
de modules qu’on appelle composants
5/18
Développer un modèle architectural
Composant
Qu’est-ce qu’un composant?
– Unité autonome faisant partie d’un – Granularité ? Un composant peut
système ou d’un sous-système qui représenter quelque chose d’aussi
encapsule un comportement (i.e., fin qu’un objet, comme il peut
implémentation) et qui offre une ou représenter un sous-système
plusieurs interfaces publiques complexe
– Partie constituante d’un système qui – Différence entre composant et
peut être remplacée ou/et réutilisée instance de composant
– Élément d’implémentation (un sous- – Composant : vue de haut niveau
système, un fichier exécutable, une d’un élément logiciel qui compose le
classe d’implémentation (i.e., non système (~classe)
abstraite, etc.) muni d’interface(s) – Instance de composant : le
– Chaque composant est le composant effectivement utilisé
représentant d’une ou plusieurs (~objet)
classes qui implémentent un service – Exemples de composants:
à l’intérieur du système • Binaire exécutable
(<<executable>>), bibliotheque
dynamique/statique (<<librairy>>),
6/18
un fichier à interpréter (<<file>>)…
Développer un modèle architectural
Les composants et le principe de séparation des
préoccupations
– La séparation des préoccupation est le principe qui assure l’intégrité
fonctionnelle d’un composant
• Chaque composant réalise une, et seulement une fonction au sein du
système, mais peut néanmoins exposer plusieurs méthodes.
Typiquement, chaque composant est défini par une interface qui
constitue son seul moyen d’interagir avec les autres composants
• L’utilisation d’une interface pour communiquer avec les autres
composants du système facilite la maintenance puisqu’on peut alors en
changer l’implémentation sans affecter les autres composants (induit un
couplage plus faible du composant avec le reste du système)
• Les classes d’un composant devrait être vues comme un patron cohésif
qui implémente la fonctionnalité du composant
7/18
Développer un modèle architectural
Commande
<<provided interfaces>>
EntréeCmdes
PaiementComptes
<<required interface>>
Person
8/18
Développer un modèle architectural
(3) dépendance
AccèsProduit (1) composant
AccèsProduit
Système
d’inventaire
(2) interface
9/18
Développer un modèle architectural
accèsBD
mise à jour
accèsBD
GUI
mise à jour
Réunions_BD
10/18
Développer un modèle architectural
ItemCommandable
<<delegate>>
Assembly :Produit
Compte
11/18
connector
Développer un modèle architectural
Diagramme de composants MVC
12/18
Développer un modèle architectural
13/18
Développer un modèle architectural
Diagramme de déploiement
noeuds
M2:MachineX
Communication
GPS satellite sans fil
S:Serveur
M1:MachineX
C1:Client TCP/IP lien
C2:Client
15/18
Développer un modèle architectural
Machine de Joe:PC
:Planificateur
Admin:MachineHote
mise à jour
:Gestionnaire
GUI Horaires
réservations
Accès_bd
:Réunions_BD 16/18
Développer un modèle architectural
17/18
Parmi les objectifs d’apprentissage