Vous êtes sur la page 1sur 9

09/03/2017

L’Architecture logicielle
Schéma Urbain

Chapitre 2
L’Architecture logicielle

Cours Architectures logicielle 1

L’Architecture logicielle L’Architecture logicielle


Les Objectifs d’une architecture logicielle Pourquoi une architecture logicielle

 Structurer et concevoir une application à partir de ses  Compréhension : facilite la compréhension des
spécifications fonctionnelles grands systèmes complexes en donnant une vue de
 structurer et décomposer de façon logique chaque haut-niveau de leur structure et de leurs contraintes.
application en couches Les motivations des choix de conception sont ainsi mis
 Introduire les notions et concepts de découpage en en évidence
couches, modules, composants, design patterns et
frameworks  Réutilisation : favorise l’identification des éléments
réutilisables, parties de conception, composants,
caractéristiques, fonctions ou données communes.
Cours Architectures logicielle 3 Cours Architectures logicielle 4

1
09/03/2017

L’Architecture logicielle L’Architecture logicielle


Pourquoi une architecture logicielle Pourquoi une architecture logicielle

 Construction : fournit un plan de haut-niveau du  Analyse : offre une base pour l’analyse plus approfondie de
développement et de l’intégration des modules en mettant la conception du logiciel, analyse de la cohérence, test de
en évidence les composants, les interactions et les
dépendances. Elle doit permettre aux développeurs de conformité, analyse des dépendances
travailler sur des parties individuelles du système en  Gestion : contribue à la gestion générale du projet en
isolation permettant aux différentes personnes impliquées de voir
 Évolution : met en évidence les points où un système peut comment les différents morceaux du casse-tête seront
être modifié et étendu. agencés. L’identification des dépendance entre composants
La séparation composant/connecteur facilite une permet d’identifier où les délais peuvent survenir et leur
implémentation du type « plug-and-play» impact sur la planification générale
Cours Architectures logicielle 5 Cours Architectures logicielle 6

L’Architecture logicielle L’Architecture logicielle


La définition d’une architecture logicielle: La définition d’une architecture logicielle:

L'architecture informatique définit la structuration d'un L’architecture peut être définie par : les concepts
système informatique (i.e. matériel et logiciel) en termes fondamentaux ou les propriétés d'un système dans son
de composants et d'organisation de ses fonctions environnement incarné dans ses composants, leurs
relations et dans les principes de sa conception et de son
Une analyse fonctionnelle décrit « quoi faire », alors évolution
Iso 42010::2011: Ingénierie des systèmes et des logiciels — Description de
qu’une architecture décrit « comment le faire » l'architecture

Cours Architectures logicielle 7 Cours Architectures logicielle 8

2
09/03/2017

L’Architecture logicielle L’Architecture logicielle


La définition d’une architecture logicielle: La définition d’une architecture logicielle:

L’architecture peut être définie par : les concepts L’architecture peut être définie par : les concepts
fondamentaux ou les propriétés d'un système dans son fondamentaux ou les propriétés d'un système dans son
environnement incarné dans ses composants, leurs relations environnement incarné dans ses composants, leurs relations
et dans les principes de sa conception et de son évolution et dans les principes de sa conception et de son évolution

 Le système est composé de composants


 Système  ensemble sous systèmes/ aspects /vues
 L’architecture décrit leur organisation
 Environnement  le système n’est pas isolé.
 Comment les identifier/définir.

Cours Architectures logicielle 9 Cours Architectures logicielle 10

L’Architecture logicielle L’Architecture logicielle


Pourquoi une architecture logicielle Relation entre composants

l’architecture définit : Le couplage :


 Chaque composant et ses responsabilités  Échange d’informations (exécution)
 Le rôle spécifique de chaque composant La dépendance
 L’ensemble des composants fonctionnant de concert  Nécessité/inclusion/utilisation
pour former une application  Rapport Cohésion/couplage

Cours Architectures logicielle 11 Cours Architectures logicielle 12

3
09/03/2017

L’Architecture logicielle L’Architecture logicielle


Relation entre composants : niveaux de couplage Relation entre composants : niveaux de couplage

 1. Sans couplage : les composants n'échangent pas  5. Externe : les composants échangent de l'information par
d'information un moyen de communication externe (fichier, pipeline, lien
 2. Par données : les composants échangent de de communication).
l'information par des méthodes utilisant des arguments
(paramètres) de type simple (nombre, String etc.=  6. Commun (global) : les composants échangent de
 3. Par paquet : les composants échangent de l'information l'information via un ensemble de données (variables)
par des méthodes utilisant des arguments de type composé commun.
(record , classe, structure complexe)  7. Par contenu (interne) : les composants échangent de
 4. Par contrôle : les composants se passent ou modifient l'information en lisant et écrivant directement dans leurs
leur contrôle par changement d'un drapeau (verrou). espaces de données (variables) respectifs.

Cours Architectures logicielle 13 Cours Architectures logicielle 14

L’Architecture logicielle L’Architecture logicielle


Relation entre composants : dépendance Relation entre composants : dépendance

relations entre composants : Les conditions portent notamment sur :


 de prérequis d'inclusion conditionnelle  des versions de paquet (inférieur, supérieur ou compris
 de post-requis d'inclusion conditionnelle entre deux limites) ;
 de hiérarchie d'utilisation (j'utilise, je suis utilisé par)  des choix alternatifs (choisir parmi un ensemble de
 d'exclusion conditionnelle ;
paquets offrant les mêmes fonctionnalités) ;
 de suggestion.  des ordres d'installation.

Cours Architectures logicielle 15 Cours Architectures logicielle 16

4
09/03/2017

L’Architecture logicielle L’Architecture logicielle


Relation entre composants : Les alternatives Relation entre composants : degrés de liaisons
De composants très liés (dépendants/fortement couplés)
 Un système plus cohérent
 Un système plus performant
Mais aussi
 Difficulté d’apporter des changements
 Plus de temps pour le développement et les tests
 Entrave le développement en parallèle

Cours Architectures logicielle 17 Cours Architectures logicielle 18

L’Architecture logicielle L’Architecture logicielle


Relation entre composants : degrés de liaisons Relation entre composants : communication
De composants très liés (dépendants/fortement couplés)
 Un système plus cohérent  Communication synchrone
 Un système plus performant  Communication asynchrone

Mais aussi
 Pipes et filtres
 Difficulté d’apporter des changements
 Abstraction des DATA
 Plus de temps pour le développement et les tests Communication entre couches

 Entrave le développement en parallèle  Invocation implicite
 entrepôts
Cours Architectures logicielle 19 Cours Architectures logicielle 20

5
09/03/2017

L’Architecture logicielle L’Architecture logicielle


Communication: les pipes et les filtres Communication: les pipes et les filtres
Exemple : communication entre client et serveur web

Un filtre définit une étape de la


Communication/de calcul
Les données véhiculent selon un
Ordre séquentiel

Cours Architectures logicielle 21 Cours Architectures logicielle 22

L’Architecture logicielle L’Architecture logicielle


Communication: les pipes et les filtres Communication: Communication entre couches
Exemple 2: génération de code source Exemple 1: modèle en oignon

C’est le cas des O.S par exemple

Cours Architectures logicielle 23 Cours Architectures logicielle 24

6
09/03/2017

L’Architecture logicielle L’Architecture logicielle


Communication: Communication entre couches La Vue 4+1 : les Diagrammes d’UML (2.3)
Exemple 1: modèle en oignon

C’est le cas des JVM

Cours Architectures logicielle 25 Cours Architectures logicielle 26

L’Architecture logicielle L’Architecture logicielle


La Vue 4+1 : La Vue 4+1 :

Vue comportement (behavioral view):


 Diagramme d'états
 Diagramme d'activités
 Diagramme de séquence
 Diagramme de collaboration
 Les diagramme de temps

Vue implémentation (implementation view)


 Diagramme de composants
 Diagrammes de structure composite

Cours Architectures logicielle 27 Cours Architectures logicielle 28

7
09/03/2017

L’Architecture logicielle L’Architecture logicielle


La Vue 4+1 : Elle sert surtout à ne pas arriver à ceci:

Vue logique (structural view)


 Diagramme de classes
 Diagramme d'objets
 Diagrammes de paquets
 diagramme global d'interaction

Vue Déploiement (environment view)


 Diagramme de déploiement

Cours Architectures logicielle 29 Cours Architectures logicielle 30

L’Architecture logicielle L’Architecture logicielle


Ou ceci: Ou ceci:

Cours Architectures logicielle 31 Cours Architectures logicielle 32

8
09/03/2017

L’Architecture logicielle L’Architecture logicielle


Ou ceci: Ou ceci:

Cours Architectures logicielle 33 Cours Architectures logicielle 34

L’Architecture logicielle
Ou ceci:

Cours Architectures logicielle 35

Vous aimerez peut-être aussi