Architecture Logicielle



Documents pareils
MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Chapitre I : le langage UML et le processus unifié

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Cours de Génie Logiciel

Diagrammes de Package, de déploiement et de composants UML

Les diagrammes de modélisation

UML (Paquetage) Unified Modeling Language

Analyse,, Conception des Systèmes Informatiques

Architecture d'entreprise : Guide Pratique de l'architecture Logique

RAPPORT DE CONCEPTION UML :

Université de Bangui. Modélisons en UML

IFT2255 : Génie logiciel

Rational Unified Process

Les Architectures Orientées Services (SOA)

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Annexe : La Programmation Informatique

Exchange Server 2013 Préparation à la certification MCSE Messaging - Examen

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Sommaire. Conduite de projet Méthode d analyse et de conception. Processus unifié. Objectifs d un processus de développement

SITE WEB E-COMMERCE ET VENTE A DISTANCE

Le Guide Pratique des Processus Métiers

Diagramme de classes

Brique BDL Gestion de Projet Logiciel

Cours en ligne Développement Java pour le web

Environnements de Développement

Messagerie asynchrone et Services Web

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Conception, architecture et urbanisation des systèmes d information

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

CESI Bases de données

et Groupe Eyrolles, 2006, ISBN :

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Projet Active Object

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Patrons de Conception (Design Patterns)

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Mise en œuvre des serveurs d application

Les stratégies de groupe (GPO) sous Windows Server 2008 et 2008 R2 Implémentation, fonctionnalités, dépannage [2ième édition]

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

WEA Un Gérant d'objets Persistants pour des environnements distribués

Architectures web/bases de données

Conception des systèmes répartis

Préparer la synchronisation d'annuaires

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Master CCI. Compétences Complémentaires en Informatique. Livret de l étudiant

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

Systèmes d information et bases de données (niveau 1)

Refonte front-office / back-office - Architecture & Conception -

NOUVEAUTES de Microsoft Dynamics CRM 2011 REF FR 80342A

Guide de la documentation des produits BusinessObjects XI

Architecture distribuée

Qu'est-ce que le BPM?

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Introduction au génie logiciel

INTRODUCTION AUX TESTS DE PERFORMANCE ET DE CHARGE

Comment booster vos applications SAP Hana avec SQLSCRIPT

Citrix XenApp 7.5 Concepts et mise en oeuvre de la virtualisation d'applications

Master Informatique et Systèmes. Architecture des Systèmes d Information. 03 Architecture Logicielle et Technique

Devenez un véritable développeur web en 3 mois!

CAHIER DE S CHARGE S Remote Workload Manager

Plan de notre intervention 1. Pourquoi le test de charge? 2. Les différents types de tests de charge 1.1. Le test de performance 1.2.

BES WEBDEVELOPER ACTIVITÉ RÔLE

Master MIDO 2ème année. Spécification et Conception en UML Maude Manouvrier

IBM Business Process Manager

WINDOWS AZURE ET LES ÉDITEURS DE LOGICIELS

CQP Développeur Nouvelles Technologies (DNT)

Module 0 : Présentation de Windows 2000

Architecture Orientée Service, JSON et API REST

Méthodes de Conception Orientés Objet (MCOO) SOMMAIRE

Information utiles. webpage : Google+ : digiusto/

Fiche Technique Windows Azure

Fiche Technique. Cisco Security Agent

Conception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA (d'après A.-M. Hugues) màj 17/04/2007

Environnement logiciel open source pour la création d œuvres artistiques interactives

Urbanisation des systèmes d information

Business Process Modeling (BPM)

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

Description de la formation

Dynamic Computing Services solution de backup. White Paper Stefan Ruckstuhl

Bien architecturer une application REST

WEB15 IBM Software for Business Process Management. un offre complète et modulaire. Alain DARMON consultant avant-vente BPM

Catalogue des formations Edition 2015

Le cloud computing au service des applications cartographiques à haute disponibilité

Introduction MOSS 2007

Cloud Computing : Utiliser Stratos comme PaaS privé sur un cloud Eucalyptus

Windows Azure Platform Développez, déployez et administrez pour le Cloud Microsoft

Formation en Logiciels Libres. Fiche d inscription

La version 3.0 de Corman S

Architectures n-tiers Intergiciels à objets et services web

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Introduction aux concepts d ez Publish

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Joomla! Création et administration d'un site web - Version numérique

BTS MUC Le système d information commerciale dans l épreuve d ACRC

Transcription:

Architecture Logicielle Chapitre 3: UML pour la description et la documentation d une architecture logicielle Année universitaire 2013/2014 Semestre 1

Rappel 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 propriétés visibles et leurs relations, 2

Rappel L architecture d un système est sa conception de haut niveau. N importe quel système complexe est composé de sous-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 il entretiennent. L architecture d un système est le résultat de ce processus. 3

Rappel L architecture implique plusieurs choix dont les technologies, les produits et les serveurs a utiliser. Il n y a pas une architecture unique permettant de réaliser le système, il y a plusieurs, Le concepteur ou l'architecte tâchera de choisir la meilleure architecture selon plusieurs critères dont la nature de projet, les compétences de l équipe, les budgets, et outils disponibles, etc. 4

Représentation des architectures Il existe plusieurs représentations graphiques des architectures. Une des représentations les plus utilisées est la représentation C&C: Composant 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 graphes et des connecteurs. 5

Composants Un composant est un module logiciel ou un entrepôt de données. 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 interface). Les architectures utilisent des composants standards: Serveurs, Base de données, application, clients, etc 6

Serveurs et Clients Un serveur est un module logiciel qui reponds aux requêtes d autres modules appelés clients. 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 serveur http répond aux requêtes des clients qui sont les navigateurs Web. 7

Application Une application est un module logiciel qui a un rôle défini dans le système logiciel. Par exemple, une application d envoi de mails. 8

Base de données Une base de données est un entrepôt stockant les données sous un format normalisé. L interrogation et la modification des données se fait en utilisant un langage spéciale SQL. SQL server, Oracle,Mysql, sont des SGBD connus sur le marché. 9

Vue C&C 10

Connecteurs Le connecteur modélise une interaction entre deux composants. Un connecteur peut modéliser une interaction simple (appel de procédure) ou une interaction complexe ( par exemple utilisation d un protocole comme http) 11

Exemple site JSP 12

Vue physique et Vue logique La vue logique d une architecture logiciel définit les principaux composants d une architecture sans se soucier des détails physiques (équipements, machines, etc). La vue physique s intéressent au déploiement physique les 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. 13

Vue physique et Vue logique 14

Vue physique et Vue logique 15

Utilisation de l architecture Donne un aperçu de haut niveau qui va faciliter la communication et la compréhension. Aide a 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 en remplaçant uniquement le sous système désiré. 16

UML pour la description et la documentation d une architecture logicielle

UML pour la description et la documentation d une architecture logicielle Diagrammes Structurels ou Diagrammes statiques (Structure Diagram) Diagramme de classes (Class diagram): il représente les classes intervenant dans le système Diagramme d'objets (Object diagram): il sert à représenter les instances de classes (objets) utilisées dans le système Diagramme de composants (Component diagram): il permet de montrer les composants du système d'un point de vue physique, tels qu'ils sont mis en oeuvre (fichiers, bibliothèques, bases de données...) Diagramme de déploiement: il sert à représenter les éléments matériels (ordinateurs, périphériques, réseaux, systèmes de stockage...) et la manière dont les composants du système sont répartis sur ces éléments matériels et interagissent avec eux Diagramme des paquetages (Package Diagram): permet de représenter la hiérarchie des paquetages du projet, leur organisation et leurs interdépendances, simplifie les diagrammes (donc plus simple à comprendre) Diagramme de structures composites (Composite Structure Diagram) : permet de décrire la structure interne d'un objet complexe lors de son exécution (c'est à dire, décrire l'exécution du programme), dont ses points d'interaction avec le reste du système 18

UML pour la description et la documentation d une architecture logicielle Diagrammes Comportementaux ou Diagrammes dynamiques (Behavior Diagram) Diagramme des cas d'utilisation (Use case diagram): il décrit les possibilités d'interaction entre le système et les acteurs, c'est-à-dire toutes les fonctionnalités que doit fournir le système Diagramme états-transitions (State Machine Diagram): il montre la manière dont l'état du système (ou de sous-parties)est modifié en fonction des événements du système Diagramme d'activité (Activity Diagram): variante du diagramme d'états-transitions, il permet de représenter le déclenchement d'événements en fonction des états du système et de modéliser des comportements parallélisables (multithreads ou multi-processus) Diagramme d'interactions (Interaction Diagram): Diagramme de séquence (Sequence Diagram): la représentation séquentielle du déroulement des traitements et des interactions entre les éléments du système et/ou des acteurs. Diagramme de communication (Communication Diagram): la représentation simplifiée d'un diagramme de séquence se concentrant sur les échanges de messages entre les objets Diagramme global d'interaction (Interaction Overview Diagram): variante du diagramme d'activité où les nœuds sont des interactions, permet d'associer les notations du diagramme de séquence à celle du diagramme d'activité, ce qui permet de décrire une méthode complexe Diagramme de temps (Timing Diagram): la représentation des interactions où l'aspect temporel est mis en valeur; il permet de modéliser les contraintes d'interaction entre plusieurs objets, comme le changement d'état en réponse à un évènement extérieur 19

UML pour la description et la documentation d une architecture logicielle Le modèle 4 +1 de Kruchten (1/6) Le modèle de Kruchten dit modèle des 4 + 1 vues est celui adopté dans le Processus unifié. Ici encore, le modèle d'analyse, mentionné vue des cas d'utilisation, constitue le lien et motive la création de tous les diagrammes d'architecture. 20

UML pour la description et la documentation d une architecture logicielle Le modèle 4 +1 de Kruchten (2/6) 1. La vue des cas d'utilisation La vue des cas d'utilisation est un modèle d'analyse formalisé par Ivar Jacobson. Un cas d'utilisation est défini comme un ensemble de scénarios d'utilisation, chaque scénario représentant une séquence d'interaction des utilisateurs (acteurs) avec le système. L'intérêt des cas d'utilisation est de piloter l'analyse par les exigences des utilisateurs. Ceux-ci se sentent concernés car ils peuvent facilement comprendre les cas d'utilisation qui les concernent. Cette méthode permet donc d'aider à formaliser les véritables besoins et attentes des utilisateurs; leurs critiques et commentaires étant les briques de la spécification du système. L'ensemble des cas d'utilisation du logiciel en cours de spécification est représenté par un diagramme de cas d'utilisation, chacun des scénarios de celui-ci étant décrit par un ou plusieurs diagrammes dynamiques : diagrammes d'activités, de séquence, diagrammes de communication ou d'états-transitions. 21

UML pour la description et la documentation d une architecture logicielle Le modèle 4 +1 de Kruchten (2/6) 2. La vue logique La vue logique constitue la principale description architecturale d'un système informatique et beaucoup de petits projets se contentent de cette seule vue. Cette vue décrit, de façon statique et dynamique, le système en termes d'objets et de classes. La vue logique permet d'identifier les différents éléments et mécanismes du système à réaliser. Elle permet de décomposer le système en abstractions et constitue le cœur de la réutilisation. En effet, l'architecte récupérera un maximum de composants des différentes bibliothèques et cadriciels (framework) à sa disposition. Une recherche active de composants libres et/ou commerciaux pourra également être envisagée. La vue logique est représentée, principalement, par des diagrammes statiques de classes et d'objets enrichis de descriptions dynamiques : diagrammes d'activités, de séquence, diagrammes de communication ou d'états-transitions. 22

UML pour la description et la documentation d une architecture logicielle Le modèle 4 +1 de Kruchten (2/6) 3. La vue des processus (comportement) La vue des processus décrit les interactions entre les différents processus, threads (fils d'exécution) ou tâches, elle permet également d'exprimer la synchronisation et l'allocation des objets. Cette vue permet avant tout de vérifier le respect des contraintes de fiabilité, d'efficacité et de performances des systèmes multitâches. Les diagrammes utilisés dans la vue des processus sont exclusivement dynamiques : diagrammes d'activités, de séquence, diagrammes de communication ou d'étatstransitions. 23

UML pour la description et la documentation d une architecture logicielle Le modèle 4 +1 de Kruchten (2/6) 4. La vue de réalisation (implémentation) La vue de réalisation permet de visualiser l'organisation des composants (bibliothèque dynamique et statique, code source...) dans l'environnement de développement. Cette vue permet également de gérer la configuration (auteurs, versions...). Les seuls diagrammes de cette vue sont les diagrammes de composants. 24

UML pour la description et la documentation d une architecture logicielle Le modèle 4 +1 de Kruchten (2/6) 5. La vue de déploiement La vue de déploiement représente le système dans son environnement d'exécution. Elle traite des contraintes géographiques (distribution des processeurs dans l'espace), des contraintes de bandes passantes, du temps de réponse et des performances du système ainsi que de la tolérance aux fautes et aux pannes. Cette vue est fort utile pour l'installation et la maintenance régulière du système. Les diagrammes de cette vue sont les diagrammes de composants et les diagrammes de déploiement. 25

UML et Architecture logicielle Plusieurs formalismes peuvent décrire une architecture logicielle. UML2 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 déploiement permet de servir à représenter la vue physique d une architecture 26

Diagramme de composants Un composant est une unité autonome dans un système. Un composant définit un système ou un sous système de n importe quel taille. 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. 27

Diagramme de composants Montre la répartition physique du code Souvent répartis dans des paquetages Les relations s expriment à travers leurs interfaces et des dépendances 28

Caractéristique d un composant Un composant est une entité modulaire avec des interfaces bien définies. Les interfaces définissent comment le composant peut être appelé ou intégré. L implémentation de composant est cachée aux entités externes. 29

Représentation UML 30

Caractéristique d un composant Un composant à un nom unique. Un composant peut être étendu par un stréotype (subsystem, database, executable, serveur, client, ) 31

Exemples stéréotypes 32

Interfaces Un composant définit l interface en terme d interfaces fournies et d interfaces requises 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 interfaces se fait par une ou plusieurs classes implémentant le composant. Les noms des interfaces commencent par I. Un contrat par C1 et C2 est défini quand C1 fournit une interface I est requise par C2. 33

Interfaces: exemple 34

Interfaces: exemple 35

Interface fournie Une interface fournie définie les fonctions qu un composant pourrait faire. Un exemple: un serveur web peut gérer les requettes HTTP de type get et post. 36

Interface requise Définit la (les) interfaces que un composant attend de son environnement. 37

Assemblage Un assemblage entre deux composants est lorsqu une même interface est requise pour un composant et fournie par l autre 38

Utilisation Un composant C1 dépend d un autre composant C2 lorsque C1 requiert C2 pour son implémentation (C1 appel un des services de C2) En d autres mots, l exécution de C1 requiert la présence de C2. 39

Composition Un composant peut être lui-même composé par d autres composants. On parle alors de composition. Par exemple, le navigateur est composé de GetManager (gestionnaire des requêtes get), PostManager( gestionnaire des requêtes post) et Gui (interface). 40

Délégation Un composant peut avoir des sous-composants qui incluent des interfaces fournies ou des interfaces requises. La délégation consiste a transférer les interfaces/ requises du composant interne vers le composant externe 41

Délégation Exemple 1 Exemple 2 42

Paquets Les paquets peuvent être utilisés dans les diagrammes de composants pour organiser les composants 43

Styles architecturaux 44

Introduction Un style architectural est un modèle définissant comment sera le système. Un style architectural définit quels sont les composants, les connecteurs et les contraintes définissant l architecture d un système. 45

Avantages Un style architectural aide a avoir un aperçu du système avant son développement. Les styles sont indépendants des technologies. Plusieurs technologies peuvent réaliser un certain styles. Facilite la réutilisation. Un système peut s appuyer sur plusieurs styles. 46

Styles standards Pipe / Filtre Client / Serveur 3-tiers/N-tiers Multi-couches MVC Cloud computing 47

Pipe / Filtre Permet à l information d être traitée par plusieurs composants d une manière séquentielle La configuration détermine l ordre de traitement Le filtre est un composant qui traite l information. La pipe est un canal par lequel transite l information. 48

Pipe / Filtre fonctionnement Exemple: Unix shell, Windows Powershell 49

Pipe / Filtre Avantages Forte décomposition du systèmes Filtres facile à réutiliser Facilite la maintenance La dépendance entre les filtres est faible Inconvénients Ne convient pas aux applications à haute interactivité Les performances dépendent des filtres. 50

MVC - définition MVC= Model view Controller Le modèle représente les entités du système Le contrôleur implémente la logique métier et la logique des interactions La vue représente L interface utilisateur 51

MVC-Exemple 52

MVC Avantages Modèle de conception largement apprécié de la communauté des développeurs Séparation de la logique des interfaces Testabilité accrue Inconvénients Assez complexe Plus d effort de développement car chaque tâche concerne trois couches 53

Client-Serveur Le système est composé de deux composants principaux se trouvant généralement dans des machines séparées. Le client envoie des requêtes au serveur Le serveur réagit des requêtes en renvoyant des réponses. L interface est au niveau du client. 54

Exemple 55

Client-Serveur Avantages Séparation des taches Simple à utiliser Inconvénients Souvent insuffisant pour des cas complexe 56

Architecture N-tiers Fragmente le système a plusieurs niveaux Le niveau présentation, le niveau logique ou le niveau données sont des exemples de niveaux Chaque niveau dépend uniquement du niveau qui est supérieur 57

Exemple 58

Architecture N-tiers Avantages Séparation poussée des tâches Haute fléxibilité Inconvénients Nécessite des ressources matérielles importantes 59

SOA- Définition SOA (Service oriented architecture) est une évolution du modèle client serveur SOA est basée sur des services faiblement couplés, indépendants des protocoles, basés sur les standards distribués. Chaque ressources disponible sur le réseau est utilisé comme service. 60

Caractéristique des services Les services sont autonomes Les services sont composables Les services sont réutiulisable Une architecture SAO est basé sur un consommateur de service, un fournisseur de service et un registre de service. Un consommateur utilise le service Un fournisseur assure le service Le registre fait le lien entre le fournisseur et le consommateur 61

Composant SOA 62

Avantages Indépendance et facilité de découverte Permettant l utilisation des application depuis n importe quel équipement 63

Cloud Computing Le Cloud computing est une technologie basé sur internet qui permet de fournir des ressources d une manière évolutive sur internet. Le cloud computing est la base de Saas (software as service) Avec Saas, les utilisateurs ne se soucient plus de l évolution et de la maintenance des logiciels. Le cloud permet aux entreprise une réduction des coûts. 64

Cloud privé Le cloud est dit privé lorque l entrprise decide de mettre en ouvre le cloud dans sa propre infrastruture 65

Diagramme de deploiement 66

Introduction Le diagramme de composant s intéresse à l architecture de point de vue logique tandis que le diagramme de déploiement s y intéresse de point de vue physique. le diagramme de déploiement s intéresse aux relations entre les composants et les équipements Les équipements hébergeant des unités logicielles sont appelés nœuds (nodes) 67

Introduction Le diagramme de déploiement montre la répartition des processus qui composent le système Il est Important dans le cas d architecture distribuée Concepts fondamentaux: Les noeuds : dispositifs capables d héberger une partie du logiciel Les arcs (Connecteurs): liens physiques connectant les noeuds 68

Introduction Le diagramme de déploiement est composé de nœuds et de connecteurs Un nœud représente un équipement dans le système Un connecteur représente une communication entre les nœuds. 69

Nœud Un nœud peut être stéréotypé par: device: pour représenter un équipement hardware execution environement: pour déterminer un environnement ou les processus s exécute. 70

Exemple Un composant réside physiquement dans un nœud L artifact est la manifestation physique d un composant ou tout autre élément physique (document, exécutable, code source.) 71

Exemple Exemple 1 Exemple 2 72

Exemple Exemple 3 73

Lien de communication Exemple 1 Exemple 2 74