Académique Documents
Professionnel Documents
Culture Documents
Conception et maintenance
La conception doit tenir en compte
• les besoins existants
• les besoins à venir
La conception doit faciliter l’adaptation du logiciel aux différents types
changements :
• Changement d’algorithme / de fonctionnalité
• Changement de la représentation des données
• Changement au niveau de la machine abstraite sous-jacente
• Changement au niveau des périphériques
• Changement de l’environnement
• Changements dus au processus de développement
• ...
Modularisation
Modules
Objectif : déterminer la structure modulaire du logiciel à développer
Module : unité fournissant des ressources et/ou des services
Quels sont les modules ?
• S = { M1, M2, ..., Mn }
Relations entre modules :deux types de relations sont utiles pour décrire la
structure d’un système
• Relation « contient » : regroupement en paquetages, classes internes (aussi
agrégation/composition)
• Relation « utilise » : association, agrégation/composition, généralisation, liens
de dépendance
Relation « utilise »
• Mi utilise Mj si Mi requiert la présence de Mj car Mj lui fournit des ressources
ou des services
• Idéalement une hiérarchie :
• Facilite la compréhension de la structure (par niveau d’abstraction)
• Facilite le test unitaire
• Permet de bâtir un système partiel mais fonctionnel
Définit des niveaux d’abstraction
Types d’architectures
Architecture en pipeline
Convient aux systèmes de traitement et de transformation de données
Composants = filtre ; Connecteur = pipe
Filtre est un composant qui traite l’information
• Traitement indépendamment et asynchrone
• Reçoit ses données d’un ou plusieurs canaux d’entrée, effectue la
transformation/traitement des données et envoie les données de sortie produites
sur un ou plusieurs canaux de sorties
• Fonctionnent en concurrence. Chacun traite les données au fur et mesure qu’il
les reçoit
Pipe est un canal par lequel transite l’information
• Unidirectionnel au travers duquel circulent un flot de données (stream).
• Synchronisation et utilisation d’un tampon parfois nécessaire pour assurer le
bon fonctionnement entre filtre producteur et filtre consommateur
Exemples : application de traitement de texte, de traitement de signaux.
Compilateur (analyse lexicale, syntaxique, sémantique)
Variantes
Style tableau noir : les référentiels sont des agents actifs, lorsqu’ils reçoivent
une donnée, ils informent tous les accesseurs concernés
Le tableau noir est le médium de communication avec tous les partenaires, on
ne peut recevoir et transmettre des informations que via le tableau, utile
lorsqu’on ne connaît pas de solution déterministe
Avantages
Avantageux pour les applications impliquant des tâches complexes sur les
données, nombreuses et changeant souvent. Une fois le référentiel bien défini,
de nouveaux services peuvent facilement être ajoutés
Inconvénients
Le référentiel peut facilement constituer un goulot d’étranglement, tant du point
de vue de sa performance que du changement
Encrypter/décrypter un fichier
Modèle-vue-contrôleur (MVC)
• Inventé en 1978 par Trygve Reenskaug (U. Oslo) lors d’une visite à Xerox
PARC
• Problème: permettre à des utilisateurs de contrôler de grands et complexes
ensembles de données avec maximum de flexibilité et de réutilisation possible
Peut être vu comme
• Un patron de conception
• Un type d’architecture
• Un cadre d’applications (framework)
Modèle-vue-contrôleur (MVC)
Le patron Modèle-Vue-Contrôleur, ou MVC, décompose une application en
trois sous-parties :
• 3 niveaux (3-tier)
Types de clients
Clients légers
• Le client est responsable de la présentation uniquement
• Facile à déployer et à maintenir à jour
• Utilise beaucoup de ressources du (des) serveur(s)
• Ex: fureteur web (sans javascript, AJAX, etc)
Clients lourds
• Le client est responsable de la présentation et de la logique d’application
• Utilise les ressources du client de manière plus efficace
• Complexité accrue
• Ex: Guichet bancaire
Variante - peer-to-peer
• Chaque composant joue le rôle à la fois du client et du serveur
• Aucun serveur central
• Modèle hybride : un serveur central conserve l’information au sujet des pairs
• ex: Skype
Avantages
• fiabilité (tolérance aux pannes)
• mise à l’échelle facile (grandit avec le nombre de pairs)
Inconvénients
• complexité, rôle plus lourd des pairs
Variante - Cloud computing
• Cloud computing : le serveur est géré par un fournisseur de service, et
typiquement accessible par internet, exemple : Amazon Web Services (AWS)
Avantages
• Facilité (sécurité, fiabilité, etc.)
• Mise à l’échelle facile
Inconvénient
• Contrôle réduit
Architecture par objets distribués
Elle élimine la distinction entre client et serveur
• Des objets fournissent l’interface pour les services qu’ils fournissent
• D’autres objets appellent ces objets sans distinction logique entre objets clients
et serveurs
Les intergiciels assurent le partage des objets entre les différentes machines
• « Bus » logiciel
• Gestionnaire ORB (Object Request Broker)
Avantages
• Possibilité de retarder certaines décisions:
• Ex: client lourd / léger
• Architecture ouverte à l’ajout de nouvelles ressources
• Flexibilité et extensibilité
• Possibilité de reconfiguration dynamique
• Ex: des objets serveurs se déplacent vers la même machine que des objets
clients qui les utilisent
• Ex: conversion de 2 niveaux à 3 niveaux après déploiement
• Différents standards pour les intergiciels d’objets distribués:
• CORBA (Sun, IBM, HP, etc.), DCOM (Microsoft), Java RMI, …
Interfaces
Interfaces requise : Définit la (ou les interfaces) qu’un composant attend de son
environnement
Assemblage
Un assemblage entre deux composants est lorsqu’une même interface est requise
pour un composant et fournie par l’autre
S EC T ION 2 –
Composition
Un composant peut être lui -même composé 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)
Délégation
Un composant peut avoir des sous-composants qui incluent des interfaces
fournies ou des interfaces requises
La délégation consiste à transférer les interfaces fournies / requises du
composant interne vers le composant externe
Exemple 2
Paquets
Les paquets peuvent être utilisés dans les diagrammes de composants pour
organiser les composants
Composants et classes
Les classes sont « packagées » dans des bibliothèques par exemple une
bibliothèque est un fichier jar (java) ou une assembly dll (.NET)
Le diagramme de composants définit le packaging des classes du système
Le connecteur liant les classes aux composants est le connecteur « realize »
Artifacts
Un artifact est une pièce physique utilisée par le système qui peut être un
document, un fichier, un code 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
Composants et classes
Architecture SOA ou (Service-Oriented Architecture)
SOA est une évolution du modèle client -serveur
SOA est basée sur des services, chaque ressource disponible sur le réseau
est utilisée comme un service
Caractéristiques des services
Les services sont :
faiblement couplés
indépendants des protocoles
basés sur les standards
distribués
Les services sont autonomes
Les services sont composables : créer un service à partir d’autres services
Les services sont réutilisables
Les services permettent leur découverte
Composants de SOA
Une architecture SOA est basée sur un consommateur de service, un
fournisseur de service et un registre de services (Service Broker)
Le consommateur utilise le service
Le fournisseur assure le service
Le registre fait le lien entre le fournisseur et le consommateur
Composants de SOA
SOA Technologies
Deux tendances permettent d’implémenter SOA : SOAP /WSDL / UDDI ou
REST
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
SOA – Avantages
Indépendance et facilité de découverte
Permettent à l’utilisation des applications depuis n’importe quel équipement
(PC, mobile, etc…)
SOA – Exemples
Google Search Engine (web + application android + application iOs)
Youtube (web + application android + application WP7 +application
blackberry + application iOs)
Facebook (web + applications mobiles)
Diagramme de 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
entre les relations
entre les composants et les équipements
appelés noeuds
(nodes)
Le diagramme de déploiement est composé de noeuds et de connecteurs
o Un noeud représente un équipement dans le système
o Un connecteur représente une communication entre les Nœuds
Dans UML 2, un noeud est illustré comme ceci :
Dans UML, un noeud peut aussi avoir un stéréotype pour préciser la nature du
nœud : «cdrom», «computer», «disk array», «pc», «pc client», «pc server»,
«secure», «server», «storage», «unix server», «user pc» sont des exemples de
stéréotypes
Deux stéréotypes très utilisés : « device » et « execution environment »
Le stéréotype « device » représente un équipement hardware
environnement où les processus s’exécutent : par exemple un
framework ou un système d’exploitation
dans « Serveur »
Lien de communication
Le lien de communication est une association entre les
noeuds modélisation la communication entre ces noeuds