Chapitre 2 - L'architecture Logicielle [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

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  structurer et décomposer de façon logique chaque application en couches  Introduire les notions et concepts de découpage en couches, modules, composants, design patterns et frameworks

Cours Architectures logicielle

grands systèmes complexes en donnant une vue de haut-niveau de leur structure et de leurs contraintes. Les motivations des choix de conception sont ainsi mis en évidence  Réutilisation : favorise l’identification des éléments réutilisables, parties de conception, composants, caractéristiques, fonctions ou données communes. 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 en évidence les composants, les interactions et les dépendances. Elle doit permettre aux développeurs de travailler sur des parties individuelles du système en isolation  Évolution : met en évidence les points où un système peut être modifié et étendu. La séparation composant/connecteur facilite une implémentation du type « plug-and-play» Cours Architectures logicielle

la conception du logiciel, analyse de la cohérence, test de conformité, analyse des dépendances  Gestion : contribue à la gestion générale du projet en permettant aux différentes personnes impliquées de voir comment les différents morceaux du casse-tête seront agencés. L’identification des dépendance entre composants permet d’identifier où les délais peuvent survenir et leur impact sur la planification générale 5

Cours Architectures logicielle

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 système informatique (i.e. matériel et logiciel) en termes de composants et d'organisation de ses fonctions

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

Une analyse fonctionnelle décrit « quoi faire », alors qu’une architecture décrit « comment le faire »

Cours Architectures logicielle

6

Iso 42010::2011: Ingénierie des systèmes et des logiciels — Description de l'architecture

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 fondamentaux ou les propriétés d'un système dans son environnement incarné dans ses composants, leurs relations et dans les principes de sa conception et de son évolution

L’architecture peut être définie par : les concepts fondamentaux ou les propriétés d'un système dans son environnement incarné dans ses composants, leurs relations 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é.

Cours Architectures logicielle

 Comment les identifier/définir.

9

Cours Architectures logicielle

L’Architecture logicielle

L’Architecture logicielle

Pourquoi une architecture logicielle

Relation entre composants

l’architecture définit :  Chaque composant et ses responsabilités  Le rôle spécifique de chaque composant  L’ensemble des composants fonctionnant de concert pour former une application

Le couplage :  Échange d’informations (exécution) La dépendance  Nécessité/inclusion/utilisation  Rapport Cohésion/couplage

Cours Architectures logicielle

11

Cours Architectures logicielle

10

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  2. Par données : les composants échangent de l'information par des méthodes utilisant des arguments (paramètres) de type simple (nombre, String etc.=  3. Par paquet : les composants échangent de l'information par des méthodes utilisant des arguments de type composé (record , classe, structure complexe)  4. Par contrôle : les composants se passent ou modifient leur contrôle par changement d'un drapeau (verrou). Cours Architectures logicielle

un moyen de communication externe (fichier, pipeline, lien de communication).  6. Commun (global) : les composants échangent de l'information via un ensemble de données (variables) commun.  7. Par contenu (interne) : les composants échangent de l'information en lisant et écrivant directement dans leurs espaces de données (variables) respectifs. 13

Cours Architectures logicielle

14

L’Architecture logicielle

L’Architecture logicielle

Relation entre composants : dépendance

Relation entre composants : dépendance

relations entre composants :  de prérequis d'inclusion conditionnelle  de post-requis d'inclusion conditionnelle  de hiérarchie d'utilisation (j'utilise, je suis utilisé par)  d'exclusion conditionnelle ;  de suggestion.

Les conditions portent notamment sur :  des versions de paquet (inférieur, supérieur ou compris entre deux limites) ;  des choix alternatifs (choisir parmi un ensemble de paquets offrant les mêmes fonctionnalités) ;  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

L’Architecture logicielle

L’Architecture logicielle

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

Relation entre composants : communication

Cours Architectures logicielle

19

18

 Communication synchrone  Communication asynchrone     

Pipes et filtres Abstraction des DATA Communication entre couches Invocation implicite entrepôts 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

L’Architecture logicielle

L’Architecture logicielle

Communication: les pipes et les filtres Exemple 2: génération de code source

Communication: Communication entre couches Exemple 1: modèle en oignon

22

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 Exemple 1: modèle en oignon

La Vue 4+1 : les Diagrammes d’UML (2.3)

C’est le cas des JVM

Cours Architectures logicielle

25

L’Architecture logicielle

Cours Architectures logicielle

26

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

L’Architecture logicielle

L’Architecture logicielle

Ou ceci:

Ou ceci:

Cours Architectures logicielle

31

Cours Architectures logicielle

30

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

9