IFT2251 : Génie logiciel



Documents pareils
Architecture matériel et logiciel 2

CORBA. (Common Request Broker Architecture)

Cours Bases de données

Mise en œuvre des serveurs d application

Université de Bangui. Modélisons en UML

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

Compte Rendu d intégration d application

Intégration de systèmes

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

NFP111 Systèmes et Applications Réparties

Patrons de Conception (Design Patterns)

Messagerie asynchrone et Services Web

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

IFT2255 : Génie logiciel

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Module BD et sites WEB

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

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

UML (Paquetage) Unified Modeling Language

Environnements de Développement

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

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

Vérifier la qualité de vos applications logicielle de manière continue

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

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

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

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Nouvelles Plateformes Technologiques

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)

Ré-architecture et migration d une application standalone vers un serveur applicatif multi-tiers dans un contexte JAVA-SAP

Générer du code à partir d une description de haut niveau

Cours en ligne Développement Java pour le web

Architectures web/bases de données

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

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

Évaluation et implémentation des langages

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

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

les techniques d'extraction, les formulaires et intégration dans un site WEB

Chapitre 2 : Abstraction et Virtualisation

SECTION 5 BANQUE DE PROJETS

SITE WEB E-COMMERCE ET VENTE A DISTANCE

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique

Le modèle client-serveur

1.Introduction - Modèle en couches - OSI TCP/IP

Chapitre 2 - Architecture logicielle et construction d applications client-serveur

Analyse,, Conception des Systèmes Informatiques

Bases de données cours 1

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

Chapitre I : le langage UML et le processus unifié

RTDS G3. Emmanuel Gaudin

Information utiles. webpage : Google+ : digiusto/

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

- Couches - Éléments - Domaines - ArchiMate et les techniques du BABOK

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

MEGA ITSM Accelerator. Guide de démarrage

Architectures n-tiers Intergiciels à objets et services web

ANALYSTE PROGRAMMEUR DIPLÔME D ÉTABLISSEMENT

Génie logiciel avec UML. Notions sur le langage UML adapté pour les cours du programme Techniques de l informatique

CQP Développeur Nouvelles Technologies (DNT)

Vulgarisation Java EE Java EE, c est quoi?

1.2 Genèse. 1.3 Version de Designer utilisée

Java pour le Web. Cours Java - F. Michel

Conception, architecture et urbanisation des systèmes d information

UserLock Quoi de neuf dans UserLock? Version 8.5

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

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Le moteur de workflow JBPM

Composants Logiciels. Le modèle de composant de CORBA. Plan

Présentation du PL/SQL

Introduction aux concepts d ez Publish

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Rational Unified Process

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Cursus Sage ERP X3 Outils & Développement. CURSUS Sage ERP X3 Outils & Développement ADVANCED. Outils avancés. 2 jours X3A-ADM. Développement 1 &2

NetCrunch 6. Superviser

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

Formation en Logiciels Libres. Fiche d inscription

Merise. Introduction

Projet Active Object

Description de la formation

LICENCE PROFESSIONNELLE SYSTEMES INFORMATIQUES & LOGICIELS

Groupe Eyrolles, 2004 ISBN :

Administration de systèmes

CH.3 SYSTÈMES D'EXPLOITATION

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

URBANISME DES SYSTÈMES D INFORMATION

Cours CCNA 1. Exercices

Rapport de certification

CESI Bases de données

Qu'est-ce que le BPM?

Air Transat. Contexte. Buts. Défis. Solution. Industry Travelling, Transport

Architecte Logiciel. Unité de formation 1 : Développer en s appuyant sur les modèles et les frameworks 7 semaines

DotNet. Plan. Les outils de développement

Automatisation de l administration système

Transcription:

Julie Vachon, Hiver 2006 IFT2251 : Génie logiciel Chapitre 5. Conception Section 2. Conception architecturale Conception architecturale 1. Architecture logicielle 2. A. Architecture pipeline B. Architecture tableau noir C. Architecture MVC D. Architecture multi-couches E. Architecture n-tiers F. CORBA 3. UML et la modélisation des architectures Diagramme de packages Diagramme de composants Diagrammes de déploiement Chap.5, Sect.2, p.2 Copyrights Julie Vachon, 2006 5.2.1. Architecture logicielle Définition La définition de l architecture logicielle consiste à: Décrire l organisation générale d un système et sa décomposition en sous-systèmes. Déterminer les interfaces entre les sous-systèmes. Décrire les interactions et le flot de contrôle entre les soussystèmes. On décrira également les modules (classes, composants, etc.) utilisés pour implémenter les fonctionnalités des sous-système. Les propriétés des modules Leur contenu (e.g. d autres modules) Les machines ou dispositifs sur lesquels ces modules seront déployés. Architecture logicielle Pourquoi développer un modèle d architecture? Pour permettre à tous de mieux comprendre le système Pour permettre aux développeurs de travailler sur des parties individuelles du système en isolation. Pour préparer les extensions du système. Pour faciliter la réutilisation et la réutilisabilité. Chap.5, Sect.2, p.3 Copyrights Julie Vachon, 2006 Chap.5, Sect.2, p.4 Copyrights Julie Vachon, 2006

Architecture logicielle Choix d une architecture Dépend des besoins fonctionnels et non fonctionnels du logiciel Influencé par certains «modèles connus» de décomposition en composants et mode d interactions. Choix favorisant la stabilité: l ajout de nouveaux éléments sera facile et ne nécessitera en général que des ajustements mineurs à l architecture. Utilité des styles architecturaux (aussi appelés patrons d architecture) Modèle éprouvé et enrichis par l expérience de plusieurs développeurs Mode d interaction établi entre modules via une d interface générique Fournit une plate-forme d intégration pour connecter les différentes sous-parties du logiciel à développer Meilleure qualité du logiciel : compréhensibilité, maintenance, évolubilité, réutilisation, performance, documentation, etc. Architecture logicielle Dimensions d une architecture Une architecture peut être vue sous plusieurs angles Vue logique, organisation conceptuelle (classes, interfaces, paquetages, sous-parties, composants, etc.) Vue de déploiement, organisation physique (allocation de processus aux unités de traitement, configuration réseau, etc.) La décomposition proposée par la vue logique contribuera à définir la distribution de la vue de déploiement Chap.5, Sect.2, p.5 Copyrights Julie Vachon, 2006 Chap.5, Sect.2, p.6 Copyrights Julie Vachon, 2006 7.2.2 A. Architecture pipeline Un flot de données, dans un format relativement simple, passe par une série de processus de traitement. Sous-systèmes organisés en pipeline de filtres indépendants La sortie d un filtre correspond à l entrée d un autre Communication locale (voisins de gauche et de droite), un filtre peut souvent commencer à opérer avant même d avoir lu tout le flux d entrée Utile pour les traitements en plusieurs étapes Analyse facilitée : performance, synchronisation, goulot d étranglement, etc. Exécution concurrente de filtres possible, synchronisation des flux parfois nécessaire. Filtrer l écho Décompresser Architecture pipeline Encodeur pour sortie de microphone Filtrer le bruit Encodeur de bruit ambiant Recevoir Retirer les fréquences non vocales Transmettre Égaliser les les intervalles dynamiques Compresser Filtre canal de communication synchro Chap.5, Sect.2, p.7 Copyrights Julie Vachon, 2006 Encoder la sortie des haut-parleurs Autre ex: Compilation d un programme : analyseur lexical, syntaxique, sémantique Chap.5, Sect.2, p.8 Copyrights Julie Vachon, 2006

Architecture pipeline Avantages: bon pour traitement en lot (batch), architecture très flexible (les composants peuvent être enlevés, remplacés ou réordonnés; de nouveaux composants peuvent être ajoutés) Inconvénient: mauvais pour le traitement interactif. D un point de vue conception: Diviser pour régner: les filtres peuvent être conçus séparément. Cohésion: les filtres présent un type de cohésion fonctionnelle. Couplage: les filtres n ont qu une entrée et une sortie en général. Abstraction: les filtres cachent généralement bien leurs détails internes. Réutilisabilité: les filtres peuvent très souvent être réutilisés dans d autres contextes. Réutilisation: il est souvent possible d utiliser des filtres déjà existants pour les insérer dans le pipeline. B. Le tableau noir (ou repositoire) Tableau noir : médium de communication Communication étendue à tous les partenaires Un des sous-système est désigné comme le tableau noir On ne peut recevoir et transmettre des informations que via le tableau Tableau noir Chap.5, Sect.2, p.9 Copyrights Julie Vachon, 2006 Chap.5, Sect.2, p.10 Copyrights Julie Vachon, 2006 Le tableau noir (ou repositoire) Le tableau noir (ou repositoire) Analyseur syntaxique Analyseur sémantique Débugger Optimiseur Arbre syntaxique Compilateur Repositoire Générateur de code Table de symboles Éditeur syntaxique Analyseur lexical Flot de contrôle dirigé par le repositoire (triggers) ou par les soussystèmes (flots concurrents avec sync via des verrous sur les données) Architecture utilisée par les systèmes centrés sur les données, applications de type SGBD (ex. système bancaire, système de facturation), environnement de programmation, etc. Avantageux pour les applications impliquant des tâches complexes sur les données, nombreuses et changeant souvent. Une fois le repositoire bien défini, de nouveaux services peuvent facilement être ajoutés. Inconvénient: le repositoire peut facilement constituer un goulot d étranglement, tant du point de vue de sa performance que de sa modifiabilité (étant donné le fort couplage!) Chap.5, Sect.2, p.11 Copyrights Julie Vachon, 2006 Chap.5, Sect.2, p.12 Copyrights Julie Vachon, 2006

C. Architecture Modèle-Vue-Contrôleur (MVC) Séparer la couche interface utilisateur des autres parties du système (car les interfaces utilisateurs sont beaucoup plus susceptibles de changer que la base de connaissances du système). Composé de trois types de sous-systèmes: Modèle: Constitue l ensemble des données du domaine, des connaissances du système. Contient les classes dont les instances doivent être vues et manipulées. Vue: Contient les objets utilisés pour présenter/afficher les données du modèle dans l interface utilisateur. Contrôleur: Contient les objets nécessaires pour gèrer et contrôler les interactions de l utilisateur avec la vue et le modèle. Fait appel au design pattern X?? Vus par les acteurs Architecture Modèle-Vue-Contrôleur (MVC) View Modèle notifier changements créer et mettre à jour modifier Contrôleur Reçoit les événements des acteurs Chap.5, Sect.2, p.13 Copyrights Julie Vachon, 2006 Chap.5, Sect.2, p.14 Copyrights Julie Vachon, 2006 Architecture Modèle-Vue-Contrôleur (MVC) Approprié pour les systèmes interactifs, particulièrement ceux impliquant plusieurs vues du même modèle de données. Peut être utilisé pour faciliter la maintenance de la cohérence entre les données distribuées. Désavantage: goulot d étranglement possible. D un point de vue conception: Diviser pour régner: les composants peuvent être conçus assez indépendamment. Cohésion: Meilleure cohésion que si les couches vue et contrôle étaient englobées dans une même couche interface utilisateur. Couplage: Le nombre de canaux de communication entre les 3 composants est minimal. Réutilisabilité: La vue et le contrôle peuvent être conçus à partir de composants déjà existant, développés pour différents types d interaction avec l utilisateur. Flexibilité: Il est facile de changer l interface utilisateur (en changeant la vue et/ou le contrôle). Testabilité: On peut tester l application indépendamment de l interface utilisateur. D. Architecture multi-couches Dans un système par couches (fermé), chaque couche communique uniquement avec la couche immédiatement sous elle. Chaque couche offre un service (serveur) aux couches externes (client) Service créé indépendamment du logiciel ou spécifiquement La conception doit préciser le protocole d interaction entre couches Toutes les couches ont accès à toutes les autres? (système ouvert ou fermé) Une couche n a accès qu aux couches adjacentes? Relation hiérarchique privilégiée Met à profit la notion d abstraction, les couches externes sont plus abstraites (haut niveau) que les couches internes Souvent utilisé pour les systèmes implémentant des protocoles de communication (TCP/IP ) Chap.5, Sect.2, p.15 Copyrights Julie Vachon, 2006 Chap.5, Sect.2, p.16 Copyrights Julie Vachon, 2006

Encrypter/décrypter un fichier 1. Entrée d un mot de passe 2. Obtention d une clef d accès 3. Encryptage/décryptage du fichier 4. Fonctions d encryptage/décryptage Architecture multi-couches 4.. Cryptographie 3. Interface de fichiers 2. Gestion de clefs 1. Authentification Chaque couche a une interface bien définie utilisée par la couche juste au dessus (i.e. interne). La couche supérieure (interne) voit la couche inférieur (externe) comme un ensemble de services. Un système complexe peut être construit en superposant les couches de niveau d abstraction croissant. Il est important d avoir une couche séparée pour l IU. Les couches juste au dessous de l IU offrent les fonctions applicatives définies par les cas d utilisation. Les couches inférieures offrent les services généraux. E.g. communication réseau, accès à la base de données. Chap.5, Sect.2, p.17 Copyrights Julie Vachon, 2006 Architecture multi-couches - fermée Reference Model of Open Systems Interconnection (OSI model) Application Présentation Transformation des données (encryption,etc.) Session Transmission des routing packets Identifier et authentifier une connexion Transport Réseau Transmission des data frames sans erreurs Transmission (point à point) fiable des données Interface matérielle du réseau Ligne de données Physique Chap.5, Sect.2, p.18 Copyrights Julie Vachon, 2006 Architecture multi-couches - ouverte Swing user interface library Application Swing AWT X11 Chap.5, Sect.2, p.19 Copyrights Julie Vachon, 2006 Interface utilisateur Logique applicative Accès au système d exploitation Architecture multi-couches Accès à la base de données Communication réseau Application programs Screen display facilities Kernel (handling processes and swapping User account management File system Chap.5, Sect.2, p.20 Copyrights Julie Vachon, 2006

D un point de vue conception: Architecture multi-couches Diviser pour régner: Les couches peuvent être conçues séparément. Cohésion: Si elles sont bien conçues, les couches présenter une cohésion par couche. Couplage: Des couches inférieures bien conçues ne devraient rien savoir à propos des couches supérieures et les seules connexions autorisées entre couches se font via les API. Abstraction: On n a pas à connaître les détails d implémentation des couches inférieures. Réutilisabilité: Les couches inférieures peuvent être conçues de façon à offrir des solutions génériques réutilisables. Architecture multi-couches Réutilisation: On peut souvent réutiliser des couches développées par d autres et qui proposent le service dont on a besoin. Flexibilité: Il est facile d ajouter de nouveaux services construits sur les services de plus bas niveau ou bien de remplacer une couche supérieure. Anticipation du changement: En isolant les composants dans des couches distinctes, le système devient ainsi plus résistant à la désuétude. Portabilité: Touts les services relatifs à la portabilité peuvent être isolés dans l une des couches inférieures. Testabilité: Les couches peuvent être testées indépendamment. Conception défensive: Les API des couches constituent des endroits stratégiques pour insérer des assertions de vérification. Chap.5, Sect.2, p.21 Copyrights Julie Vachon, 2006 Chap.5, Sect.2, p.22 Copyrights Julie Vachon, 2006 E. Architecture n-parties (n-étages, n-tier) Pour les logiciels distribués Comparable à une architecture par couches dont les couches seraient distribuées. Par abus de langage, la notion de tier a pris le sens de couche distribuée Architecture n-tiers Client-serveur Trois tiers Quatre tiers Architectures n-parties Architecture 2-tiers (client-serveur ou thick client) Architecture 3-tiers (thin client) Navigateur Web Architecture 4-tiers Client Client requête de service Présentation requête de service Logique applicative requête de service de B.D. Logique applicative Serveur Serveurs d application (base de données Données Chap.5, Sect.2, p.23 Copyrights Julie Vachon, 2006 Chap.5, Sect.2, p.24 Copyrights Julie Vachon, 2006

Architecture client-serveur Exemple typique: un système d informations utilisant une base de données centrale. (cas spécial de l architecture du repositoire) Clients: recoivent les données de l utilisateur, initient les transactions, etc. Serveur: Exécute les transaction, assure l intégrité des données, Par abus de langage, la notion de tier a pris le sens de couche distribuée Plusieurs clients peuvent faire affaire avec plusieurs serveurs différents (contrairement à l architecture repositoire ) Une généralisation de l architecture client-serveur: l architecture peer-to-peer. Les sous-systèmes peuvent à la fois être client et serveur. Conception plus difficile: flot de contrôle plus complexe dû à la possibilité de deadlocks Chap.5, Sect.2, p.25 Copyrights Julie Vachon, 2006 <<communication>> Échanger msg Client1 <<communication>> Échanger msg Architecture client-serveur Client2 <<communication>> chercher adresse Serveur <<communication>> Échanger msg <<communication>> chercher adresse Client3 iexplo:webbrowser netscape:webbrowser diro:webserver www.cmu.edu:webserver lynx:webbrowser Chap.5, Sect.2, p.26 Copyrights Julie Vachon, 2006 Architecture 3-tiers Organisation en trois couches: Couche Interface: Composé d objets interfaces (boundary objects) pour interagir avec l utilisateur (fenêtres, formulaires, pages web, etc.) Couche Logique applicative: Comporte tous les objets de contrôles et d entités nécessaire pour faire les traitements, la vérification des règles et les notifications requises par l application. Couche de Stockage: Réalise le stockage, la récupération et la recherche des objets persistants. Avantage p/r à l architecture client-serveur: Permet le développement et la modification de différentes interfaces utilisateurs pour la même logique applicative. Chap.5, Sect.2, p.27 Copyrights Julie Vachon, 2006 Marché de données Architectures typiques Client X Architecture 3-parties Réseau Serveur de B.D. Unix Base de données corporative Client Windows Serveur Serveur de Dépôt de Windows NT B.D. Unix données Logique d affaires Copyrights Julie Vachon, Chap.5, Sect.2, p.28 2006

Interface gestionnaire Gestion des dossiers Base de données clients Architecture 3-tiers Remarque À noter que la tendance veut que la partie cliente soit de plus en plus mince i.e. le client ne fait qu afficher un contenu html La logique applicative est alors responsable de créer les pages web à afficher par le client. Or il serait bon de bien dissocier logique applicative et présentation des données Chap.5, Sect.2, p.29 Copyrights Julie Vachon, 2006 Architecture 4-tiers Architecture 3-tiers dont la couche interface a été décomposée en : Couche Présentation Client: Module logé sur les machines des utilisateurs. (Affichage) Couche Présentation Serveur: Module logé sur un ou plusieurs serveurs. (Création du contenu à afficher) Avantage p/r à l architecture trois tiers: Permet de supporter un grand nombre de formats de présentation différents (propres à chaque client), tout en réutilisant certains des objets de présentation entre les clients. Réduction des redondances Chap.5, Sect.2, p.30 Copyrights Julie Vachon, 2006 Java Server Pages -Page client -Page serveur Interface ATM Interface Web Clients <<submit>> Interface employé de la banque <<build>> <<build>> Architecture 4-tiers Serveur Présentation Serveur <<submit>> <<build>> Gestion opérations bancaires <<submit>> Serveur de base de données Accès base de données comptes clients Architecture N-tiers D un point de vue conception: Diviser pour régner: De façon évidente, les parties client et serveur peuvent être développées séparément. Cohésion: Le serveur peut offrir des services cohésifs au client. Couplage: On retrouve généralement un seul canal de communication entre le client et le serveur, utilisé pour échanger des messages simples. Réutilisation: il est possible de trouver un framework (librairie de composants, interfaces, etc.) adéquat à partir duquel on peut construire de bons systèmes distribués. Toutefois, les systèmes client-serveur dépendent très souvent de nombreuses considérations liées intimement à l application. Flexibilité: Il est assez facile d ajouter de nouveaux clients et serveurs. Portabilité: On peut développer de nouveaux clients pour de nouvelles plateformes sans devoir porter le serveur. Testabilité: On peut tester le client et le serveur indépendamment. Conception défensive: On peut introduire des opérations de vérification dans le code traitant les messages reçus de part et d autre. Chap.5, Sect.2, p.31 Copyrights Julie Vachon, 2006 Chap.5, Sect.2, p.32 Copyrights Julie Vachon, 2006

F. Cadre d application pour composants (CORBA) Plate-forme d intégration de composants hétérogènes Cadre d application pour la réalisation de logiciels distribués ORB (Object Request Broker) Bus qui permet à des clients et à des serveurs de se connecter Les ORB sur différents réseaux peuvent communiquer ensemble IDL (Interface Description Language) Corba facilities Client IDL stub requête Implémentation de l objet (serveur) IDL squeleton Interfaces de domaines ORB Services CORBA (naming, persistence concurrency control, etc). Chap.5, Sect.2, p.33 Copyrights Julie Vachon, 2006 5.2.3 Développer un modèle architectural Commencer par faire une esquisse de l architecture En se basant sur les principaux requis des cas d utilisation; décomposition en sous-systèmes Déterminer les principaux composants requis; Sélectionner un style architectural Raffiner l architecture Identifier les principales interactions entre les composants et les interfaces requises Décider comment chaque donnée et chaque fonctionnalité sera distribuée parmi les différents composants. Déterminer si on peut réutiliser un framework existant (réutilisation) ou si on peut en construire un (réutilisabilité). Considérer chacun des cas d utilisation et ajuster l architecture pour qu il soit réalisable. Détailler l architecture et la faire évoluer. Chap.5, Sect.2, p.34 Copyrights Julie Vachon, 2006 Décrire l architecture avec UML Tous les diagrammes UML peuvent être utiles pour décrire les différents aspects du modèle architectural. Trois des diagrammes UML sont particulièrement utile our décrire une architecture logicielle: Diagramme de packages Diagramme de composants Diagramme de déploiement Diagramme de packages Package:Collection d éléments de modélisation UML (e.g. classes, use cases, etc.) groupés ensemble car liés logiquement. Il faut essayer de maximiser la cohésion au sein de package (éléments liés) et minimiser le couplage entre ceux-ci. Dépendance: Un package est dépendant d un autre s il l utilise SimpleChat Client Common <<import>> OCSF Client Server Chap.5, Sect.2, p.35 Copyrights Julie Vachon, 2006 Chap.5, Sect.2, p.36 Copyrights Julie Vachon, 2006

Diagramme de composants Offre une vue de haut niveau de l architecture du système. Utilisé pour décrire le système d un point de vue implémentation. Permet de décrire les composants d un système et les interactions entre ceux-ci. Illustre comment grouper concrètement et physiquement les éléments (objets, interfaces, etc.) du système au sein de modules qu on appelle composants. Qu est-ce qu un composant? Composant Unité autonome faisant partie d un système ou d un sous-système qui encapsule un comportement (i.e. implémentation) et qui offre une ou plusieurs interfaces publiques. Partie constituante d un système qui peut être remplacée ou/et réutilisée. Élément d implémentation (un sous-système, un fichier exécutable, une classe d implémentation (i.e. non abstraite), etc.) muni d interface(s). Chaque composant est le représentant d une ou plusieurs classes qui implémentent un service à l intérieur du système. Granularité? Un composant peut représenter quelque chose d aussi fin qu un objet, comme il peut représenter un sous-système complexe. Différence entre composant et instance de composant. Composant: Vue haut niveau d un élément logiciel qui compose le système. (~classe) Instance de composant: Le composant effectivement utilisé. (~objet) Exemples de composants: Binaire exécutable (<<executable>>), librairie dynamique/statique (<<librairy>>), un fichier à interpréter (<<file>>), etc. Chap.5, Sect.2, p.37 Copyrights Julie Vachon, 2006 Chap.5, Sect.2, p.38 Copyrights Julie Vachon, 2006 Composant et le principe de séparation des préoccupation La séparation des préoccupation est le principe qui assure l intégrité fonctionnelle d un composant. Chaque composant réalise une, et seulement une fonction au sein du système, mais peut néanmoins exposer plusieurs méthodes. Typiquement, chaque composant est défini par une interface qui constitue son seul moyen d interagir avec les autres composants. L utilisation d une interface pour communiquer avec les autres composants du système facilite la maintenance puisqu on peut alors en changer l implémentation sans affecter les autres composants (induit un couplage plus faible du composant avec le reste du système). Les classes d un composant devrait être être vues comme un patron cohésif qui implément la fonctionnalité du composant. Chap.5, Sect.2, p.39 Copyrights Julie Vachon, 2006 Composants et interfaces - Notation Personne interface requise Commande composant Commande <<provided interfaces>> EntréeCmdes PaiementComptes <<required interface>> Person EntréeCmdes PaiementComptes interfaces offertes Chap.5, Sect.2, p.40 Copyrights Julie Vachon, 2006

Composants et relations notation Une flèche de dépendance permet de mettre en relation des composant via les interfaces requises et celles fournies. Système de commande (2) interface AccèsProduit AccèsProduit RechercheClient Système d inventaire RechercheClient (3) dépendance Repositoire Clients (1) composant Chap.5, Sect.2, p.41 Copyrights Julie Vachon, 2006 Planificateur Composants et relations notation mise à jour mise à jour réservations GUI réservations Gestionnaire d horaires Réunions_BD accèsbd accèsbd Chap.5, Sect.2, p.42 Copyrights Julie Vachon, 2006 Composants Vue de la structure interne Il est parfois utile de pouvoir montrer la structure interne d un composant. EntréeCmdes <<delegate>> :Commande port EntréeCmdes Entête LigneCmde * Magasin Personne :Client Compte Diagramme de composants décrivant une architecture MVC Assembly connector ItemCommandable :Produit <<delegate>> Compte Chap.5, Sect.2, p.43 Copyrights Julie Vachon, 2006 Chap.5, Sect.2, p.44 Copyrights Julie Vachon, 2006

La Bouquinerie Architecture 3-tiers (client plus lourd que dans la version 4-tiers) Architecture 4-tiers (version web, basée sur la technologie JSP) Remarque: Les interfaces n apparaissent pas toutes sur les diagrammes. Construction d un diagramme de composants Suivre l approche présentée à la p.34 tout en respectant les principes de conception, tel que vu jusqu ici (cf. chap. 5.3 pour les détails): Diviser pour régner Cohésion forte Faible couplage Abstraction Réutilisabilité Réutilisation Etc. Chap.5, Sect.2, p.45 Copyrights Julie Vachon, 2006 Chap.5, Sect.2, p.46 Copyrights Julie Vachon, 2006 Diagramme de déploiement Diagramme de déploiement exemple 1 GPS satellite Communication sans fil noeuds M2:MachineX S:Serveur Machine de Joe:PC :Planificateur internet Admin:MachineHote M1:MachineX C1:Client TCP/IP lien mise à jour GUI réservations :Gestionnaire Horaires Accès_bd C2:Client :Réunions_BD Chap.5, Sect.2, p.47 Copyrights Julie Vachon, 2006 Chap.5, Sect.2, p.48 Copyrights Julie Vachon, 2006

Diagramme de déploiement exemple 2 Parmi les objectifs d apprentissage Expliquer les objectifs visés par la conception architecturale. Décrire le fonctionnement et les caractéristiques de chacun des styles architecturaux. Justifier le choix d une architecture pour la réalisation d un logiciel, en tenant compte de ses exigences fonctionnelles et non fonctionnelles. Décrire le modèle d une architecture avec la notation UML. Chap.5, Sect.2, p.49 Copyrights Julie Vachon, 2006 Chap.5, Sect.2, p.50 Copyrights Julie Vachon, 2006