Professional Documents
Culture Documents
Architecture logicielle :
L'architecture informatique dfinit la structuration d'un
quelques lments systme informatique (i.e. matriel et logiciel) en termes
de composants et d'organisation de ses fonctions.
Licence professionnelle IDSE
2012-2013
http://anubis.polytech.unice.fr/iut/2012_2013/lp/idse/gl/management
blay@unice.fr
francois.trudel@aginex.com
universit de Sherbrook
LARCHITECTURE
LOGICIELLE EN
PRATIQUE
1 2
Pourquoi une architecture logicielle [Garlan 2000] Pourquoi une architecture logicielle [Garlan 2000]
Comprhension : facilite la comprhension des grands systmes complexes Comprhension : facilite la comprhension des grands systmes complexes
en donnant une vue de haut-niveau de leur structure et de leurs contraintes. en donnant une vue de haut-niveau de leur structure et de leurs contraintes.
Les motivation des choix de conception sont ainsi mis en vidence Les motivation des choix de conception sont ainsi mis en vidence
Rutilisation : favorise lidentification des lments rutilisables, parties de Rutilisation : favorise lidentification des lments rutilisables, parties de
conception, composants, caractristiques, fonctions ou donnes communes. conception, composants, caractristiques, fonctions ou donnes communes.
Construction : fournit un plan de haut-niveau du dveloppement et de Construction : fournit un plan de haut-niveau du dveloppement et de
lintgration des modules en mettant en vidence les composants, les lintgration des modules en mettant en vidence les composants, les
interactions et les dpendances. Elle doit permettre aux dveloppeurs de interactions et les dpendances. Elle doit permettre aux dveloppeurs de
travailler sur des parties individuelles du systme en isolation travailler sur des parties individuelles du systme en isolation
volution : met en vidence les points o un systme peut tre modifi et volution : met en vidence les points o un systme peut tre modifi et
tendu. La sparation composant/connecteur facilite une implmentation du tendu. La sparation composant/connecteur facilite une implmentation du
type plug-and-play type plug-and-play
Analyse : offre une base pour lanalyse plus approfondie de la conception du Analyse : offre une base pour lanalyse plus approfondie de la conception du
logiciel, analyse de la cohrence, test de conformit, analyse des dpendances logiciel, analyse de la cohrence, test de conformit, analyse des dpendances
Gestion : contribue la gestion gnrale du projet en permettant aux Gestion : contribue la gestion gnrale du projet en permettant aux
diffrentes personnes impliques de voir comment les diffrents morceaux du diffrentes personnes impliques de voir comment les diffrents morceaux du
casse-tte seront agencs. Lidentification des dpendance entre composants casse-tte seront agencs. Lidentification des dpendance entre composants
permet didentifier o les dlais peuvent survenir et leur impact sur la permet didentifier o les dlais peuvent survenir et leur impact sur la
planification gnrale planification gnrale
5 6
Pourquoi une architecture logicielle [Garlan 2000] Pourquoi une architecture logicielle [Garlan 2000]
Comprhension : facilite la comprhension des grands systmes complexes Comprhension : facilite la comprhension des grands systmes complexes
en donnant une vue de haut-niveau de leur structure et de leurs contraintes. en donnant une vue de haut-niveau de leur structure et de leurs contraintes.
Les motivation des choix de conception sont ainsi mis en vidence Les motivation des choix de conception sont ainsi mis en vidence
Rutilisation : favorise lidentification des lments rutilisables, parties de Rutilisation : favorise lidentification des lments rutilisables, parties de
conception, composants, caractristiques, fonctions ou donnes communes. conception, composants, caractristiques, fonctions ou donnes communes.
Construction : fournit un plan de haut-niveau du dveloppement et de Construction : fournit un plan de haut-niveau du dveloppement et de
lintgration des modules en mettant en vidence les composants, les lintgration des modules en mettant en vidence les composants, les
interactions et les dpendances. Elle doit permettre aux dveloppeurs de interactions et les dpendances. Elle doit permettre aux dveloppeurs de
travailler sur des parties individuelles du systme en isolation travailler sur des parties individuelles du systme en isolation
volution : met en vidence les points o un systme peut tre modifi et volution : met en vidence les points o un systme peut tre modifi et
tendu. La sparation composant/connecteur facilite une implmentation du tendu. La sparation composant/connecteur facilite une implmentation du
type plug-and-play type plug-and-play
Analyse : offre une base pour lanalyse plus approfondie de la conception du Analyse : offre une base pour lanalyse plus approfondie de la conception du
logiciel, analyse de la cohrence, test de conformit, analyse des dpendances logiciel, analyse de la cohrence, test de conformit, analyse des dpendances
Gestion : contribue la gestion gnrale du projet en permettant aux Gestion : contribue la gestion gnrale du projet en permettant aux
diffrentes personnes impliques de voir comment les diffrents morceaux du diffrentes personnes impliques de voir comment les diffrents morceaux du
casse-tte seront agencs. Lidentification des dpendance entre composants casse-tte seront agencs. Lidentification des dpendance entre composants
permet didentifier o les dlais peuvent survenir et leur impact sur la permet didentifier o les dlais peuvent survenir et leur impact sur la
planification gnrale planification gnrale
7 8
Pourquoi une architecture logicielle [Garlan 2000] Pourquoi une architecture logicielle [Garlan 2000]
Comprhension : facilite la comprhension des grands systmes complexes Comprhension : facilite la comprhension des grands systmes complexes en
en donnant une vue de haut-niveau de leur structure et de leurs contraintes. donnant une vue de haut-niveau de leur structure et de leurs contraintes. Les
Les motivation des choix de conception sont ainsi mis en vidence motivation des choix de conception sont ainsi mis en vidence
Rutilisation : favorise lidentification des lments rutilisables, parties de Rutilisation : favorise lidentification des lments rutilisables, parties de
conception, composants, caractristiques, fonctions ou donnes communes. conception, composants, caractristiques, fonctions ou donnes communes.
Construction : fournit un plan de haut-niveau du dveloppement et de Construction : fournit un plan de haut-niveau du dveloppement et de
lintgration des modules en mettant en vidence les composants, les lintgration des modules en mettant en vidence les composants, les
interactions et les dpendances. Elle doit permettre aux dveloppeurs de
interactions et les dpendances. Elle doit permettre aux dveloppeurs de
travailler sur des parties individuelles du systme en isolation
travailler sur des parties individuelles du systme en isolation
volution : met en vidence les points o un systme peut tre modifi et
volution : met en vidence les points o un systme peut tre modifi et
tendu. La sparation composant/connecteur facilite une implmentation du
tendu. La sparation composant/connecteur facilite une implmentation du type plug-and-play
type plug-and-play
Analyse : offre une base pour lanalyse plus approfondie de la conception du
Analyse : offre une base pour lanalyse plus approfondie de la conception du logiciel, analyse de la cohrence, test de conformit, analyse des
logiciel, analyse de la cohrence, test de conformit, analyse des dpendances dpendances
Gestion : contribue la gestion gnrale du projet en permettant aux Gestion : contribue la gestion gnrale du projet en permettant aux diffrentes
diffrentes personnes impliques de voir comment les diffrents morceaux du personnes impliques de voir comment les diffrents morceaux du casse-tte
casse-tte seront agencs. Lidentification des dpendance entre composants seront agencs. Lidentification des dpendance entre composants permet
permet didentifier o les dlais peuvent survenir et leur impact sur la didentifier o les dlais peuvent survenir et leur impact sur la planification
planification gnrale gnrale
9 10
LARCHITECTURE
11 12
Rle dun Architecte Logiciel Modle darchitecture
Vue Vue
logique implmentation
diagrammes de classes
diagrammes de composants
diagrammes d'objets
universit de Sherbrook
LARCHITECTURE
LOGICIELLE EN
PRATIQUE
13 14
Pierre-Alain Muller
15 16
Hierarchy
B Permet de visualiser les modules dans lenvironnement de dveloppement.
should be B
Un bon support, le diagramme de composants dUML.
acyclic
A
C
B
A'
C
Circular dependencies make it impossible
to reuse one package without the other.
Reprsentation des vues darchitecture avec UML
Mastering Object Oriented Analysis and Design with UML Pierre-Alain Muller
Copyright 2003 Rational Software, all rights reserved 17
18
Diagramme de composants Modle composants
UML 2.0 Unit modulaire avec des interfaces bien dfinies qui est
remplaable dans son environnement
Unit autonome au sein d'un systme
Offre une vue de haut niveau de larchitecture du
systme A une ou plusieurs interfaces fournies et requises
Utilis pour dcrire le systme dun point de vue Sa partie interne est cache et inaccessible
implmentation Ses dpendances sont conues de telle sorte que le
composant peut tre traite de faon aussi autonome que
Permet de dcrire les composants dun systme et les possible
interactions entre ceux-ci
Illustre comment grouper concrtement et physiquement
les lments (objets, interfaces, etc.) du systme au sein
de modules quon appelle composants
Foutse Khomh
19 20
RechercheClient
Systme de Repositoire
commande Clients
RechercheClient
interface requise composant interfaces offertes
(3) dpendance
AccsProduit (1) composant
Commande AccsProduit
Systme
<<provided interfaces>>
EntreCmdes dinventaire
PaiementComptes (2) interface
<<required interface>>
Personne
Venera Arnaoudova
23 24 Venera Arnaoudova
Exemple de diagramme de dploiement
La vue de dploiement Un diagramme de dploiement propose une vision
statique de la topologie du matriel sur lequel sexcute
le systme
Un diagramme de dploiement montre les associations
(connexions) existant entre les noeuds du systme
Un diagramme de dploiement reprsente la faon dont
dployer les diffrentes lments dun systme Un diagramme de dploiement ne montre pas les
interactions entre les noeuds
Les ressources matrielles et limplantation du logiciel dans
ces ressources
Les lments
Les noeuds
Les modules
Les programmes principaux
25 26
Diagramme de dploiement et
communication Connexion entre noeuds
Exemples de connexion :
C1:Client une connexion Ethernet,
M1:MachineX TCP/IP lien une ligne srie,
C2:Client un bus partag,
27 28
29 30
Exemple http://www.agilemodeling.com/artifacts/deploymentDiagram.htm http://www.agilemodeling.com/artifacts/deploymentDiagram.htm
31 32
35 36
Quelques styles dArchitecture
Styles dArchitecture Logicielle Logicielle
Centr sur les Donnes
Base de donnes
Blackboard
L'architecture logicielle, tout comme l'architecture Flots de Donnes
traditionnelle, peut se catgoriser en styles. Par lots Invocation implicite
Un systme informatique pourra utiliser plusieurs styles Tuyaux et Filtres Oriente vnements
selon le niveau de granularit ou l'aspect du systme Hirarchique Model-View-Controller
souhait.
En couches
37 38
39 40
Rfrentiel
Arbre Table de
syntaxique symboles
diteur
Dbogueur
syntaxique
41
Centre donnes :
avantages et difficults Architecture flots de donnes
Indpendances des clients les uns des autres
on peut ajouter ou retirer des clients Succession de transformations des donnes d'entre.
Mais attention aux optimisations qui crent un couplage Objectifs : rutilisation et volutivit.
fort.
Point aborder:
2 types : squentiel ou pipeline
La cohrence des donnes - synchronisation des lectures /
critures style squentiel : chaque tape s'excute jusqu' la fin
avant la prochaine tape commence
La scurit des donnes, le contrle d'accs Par exemple Tubes UNIX en ligne de commande
Point de dfaillance unique style pipeline : certaines tapes peuvent fonctionner
Passage lchelle (rplication vs complexit) simultanment
43 44
Encoder la sortie
des haut-parleurs
45 46
49 50
Architecture multi-couches
Invocation implicite
Conception et testabilit spare des couches
Cohsion des couches
Leve dun vnement au lieu de linvocation explicite de
Faible couplage et abstraction :
la mthode
les couches infrieures ne devraient rien savoir des couches suprieures
connexions autorises entre couches uniquement via les API "Auditeurs" sinscrivent aux vnements qui les intressent et
les mthodes associes
Rutilisabilit des couches infrieures : des solutions
gnriques rutilisables "Les annonceurs" ne sont pas conscients des effets des
vnements produits : aucune hypothse sur le traitement en
Flexibilit : ajout de nouveaux services construits sur les rponse des vnements
service; une modification affecte au plus les couches
adjacentes. Deux types de connecteurs
- Performances L'invocation est soit explicite ou implicite, en rponse des
- Pas toujours applicables vnements
- Saut entre couches
51 52
56
dtranglement possible Testabilit : il est possible de tester les architectures client / serveur CORBA peuvent tre dcrites
lapplication indpendamment de comme une architecture couches.
linterface
58
61