SlideShare une entreprise Scribd logo

Génie Logiciels : Introduction aux architectures

Une présentation introd

1  sur  99
Télécharger pour lire hors ligne
COURS IGL

                        COURS 6
              INTRODUCTION AUX                    Cours 6 :

               ARCHITECTURES DE                   Architectures
                                                  de logiciels

                       LOGICIELS



Mostefai Mohammed Amine – m_mostefai@esi.dz
Batata Sofiane – s_batata@esi.dz              1
Cours 6 – Introduction Aux
                                            OBJECTIFS DU COURS
   Architectures de Logiciels


      Objectifs du cours

 Présenter la notion d’architecture logicielle
 Donner un aperçu des principaux styles architecturaux




                                                                 Cours IGL, Copyright © 2011, ESI
 Découvrir le lien entre l’architecture et le déploiement
  physique à travers le diagramme de déploiement




                                                             2
INTRODUCTION
                                     Section 2 :   AU GÉNIE
    Section 1 :                                    LOGICIEL
                                   Diagramme de
   Introduction                                    Cours 6
                                    composants     Introduction
                                                   aux
                                                   architectures
                                                   logicielles
  Section 2 :                        Section 5 :
    Styles                         Diagramme de
architecturaux                      déploiement
                                                         3




Cours IGL, Copyright © 2011, ESI
COURS IGL

                                            Cours N° 6
                                            Introduction
                 Section 1 : Introduction   aux
                                            architectures
                                            logicielles




                                                  4




Cours IGL, Copyright © 2011, ESI
Cours 6 – Introduction Aux                   SECTION 1 -
   Architectures de Logiciels                 INTRODUCTION


           Définition

 L’architecture d’un programme ou d’un système
  informatique est la structure (ou les structures) du
  système qui comprend les éléments logiciels, leurs




                                                                  Cours IGL, Copyright © 2011, ESI
  propriétés visibles et leur relations




                                                              5
Cours 6 – Introduction Aux                SECTION 1 -
   Architectures de Logiciels              INTRODUCTION


         Introduction

 L’architecture d’un système est sa conception de haut
  niveau




                                                               Cours IGL, Copyright © 2011, ESI
 N’importe quel système complexe est composé de s ous-
  systèmes qui interagissent entre eux
 La conception de haut niveau est le processus qui
  consiste à identifier ces sous-systèmes ainsi que les
  relations qu’ils entretiennent entre eux
 L’architecture d’un système est le résultat de ce
  processus




                                                           6

Recommandé

L Architecture Logicielle En Pratique
L Architecture Logicielle En PratiqueL Architecture Logicielle En Pratique
L Architecture Logicielle En PratiqueFrançois Trudel
 
Cours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vieCours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vieMohammed Amine Mostefai
 
Introduction au génie logiciel
Introduction au génie logicielIntroduction au génie logiciel
Introduction au génie logicielMohamed Diallo
 
Cours1_Architecture_Logicielle.ppt
Cours1_Architecture_Logicielle.pptCours1_Architecture_Logicielle.ppt
Cours1_Architecture_Logicielle.pptSylia3
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiersHeithem Abbes
 
Methodes de gestion de projets - introduction au processus unifié
Methodes de gestion de projets - introduction au processus unifiéMethodes de gestion de projets - introduction au processus unifié
Methodes de gestion de projets - introduction au processus unifiéMireille Blay-Fornarino
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionLilia Sfaxi
 

Contenu connexe

Tendances

Cycles de vie d'un logiciel
Cycles de vie d'un logicielCycles de vie d'un logiciel
Cycles de vie d'un logicielRabia AZIZA
 
2.2 cycles de vie
2.2 cycles de vie2.2 cycles de vie
2.2 cycles de vieHarun Mouad
 
Rapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRouâa Ben Hammouda
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UMLAmir Souissi
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Erradi Mohamed
 
Cycle de développement du logiciel
Cycle de développement du logicielCycle de développement du logiciel
Cycle de développement du logicielMajid CHADAD
 
Uml 2 pratique de la modélisation
Uml 2  pratique de la modélisationUml 2  pratique de la modélisation
Uml 2 pratique de la modélisationNassim Amine
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceLilia Sfaxi
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Heithem Abbes
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Sofien Benrhouma
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 
Chp2 - Cahier des Charges
Chp2 - Cahier des ChargesChp2 - Cahier des Charges
Chp2 - Cahier des ChargesLilia Sfaxi
 

Tendances (20)

Cycles de vie d'un logiciel
Cycles de vie d'un logicielCycles de vie d'un logiciel
Cycles de vie d'un logiciel
 
2.2 cycles de vie
2.2 cycles de vie2.2 cycles de vie
2.2 cycles de vie
 
Cours Génie Logiciel - Introduction
Cours Génie Logiciel - IntroductionCours Génie Logiciel - Introduction
Cours Génie Logiciel - Introduction
 
Rapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learning
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
Modèle en cascade
Modèle en cascadeModèle en cascade
Modèle en cascade
 
Cours Génie Logiciel 2016
Cours Génie Logiciel 2016Cours Génie Logiciel 2016
Cours Génie Logiciel 2016
 
Cycle de développement du logiciel
Cycle de développement du logicielCycle de développement du logiciel
Cycle de développement du logiciel
 
Uml 2 pratique de la modélisation
Uml 2  pratique de la modélisationUml 2  pratique de la modélisation
Uml 2 pratique de la modélisation
 
Chp4 - Diagramme de Séquence
Chp4 - Diagramme de SéquenceChp4 - Diagramme de Séquence
Chp4 - Diagramme de Séquence
 
Chp1 intro conception
Chp1 intro conceptionChp1 intro conception
Chp1 intro conception
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
Rapport Projet De Fin D'étude Développent d'une application web avec Symfony2
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
cycle de vie
cycle de vie cycle de vie
cycle de vie
 
Chp4 - UML
Chp4 - UMLChp4 - UML
Chp4 - UML
 
Génie Logiciel : les tests
Génie Logiciel : les testsGénie Logiciel : les tests
Génie Logiciel : les tests
 
Chp2 - Cahier des Charges
Chp2 - Cahier des ChargesChp2 - Cahier des Charges
Chp2 - Cahier des Charges
 
Modele rapport pfe esprit
Modele rapport pfe  espritModele rapport pfe  esprit
Modele rapport pfe esprit
 
Génie Logiciel - Cours 5 - analyse
Génie Logiciel - Cours 5 - analyseGénie Logiciel - Cours 5 - analyse
Génie Logiciel - Cours 5 - analyse
 

Similaire à Génie Logiciels : Introduction aux architectures

A SIMPLIFIED APPROACH FOR QUALITY.pdf
A SIMPLIFIED APPROACH FOR QUALITY.pdfA SIMPLIFIED APPROACH FOR QUALITY.pdf
A SIMPLIFIED APPROACH FOR QUALITY.pdfBabacarDIOP48
 
Cours chapitre2 2012
Cours chapitre2 2012Cours chapitre2 2012
Cours chapitre2 2012Yves Caseau
 
Introduction au Génie Logiciel
Introduction au Génie LogicielIntroduction au Génie Logiciel
Introduction au Génie Logicielguest0032c8
 
Présentation cours UML.pptx
Présentation  cours UML.pptxPrésentation  cours UML.pptx
Présentation cours UML.pptxPrinceLankoand
 
Introduction à Sysml
Introduction à SysmlIntroduction à Sysml
Introduction à SysmlYassine SIDKI
 
informatique_logiquarchitecture_applicative
informatique_logiquarchitecture_applicativeinformatique_logiquarchitecture_applicative
informatique_logiquarchitecture_applicativeNarjes Weslati
 
Adaptation Dynamique Concepts et Expérimentations
Adaptation Dynamique Concepts et ExpérimentationsAdaptation Dynamique Concepts et Expérimentations
Adaptation Dynamique Concepts et ExpérimentationsMadjid KETFI
 
TP N1 Initiation à lutilisation.docx
TP N1 Initiation à lutilisation.docxTP N1 Initiation à lutilisation.docx
TP N1 Initiation à lutilisation.docxSouadZid
 
Composants Adaptables au dessus d'OSGi
Composants Adaptables au dessus d'OSGiComposants Adaptables au dessus d'OSGi
Composants Adaptables au dessus d'OSGiMadjid KETFI
 
Prototype rapport
Prototype rapportPrototype rapport
Prototype rapportInes Ouaz
 
Livre LabVIEW 2015 : Programme et Applications
Livre LabVIEW 2015 : Programme et ApplicationsLivre LabVIEW 2015 : Programme et Applications
Livre LabVIEW 2015 : Programme et ApplicationsLuc Desruelle
 
Livre LabVIEW : Programmation et applications
Livre LabVIEW : Programmation et applicationsLivre LabVIEW : Programmation et applications
Livre LabVIEW : Programmation et applicationsLuc Desruelle
 

Similaire à Génie Logiciels : Introduction aux architectures (20)

A SIMPLIFIED APPROACH FOR QUALITY.pdf
A SIMPLIFIED APPROACH FOR QUALITY.pdfA SIMPLIFIED APPROACH FOR QUALITY.pdf
A SIMPLIFIED APPROACH FOR QUALITY.pdf
 
2-Composants.docx
2-Composants.docx2-Composants.docx
2-Composants.docx
 
Cours chapitre2 2012
Cours chapitre2 2012Cours chapitre2 2012
Cours chapitre2 2012
 
Introduction au Génie Logiciel
Introduction au Génie LogicielIntroduction au Génie Logiciel
Introduction au Génie Logiciel
 
Eclipse Impress
Eclipse ImpressEclipse Impress
Eclipse Impress
 
Présentation cours UML.pptx
Présentation  cours UML.pptxPrésentation  cours UML.pptx
Présentation cours UML.pptx
 
Cy35558564
Cy35558564Cy35558564
Cy35558564
 
Lecon 1.1
Lecon 1.1Lecon 1.1
Lecon 1.1
 
Introduction à Sysml
Introduction à SysmlIntroduction à Sysml
Introduction à Sysml
 
Architecture .net
Architecture  .netArchitecture  .net
Architecture .net
 
informatique_logiquarchitecture_applicative
informatique_logiquarchitecture_applicativeinformatique_logiquarchitecture_applicative
informatique_logiquarchitecture_applicative
 
Adaptation Dynamique Concepts et Expérimentations
Adaptation Dynamique Concepts et ExpérimentationsAdaptation Dynamique Concepts et Expérimentations
Adaptation Dynamique Concepts et Expérimentations
 
TP N1 Initiation à lutilisation.docx
TP N1 Initiation à lutilisation.docxTP N1 Initiation à lutilisation.docx
TP N1 Initiation à lutilisation.docx
 
Composants Adaptables au dessus d'OSGi
Composants Adaptables au dessus d'OSGiComposants Adaptables au dessus d'OSGi
Composants Adaptables au dessus d'OSGi
 
Prototype rapport
Prototype rapportPrototype rapport
Prototype rapport
 
Livre LabVIEW 2015 : Programme et Applications
Livre LabVIEW 2015 : Programme et ApplicationsLivre LabVIEW 2015 : Programme et Applications
Livre LabVIEW 2015 : Programme et Applications
 
Livre LabVIEW : Programmation et applications
Livre LabVIEW : Programmation et applicationsLivre LabVIEW : Programmation et applications
Livre LabVIEW : Programmation et applications
 
cours2diagStatiq.pdf
cours2diagStatiq.pdfcours2diagStatiq.pdf
cours2diagStatiq.pdf
 
Objecteering
ObjecteeringObjecteering
Objecteering
 
Chp1 intro conception
Chp1 intro conceptionChp1 intro conception
Chp1 intro conception
 

Plus de Mohammed Amine Mostefai

Utilisation de Sharepoint (Collaboration)
Utilisation de Sharepoint (Collaboration)Utilisation de Sharepoint (Collaboration)
Utilisation de Sharepoint (Collaboration)Mohammed Amine Mostefai
 
Utilisation de Sharepoint 2013 - Personnalisation
Utilisation de Sharepoint 2013 - PersonnalisationUtilisation de Sharepoint 2013 - Personnalisation
Utilisation de Sharepoint 2013 - PersonnalisationMohammed Amine Mostefai
 
Utilisation de Sharepoint - Gestion de Documents
Utilisation de Sharepoint - Gestion de DocumentsUtilisation de Sharepoint - Gestion de Documents
Utilisation de Sharepoint - Gestion de DocumentsMohammed Amine Mostefai
 
Utilisation de Sharepoiunt - Introduction
Utilisation de Sharepoiunt - IntroductionUtilisation de Sharepoiunt - Introduction
Utilisation de Sharepoiunt - IntroductionMohammed Amine Mostefai
 

Plus de Mohammed Amine Mostefai (20)

Utilisation de Sharepoint (Collaboration)
Utilisation de Sharepoint (Collaboration)Utilisation de Sharepoint (Collaboration)
Utilisation de Sharepoint (Collaboration)
 
Utilisation de Sharepoint 2013 - Personnalisation
Utilisation de Sharepoint 2013 - PersonnalisationUtilisation de Sharepoint 2013 - Personnalisation
Utilisation de Sharepoint 2013 - Personnalisation
 
Utilisation Sharepoint (Listes)
Utilisation Sharepoint (Listes)Utilisation Sharepoint (Listes)
Utilisation Sharepoint (Listes)
 
Utilisation de Sharepoint - Gestion de Documents
Utilisation de Sharepoint - Gestion de DocumentsUtilisation de Sharepoint - Gestion de Documents
Utilisation de Sharepoint - Gestion de Documents
 
Utilisation de Sharepoiunt - Introduction
Utilisation de Sharepoiunt - IntroductionUtilisation de Sharepoiunt - Introduction
Utilisation de Sharepoiunt - Introduction
 
Pratiques agiles
Pratiques agilesPratiques agiles
Pratiques agiles
 
Introduction à Scrum
Introduction à ScrumIntroduction à Scrum
Introduction à Scrum
 
Méthodes Agiles - La Méthode XP
Méthodes Agiles - La Méthode XPMéthodes Agiles - La Méthode XP
Méthodes Agiles - La Méthode XP
 
Le Manifeste Agile
Le Manifeste AgileLe Manifeste Agile
Le Manifeste Agile
 
Méthodes Agiles - Généralités
Méthodes Agiles - GénéralitésMéthodes Agiles - Généralités
Méthodes Agiles - Généralités
 
Introduction aux technologies mobiles
Introduction aux technologies mobilesIntroduction aux technologies mobiles
Introduction aux technologies mobiles
 
Workflow Foundation - Cours 5
Workflow Foundation - Cours 5Workflow Foundation - Cours 5
Workflow Foundation - Cours 5
 
Workflow Foundation Module 4
Workflow Foundation Module 4Workflow Foundation Module 4
Workflow Foundation Module 4
 
Présentation cloud journée azure
Présentation cloud   journée azurePrésentation cloud   journée azure
Présentation cloud journée azure
 
Wf module3
Wf module3Wf module3
Wf module3
 
Microsoft Workflow Foundation - Cours 2
Microsoft Workflow Foundation - Cours 2Microsoft Workflow Foundation - Cours 2
Microsoft Workflow Foundation - Cours 2
 
Introduction to Workflow Foundation
Introduction to Workflow FoundationIntroduction to Workflow Foundation
Introduction to Workflow Foundation
 
Le Langage CSS
Le Langage CSSLe Langage CSS
Le Langage CSS
 
Sécurisation des applications ASP.NET
Sécurisation des applications ASP.NETSécurisation des applications ASP.NET
Sécurisation des applications ASP.NET
 
Présentation sharepoint 2013
Présentation sharepoint 2013Présentation sharepoint 2013
Présentation sharepoint 2013
 

Génie Logiciels : Introduction aux architectures

  • 1. COURS IGL COURS 6 INTRODUCTION AUX Cours 6 : ARCHITECTURES DE Architectures de logiciels LOGICIELS Mostefai Mohammed Amine – m_mostefai@esi.dz Batata Sofiane – s_batata@esi.dz 1
  • 2. Cours 6 – Introduction Aux OBJECTIFS DU COURS Architectures de Logiciels Objectifs du cours  Présenter la notion d’architecture logicielle  Donner un aperçu des principaux styles architecturaux Cours IGL, Copyright © 2011, ESI  Découvrir le lien entre l’architecture et le déploiement physique à travers le diagramme de déploiement 2
  • 3. INTRODUCTION Section 2 : AU GÉNIE Section 1 : LOGICIEL Diagramme de Introduction Cours 6 composants Introduction aux architectures logicielles Section 2 : Section 5 : Styles Diagramme de architecturaux déploiement 3 Cours IGL, Copyright © 2011, ESI
  • 4. COURS IGL Cours N° 6 Introduction Section 1 : Introduction aux architectures logicielles 4 Cours IGL, Copyright © 2011, ESI
  • 5. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Définition  L’architecture d’un programme ou d’un système informatique est la structure (ou les structures) du système qui comprend les éléments logiciels, leurs Cours IGL, Copyright © 2011, ESI propriétés visibles et leur relations 5
  • 6. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Introduction  L’architecture d’un système est sa conception de haut niveau Cours IGL, Copyright © 2011, ESI  N’importe quel système complexe est composé de s ous- systèmes qui interagissent entre eux  La conception de haut niveau est le processus qui consiste à identifier ces sous-systèmes ainsi que les relations qu’ils entretiennent entre eux  L’architecture d’un système est le résultat de ce processus 6
  • 7. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Introduction  L’architecture implique plusieurs choix dont les technologies, les produits et les serveurs à utiliser Cours IGL, Copyright © 2011, ESI  Il n’y a pas une architecture unique permettant de réaliser le système, il y en a plusieurs.  Le concepteur ou l’architecte tâchera de choisir la meilleure architecture possible selon plusieurs critères dont la nature du projet, les compétences de l’équipe, les budgets et outils disponibles, …etc . 7
  • 8. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Représentation des architectures  Il existe plusieurs représentations graphiques des architectures Cours IGL, Copyright © 2011, ESI  Une des représentations les plus utilisées est la représentation C&C : Composants et Connecteurs  Un composant est un module logiciel (application, bibliothèque, module, …etc.) ou un entrepôt de données (base de données, système de fichiers, …etc.)  Le connecteur représente les interactions entre les composants  La représentation C&C est un graphe contenant des composants et des connecteurs 8
  • 9. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Composants  Un composant est un module logiciel ou un entrepôt de données Cours IGL, Copyright © 2011, ESI  Un composant est identifié par son nom qui indique son rôle dans le système  Les composants communique entre eux en utilisant des ports (ou interfaces)  Les architectures utilisent des composants standards : serveurs, bases de données, application, clients, …etc. 9
  • 10. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Serveurs et clients  Un serveur est un module logiciel qui répond aux requêtes d’autres modules appelés clients Cours IGL, Copyright © 2011, ESI  Généralement, les services et les clients sont hébergés dans des machines différentes et communiquent via le réseau (intranet / internet)  Par exemple, le service http répond aux requêtes des clients qui sont les navigateurs web 10
  • 11. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Application  Une application est un module logiciel qui a un rôle défini dans le système logiciel Cours IGL, Copyright © 2011, ESI  Par exemple, une application d’envoi de mails 11
  • 12. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Base de données  Une base de données est un entrepôt stockant les données sous un format normalisé Cours IGL, Copyright © 2011, ESI  L’interrogation et la modification des données se fait en utilisant un langage spécial appelé SQL  La plupart des bases de données obéissent au modèle relationnel  Un SGBD (Système de Gestion de Base de Données) est une base de données puissante et accessible sur le réseau conçue généralement pour les gros systèmes  SQL Server, Oracle, MySQL, PostgreSQL sont des exemples de SGBD connus sur le marché 12
  • 13. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Vue C&C Client Serveur Cours IGL, Copyright © 2011, ESI Base de données Application 13
  • 14. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Connecteurs  Le connecteur modélise une interaction entre deux composants Cours IGL, Copyright © 2011, ESI  Un connecteur peut modéliser une interaction simple (appel de procédure) ou une interaction complexe (par exemple utilisation d’un protocole comme http) 14
  • 15. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Exemple – Site JSP Cours IGL, Copyright © 2011, ESI JDBC Serveur web SGBD MySQL Navigateur 15
  • 16. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Vue Physique et Vue Logique  La vue logique d’une architecture logicielle définit les principaux composants d’une architecture sans se soucier des détails physiques (équipements, machines, Cours IGL, Copyright © 2011, ESI …etc.)  La vue physique s’intéresse au déploiement physique des différents services  La vue physique est peu précise lors de la conception. Elle devient concrète lors de la phase de déploiement. 16
  • 17. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Vue Physique et Vue Logique  Exemple 1 : services déployés dans le même serveur Serveur 1 Cours IGL, Copyright © 2011, ESI JDBC Serveur web SGBD MySQL Navigateur 17
  • 18. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Vue Physique et Vue Logique  Exemple 2 : services déployés dans des serveurs différents Serveur 1 Serveur 2 Cours IGL, Copyright © 2011, ESI JDBC Serveur web SGBD MySQL Navigateur 18
  • 19. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION Utilisation de l’architecture  Donne un aperçu de haut niveau du système qui va faciliter la communication et la compréhension Cours IGL, Copyright © 2011, ESI  Aide à comprendre des systèmes existants  Décompose le système en sous-systèmes et sous-modules ce qui réduit la complexité et facilite la distribution des tâches  Facilite l’évolution du système en remplaçant uniquement le sous-système désiré 19
  • 20. Cours 6 – Introduction Aux SECTION 1 - Architectures de Logiciels INTRODUCTION UML et les architectures logicielles  Plusieurs formalismes peuvent décrire une architecture logicielle Cours IGL, Copyright © 2011, ESI  UML 2 est un bon moyen de représenter une architecture logicielle  Le diagramme de composants peut servir à représenter la vue logique d’une architecture  Le diagramme de déploiement peut servir à représenter la vue physique d’une architecture 20
  • 21. COURS IGL Cours N° 6 Section 1 : Introduction, Introduction aux débat (05 mns) architectures logicielles 21 Cours IGL, Copyright © 2011, ESI
  • 22. COURS IGL Cours N° 6 Section 2 : Diagramme de Introduction aux composants architectures logicielles 22 Cours IGL, Copyright © 2011, ESI
  • 23. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Composant  Un composant est une unité autonome dans un système  Un composant définit un système ou un sous-système de Cours IGL, Copyright © 2011, ESI n’importe quelle taille ou complexité  Les diagrammes de composants permettent de modéliser les composants et leurs interactions  Les composants d’un système sont facilement réutilisés ou remplacés 23
  • 24. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Caractéristiques d’un composant  Un composant est une unité modulaire avec des interfaces bien définies Cours IGL, Copyright © 2011, ESI  Les interfaces définissent comment le composant peut être appelé ou intégré  Le composant est remplaçable et autonome  L’implémentation du composant est cachée (encapsulée) aux entités externes 24
  • 25. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Représentation UML Cours IGL, Copyright © 2011, ESI Composant 25
  • 26. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Caractéristiques d’un composant  Un composant a un nom unique dans son contexte  Un composant peut être étendu par un stéréotype Cours IGL, Copyright © 2011, ESI  Il existe des stéréotypes standard pour les composants comme « subsytem », « database » ou « executable »  L’utilisateur peut ajouter ses propres stéréotypes à condition que ça soit consistant avec l’objectif du diagramme  Dans le cadre d’architectures logicielle, ces stéréotypes peuvent être utilisés : « service », « client », … etc. 26
  • 27. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Exemples de stéréotypes Cours IGL, Copyright © 2011, ESI «service» «client» «database» «subsystem» Composant1 Composant2 Composant3 Composant4 27
  • 28. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Interfaces  Un composant définit son comportement en terme d’interfaces fournies et interfaces requises Cours IGL, Copyright © 2011, ESI  Une interface est une collection d’opérations ayant un lien sémantique et qui n’ont pas d’implémentation  L’implémentation des interface se fait par une ou plusieurs classes implémentant le composant  Les noms d’interfaces commencent par « I » (convention)  Un contrat entre C1 et C2 est défini quand C1 fournit une interface I qui est requise par C2 28
  • 29. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Interfaces - Exemple Cours IGL, Copyright © 2011, ESI «interface» IEmployeeManager + getEmployeeById(int) : Employee + addEmployee(Employee) : void 29
  • 30. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Interfaces - Exemple Nom de l’interface Cours IGL, Copyright © 2011, ESI «interface» IEmployeeManager + getEmployeeById(int) : Employee + addEmployee(Employee) : void Opérations 30
  • 31. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Interfaces fournie  Une interface fournie définie les fonctions qu’un composant pourrait faire  Exemple : un serveur web peut gérer les requêtes HTTP de Cours IGL, Copyright © 2011, ESI type get ou post IGet ServeurWeb IPost 31
  • 32. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Interfaces requise  Définit la (ou les interfaces) qu’un composant attend de son environnement Cours IGL, Copyright © 2011, ESI Navigateur IGet IPost 32
  • 33. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Assemblage  Un assemblage entre deux composants est lorsqu’une même interface est requise pour un composant et fournie par l’autre Cours IGL, Copyright © 2011, ESI get «client» «service» Navigateur ServeurWeb 33
  • 34. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Utilisation  Un composant C1 dépend d’un autre composant C2 lorsque C1 requiert C2 pour son implémentation (C1 appelle un des services de C2) Cours IGL, Copyright © 2011, ESI  En d’autres mots, l’exécution de C1 requiert la présence de C2 Component1 Component2 «use» 34
  • 35. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Composition  Un composant peut être lui-même composé d’autres composants. On parle alors de composition. Cours IGL, Copyright © 2011, ESI  Par exemple, le navigateur est composé de getManager (gestionnaire des requêtes get), postManager (gestionnaire des requêtes POST) et GUI (interface) 35
  • 36. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Composition «client» Cours IGL, Copyright © 2011, ESI Navigateur getManager postManager «use» «use» «UI» GUI 36
  • 37. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Délégation  Un composant peut avoir des sous -composants qui incluent des interfaces fournies ou des interfaces requises Cours IGL, Copyright © 2011, ESI  La délégation consiste à transférer les interfaces fournies / requises du composant interne vers le composant externe 37
  • 38. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Délégation «client» Navigateur Cours IGL, Copyright © 2011, ESI getManager IGet «delegate» IGet IPost postManager «delegate» IPost 38
  • 39. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Délégation – Exemple 2 «client» «service» Cours IGL, Copyright © 2011, ESI Navigateur Serveur «delegate» IGet getManager serverGetManager IGet IGet «delegate» IGet IPost IPost postManager «delegate» serverPostManager «delegate» IPost IPost 39
  • 40. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Paquets  Les paquets peuvent être aussi utilisés dans les diagrammes de composants pour organiser les composants Cours IGL, Copyright © 2011, ESI 40
  • 41. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Paquets «database» BDD Cours IGL, Copyright © 2011, ESI DataAccess «use» «use» EmployeeAccess SalaryAccess «use» «use» Presentation EmployeeView SalaryView 41
  • 42. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Composants et classes  Les classes sont « packagées » dans des bibliothèques  Par exemple une bibliothèque est un fichier jar (java) ou Cours IGL, Copyright © 2011, ESI une assembly dll (.NET)  Le diagramme de composants définit aussi le packaging des classes du système  Le connecteur liant les classes aux composants est le connecteur « realize » 42
  • 43. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Artifacts  Un artifact est une pièce physique utilisée par le système  Un artifact peut être un document, un fichier, un code Cours IGL, Copyright © 2011, ESI source ou n’importe quel élément ayant une relation avec le système  La dépendance avec le stéréotype « manifest » indique qu’un artifact est la représentation physique d’un composant.  Par exemple, un fichier jar est une représentation physique d’une classe java 43
  • 44. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Artifacts Cours IGL, Copyright © 2011, ESI 44
  • 45. SECTION 2 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels COMPOSANTS Composants et classes Cours IGL, Copyright © 2011, ESI 45
  • 46. COURS IGL Cours N° 6 Section 2 : Diagramme de Introduction aux composants, débat (05 mns) architectures logicielles 46 Cours IGL, Copyright © 2011, ESI
  • 47. COURS IGL Cours N° 6 Section 3 : Styles Introduction aux architecturaux architectures logicielles 47 Cours IGL, Copyright © 2011, ESI
  • 48. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Introduction  Un style architectural est un modèle définissant comment sera le système Cours IGL, Copyright © 2011, ESI  Comme les systèmes ont des points communs, ces systèmes auront des architectures qui se ressemblent. Le regroupement de ces architectures est appelé « style architectural »  Un style architectural définit quels sont les composants, les connecteurs et les contraintes définissant l’architecture d’un système 48
  • 49. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Bénéfices d’un style architectural  Un style architectural aide à avoir un aperçu du système avant son développement Cours IGL, Copyright © 2011, ESI  Le styles sont indépendants des technologies.  Plusieurs technologies peuvent réaliser un certain style. Par exemple des serveur sous Linux et des clients sous Windows.  Facilite la réutilisation  Un système peut s’appuyer sur plusieurs styles 49
  • 50. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Styles standards  Il existe plusieurs standards  Les styles standards les plus connus sont « pipe / filtre », Cours IGL, Copyright © 2011, ESI « client/serveur », « 3 tiers / N-tiers », « architecture multi-couches », « MVC », « cloud computing » 50
  • 51. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Pipe / Filtre - Définition  Permet à l’information d’être traitée par plusieurs composants d’une manière séquentielle Cours IGL, Copyright © 2011, ESI  La configuration détermine l’ordre des traitements  Le filtre est un composant qui traite l’information  La pipe est un canal par lequel transite l’information 51
  • 52. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Pipe / Filtre - Définition Cours IGL, Copyright © 2011, ESI pipe pipe «application» «application» «application» filtre1 filtre2 filtre3 52
  • 53. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Pipe / Filtre - Fonctionnement SourceDeDonnées «application» pipe1 «application» filtre1 filtre2 Cours IGL, Copyright © 2011, ESI lire() traiter() ecrire() lire() traiter() 53
  • 54. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Pipe / Filtre - Exemples  Unix Shell  Windows Powershell Cours IGL, Copyright © 2011, ESI  Unix Shell : cat fichier.txt | grep logiciel | wc : compte le nombre de mots logiciel dans le fichier fichier.txt 54
  • 55. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Pipe / Filtre - Avantages  Forte décomposition du systèmes  Filtres faciles à réutiliser Cours IGL, Copyright © 2011, ESI  Facilite la maintenance  La dépendance entre les filtres est faible 55
  • 56. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Pipe / Filtre - Inconvénients  Ne convient pas aux applications à haute interactivité  Les performances dépendent des pipes Cours IGL, Copyright © 2011, ESI 56
  • 57. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX MVC - Définition  MVC = Model View Controller  Le modèle représente les entités du système Cours IGL, Copyright © 2011, ESI  Le contrôleur implémente la logique métier et la logique des interactions  La vue représente l’interface utilisateur 57
  • 58. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX MVC - Exemple Vue HTML Cours IGL, Copyright © 2011, ESI Controleur Controller::CMSHandler Modèle Model::Page Model::Blog 58
  • 59. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX MVC - Exemples  .NET : ASP.NET MVC, MonoRail  Java : JavaServer Faces (JSF), Struts Cours IGL, Copyright © 2011, ESI  Ruby On Rails  Python : Zope 59
  • 60. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX MVC - Avantages  Modèle de conception largement apprécié de la communauté de développeurs Cours IGL, Copyright © 2011, ESI  Séparation de la logique de l’interface  Testabilité accrue (les tests unitaires supportent le modèle et le contrôleur) 60
  • 61. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX MVC - Inconvénients  Assez complexe  Plus d’efforts de développement car chaque tâche Cours IGL, Copyright © 2011, ESI concerne les trois couches 61
  • 62. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Client-Serveur - Définition  Le système est composé de deux composants principaux se trouvant généralement dans des machines séparées : le client et le serveur Cours IGL, Copyright © 2011, ESI  Le client envoie des requêtes au serveur  Le serveur réagit au requêtes en renvoyant des réponses  L’interface utilisateur se trouve au niveau du client 62
  • 63. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Client-Serveur – Fonctionnement «service» Cours IGL, Copyright © 2011, ESI serveur requête réponse «client» client 63
  • 64. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Client-Serveur - Exemples  Serveur web (IIS / Apache), Client web ( FireFox / Chrome / Internet Explorer) Cours IGL, Copyright © 2011, ESI  Serveur FTP (ftpd) / Client FTP (FileZilla) 64
  • 65. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Client-Serveur - Exemples client FTP serveur FTP Cours IGL, Copyright © 2011, ESI demanderFichier() trouverFichier() :File 65
  • 66. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Client-Ser veur – Avantages et inconvénients AVANTAGES  Séparation des tâches Cours IGL, Copyright © 2011, ESI  Simple à utiliser INCONVÉNIENTS  Souvent insuffisant pour des cas complexes 66
  • 67. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Architecture N-Tiers - Définition  Fragmente le système en plusieurs niveaux  Le niveau présentation, le niveau logique ou le niveau Cours IGL, Copyright © 2011, ESI données sont des exemples de niveaux  Chaque niveau dépend uniquement du niveau qui est au dessus  Exemple : applications web modernes 67
  • 68. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Architecture N-Tiers - Exemple «database» BDD Cours IGL, Copyright © 2011, ESI «service» interpréteur «service» serveur web «client» client 68
  • 69. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Architecture N-Tiers - Exemple «client» «service» «service» «database» client serveur web interpréteur BDD Cours IGL, Copyright © 2011, ESI get(url) invoquer() executerSQL() :resultats formaterResultats() :HTML :HTML 69
  • 70. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX N-Tiers – Avantages et inconvénients AVANTAGES  Séparation poussée des tâches Cours IGL, Copyright © 2011, ESI  Haute flexibilité INCONVÉNIENTS  Nécessite des ressources matérielles importantes 70
  • 71. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX SOA - Définition  SOA ou (Service-Oriented Architecture) est une évolution du modèle client-serveur Cours IGL, Copyright © 2011, ESI  SOA est basée sur des services faiblement couplés, indépendants des protocoles, basés sur les standards et distribués  Chaque ressource disponible sur le réseau est utilisée comme un service 71
  • 72. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Caractéristiques des services  Les service sont autonomes  Les services sont composables : créer un service à partir Cours IGL, Copyright © 2011, ESI d’autres services  Les services sont réutilisables  Les services permettent leur découverte 72
  • 73. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Composants de SOA  Une architecture SOA est basé sur un consommateur de service, un fournisseur de service et un registre de services (Service Broker) Cours IGL, Copyright © 2011, ESI  Le consommateur utilise le service  Le fournisseur assure le service  Le registre fait le lien entre le fournisseur et le consommateur 73
  • 74. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Composants de SOA «service» registre Cours IGL, Copyright © 2011, ESI «use» «use» «client» «client» consommateur fournisseur contrat 74
  • 75. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX SOA – Technologies  Deux tendances permettent d’implémenter SOA : SOAP / WSDL / UDDI ou REST Cours IGL, Copyright © 2011, ESI  SOAP est un protocole basé sur XML permettant de véhiculer des données via HTTP en utilisant XML  WSDL permet de décrire un service web  UDDI permet de découvrir un service web  SOAP / WSDL / SOAP sont utilisées conjointement  REST est un protocole basée sur HTTP uniquement  Dans REST, HTTP est le protocole de transmission et aussi le service web en même temps 75
  • 76. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX SOA – Avantages  Indépendance et facilité de découverte  Permettent à l’utilisation des applications depuis Cours IGL, Copyright © 2011, ESI n’importe quel équipement (PC, mobile, etc…) 76
  • 77. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX SOA – Exemples  Google Search Engine (web + application android + application iOs) Cours IGL, Copyright © 2011, ESI  Youtube (web + application android + application WP7 + application blackberry + application iOs)  Facebook (web + applications mobiles) 77
  • 78. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Cloud Computing  Le Cloud Computing est une technologie basée sur internet qui permet de fournir des ressources d’une manière évolutive sur internet Cours IGL, Copyright © 2011, ESI  Le Cloud Computing décharge le client de l’infrastructure IT puisqu’elle fournit le matériel et l’infrastructure  Le Cloud Computing est la base du SaaS (Software As A Service)  Avec le SaaS, les utilisateurs ne se soucient plus de l’évolution et de la maintenance des logiciels 78
  • 79. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Cloud Computing  Le Cloud Computing permet aux entreprises une réduction des coûts car le client ne paye que le stockage et l’utilisation des processeurs Cours IGL, Copyright © 2011, ESI  Une structure basée sur le cloud est théoriquement infaillible car lorsque les serveurs actuels ne peuvent plus répondre à la demande, un nouveau serveur virtuel est automatiquement créé 79
  • 80. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Cloud Computing - Infrastructures  Google AppEngine  Amazon Cours IGL, Copyright © 2011, ESI  Windows Azure 80
  • 81. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Cloud privé  Le cloud est dit privé lorsqu’une entreprise décide de mettre en œuvre le cloud dans sa propre infrastructure IT Cours IGL, Copyright © 2011, ESI 81
  • 82. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX SaaS basés sur le cloud  Office 365  Google Documents Cours IGL, Copyright © 2011, ESI 82
  • 83. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX SaaS basés sur le cloud  Office 365  Google Documents Cours IGL, Copyright © 2011, ESI 83
  • 84. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Avantages  Idéal lorsqu’une entreprise ne veut pas (ou ne peut pas) se charger de l’infrastructure IT Cours IGL, Copyright © 2011, ESI  Peut répondre à n’importe quelle charge  Evolution instantanée des SaaS (pas de besoin de redéploiement) 84
  • 85. Cours 6 – Introduction Aux SECTION 3 – STYLES Architectures de Logiciels ARCHITECTURAUX Inconvénients  Grosses problématiques de sécurité : le client ne sait pas où sont ses données et si elles sont vraiment sécurisées Cours IGL, Copyright © 2011, ESI 85
  • 86. COURS IGL Cours N° 6 Section 4 : Diagramme de Introduction aux déploiement architectures logicielles 86 Cours IGL, Copyright © 2011, ESI
  • 87. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENT Introduction  Le diagramme de composants s’intéresse à l’architecture d’un point de vue logique tandis que le diagramme de déploiement s’y intéresse d’un point de vue physique Cours IGL, Copyright © 2011, ESI  Le diagramme de déploiement s’intéresse aux relations entre les relations entre les composants et les équipements  Les équipements hébergeant des unités logicielles sont appelés nœuds (nodes) 87
  • 88. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENT Introduction  Le diagramme de déploiement est composé de nœuds et de connecteurs Cours IGL, Copyright © 2011, ESI  Un nœud représente un équipement dans le système  Un connecteur représente une communication entre les noeuds 88
  • 89. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENT Noeud  Dans UML 2, un nœud est illustré comme ceci : Cours IGL, Copyright © 2011, ESI Noeud 89
  • 90. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENT Nœud  Dans UML, un nœud peut aussi avoir un stéréotype pour préciser la nature du nœud  «cdrom», «cd-rom», «computer», «disk array», «pc», «pc Cours IGL, Copyright © 2011, ESI client», «pc server», «secure», «server», «storage», «unix server», «user pc» sont des exemples de stéréotypes  Deux stéréotypes très importants : « device » et « execution environment »  Le stéréotype « device » représente un équipement hardware  Le stéréotype « execution environment » détermine un environnement où les processus s’exécutent : par exemple un framework ou un système d’exploitation  Les nouds peuvent être imbriqué 90
  • 91. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENT Nœud - Exemple Cours IGL, Copyright © 2011, ESI «device» «device» PC Toshiba Serveur HP Pavillon «executionEnvironment» «executionEnvironment» Windows 7 Linux Ubuntu «executionEnvironment» «executionEnvironment» .NET Framework Java Runtime 91
  • 92. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENT Nœuds, composants et artifacts  Un composant réside physiquement dans un nœud  L’artifact est la manifestation physique d’un composant Cours IGL, Copyright © 2011, ESI où tout autre élément physique (document, exécutable, code source,…) 92
  • 93. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENT Exemple 1  Les composants Listener et Diagnostic sont hébergés dans « Serveur » «device» Cours IGL, Copyright © 2011, ESI Serveur Listener Diagnostic 93
  • 94. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENT Exemple 2  Les composants Listener et Diagnostic sont hébergés dans « Serveur ». Les artifastc représentent les exécutables associés Cours IGL, Copyright © 2011, ESI 94
  • 95. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENT Lien de communication  Le lien de communication est une association entre les nœuds modélisation la communication entre ces nœuds Cours IGL, Copyright © 2011, ESI 95
  • 96. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENT Lien de communication - Exemple «device» «device» Serveur PC Client Cours IGL, Copyright © 2011, ESI +1 0..* tcp tcp 1 1 «network» réseau local 96
  • 97. SECTION 4 – Cours 6 – Introduction Aux DIAGRAMME DE Architectures de Logiciels DÉPLOIEMENT Exemple d’architecture N/Tiers Cours IGL, Copyright © 2011, ESI «device» «device» PC Client Serveur BDD Serveur Application Application web «database» TCP HTTP BDD «executable» Navigateur Serveur web 97
  • 98. COURS IGL Cours N° 6 Section 4 : Diagramme de Introduction déploiement, débat (05 aux architectures mns) logicielles 98 Cours IGL, Copyright © 2011, ESI
  • 99. Cours 6 – Introduction aux BIBLIOGRAPHIE architectures de logiciels Bibliographie  UML Component Diagrams, Veronica Carrega, 2004  Introduction to Software Architecture”David Garlanand Cours IGL, Copyright © 2011, ESI Mary Shaw, January 1994  Analyse, Conception Objet  Diagrammes de déploiement, SIMMO/ENSM.SE, 2002 99