[PDF] LOG4430 : architecture logicielle et conception avancée





Previous PDF Next PDF



Modélisation UML

Concevoir l'architecture d'un logiciel orienté objet Architecture Modèle - Vue - Contrôleur (MVC) ... Ligne de vie et activation.



Modélisation et conception dune plateforme pour linteraction

12 avr. 2013 architecture logicielle composée de plusieurs couches qui permet d'identifier ... se faisait par l'intermédiaire de la ligne de commande.



SUPPORT DE COURS DE GENIE LOGICIEL

22 janv. 2019 1 Cours de Génie Logiciel By Dr. YENDE RAPHAEL Grevisse PhD ... à ne pas employer le terme de « couche » à propos d'une architecture MVC.



Cours de Génie Logiciel (avec exercices résolus) 1ere Année

7: Le développement du logiciel de ligne de produits (Product Line Software) dépend de la Architecture d'application Web utilisant le modèle MVC.



ESI Proposition des programmes du cycle supérieur : Socle commun

UEF2.2.3 – Architectures logicielles . 3ème édition Technip



Architecture matériel et logiciel 2

20 janv. 2010 Architecture MVC. 4. Architecture multi?couches ... Qu'est que la description d'une architecture logicielle ? ... Ligne de données. Physique.



Architecture matériel et logiciel 2

20 janv. 2010 Architecture MVC. 4. Architecture mulÅ?couches ... Qu'est que la descripÅon d'une architecture logicielle ? ... Ligne de données. Physique.



LOG4430 : architecture logicielle et conception avancée

Architecture MVC. 4. Architecture multi-couches La définition de l'architecture logicielle consiste à: ... Ligne de données. Physique une connexion.



Stéphane HUOT Dpt. Informatique Applications interactives

Structure d'une application interactive: le modèle MVC. (1-2h00) Ligne de commande ... o Une architecture logicielle (une manière de structurer.



Cours PHP Accéléré

12 juil. 2022 toute ligne située à l'extérieur d'un bloc PHP ( entre < ?php et ?> ... 4.28 Architecture de type MVC avec PHP ... public function membre().

LOG4430 :

architecture logicielle et conception avancéeYann-Gaël Guéhéneuc

© Guéhéneuc, 2012

Département de génie informatique et de génie logiciel

École Polytechnique de Montréal

Architectures - Partie 1/2

Tiré du cours de Julie Vachon

Conception architecturale1.

Introduction

2.

Modéliser l'architecture avec UML

3.

Éléments architecturaux

2/51 4.

Styles architecturaux

1. Architecture pipeline

2. Architecture avec référentiel de données

3. Architecture MVC

4. Architecture multi-couches

5. Architecture n-niveaux

5.

Développer un modèle architectural

1. Introduction■Qu'est-ce qu'une architecture logicielle ?

- L'architecture d'un logiciel est la structure des structures (modules) d'un système-Elle inclut 3/51

-Elle inclut • Les composants logiciels• Les propriétés externes visibles de ces composants• Les relations entre ces composantsCf. [Bass, Clements, and Kazman (1998)]

Introduction■Qu'est que la description d'une architecture logicielle ? - La définition de l'architecture logicielle consiste à: •Décrire l'organisation générale d'un système et sa 4/51

•Décrire l'organisation générale d'un système et sa décomposition en sous-systèmes ou composants

• Déterminer les interfaces entre les sous-systèmes • Décrire les interactions et le flot de contrôle entre les sous- systèmes • Décrire également les composants utilisés pour implanter les fonctionnalités des sous-systèmes - Les propriétés de ces composants - Leur contenu (e.g., classes, autres composants) - Les machines ou dispositifs matériels sur lesquels ces modules seront déployés Introduction ■Pourquoi développer une architecture logicielle ? - Pour permettre à tous de mieux comprendre le système 5/51 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é

Introduction ■

Utilité d'une architecture logicielle [Garlan 2000] - Compréhension : facilite la compréhension des grands systèmes complexes en donnant une vue de haut-niveau de leur structure et de leurs contraintes. Les motivation des choix de conception sont ainsi mis en évidence 6/51 ainsi mis en évidence - Réutilisation : favorise l'identification des éléments réutilisables, parties de conception, composants, caractéristiques, fonctions ou données communes - Construction : fournit un plan de haut-niveau du développement et de l'intégration des modules en mettant en évidence les composants, les interactions et les dépendances

Introduction ■

Utilité d'une architecture logicielle [Garlan 2000] - Évolution : met en évidence les points où un système peut être modifié et étendu. La séparation composant/connecteur facilite une implémentation du type " plug-and-play »- Analyse : offre une base pour l'analyse plus approfondie de la 7/51

Analyse : offre une base pour l'analyse plus approfondie de la conception du logiciel, analyse de la cohérence, test de conformité,

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

2. Modéliser avec UML ■Les vues (structurelles) d'une architecture logicielle

- Vue logique. Description logique du système décomposé en sous -systèmes (modules + interface) 8/51 en sous -systèmes (modules + interface) • UML : diagramme de paquetages - Vue d'implémentation. Description de l'implémentation (physique) du système logiciel en termes de composants et de connecteurs • UML : diagramme de composants - Vue de déploiement. Description de l'intégration et de la distribution de la partie logicielle sur la partie matérielle • UML: diagramme combiné de composants et de déploiement

Rappel : vues d'un programme

Vue structurelle

(modèle statique)

Vue des cas d'utilisation

Diagramme

de classes

Diagramme

combiné de déploiement/ composants

Diagramme de

composants

Diagramme de

packages 9/51

Vue des cas d'utilisation

(modèle fonctionnel des exigences)Vue du comportement et des interactions (modèle dynamique)

Diagramme de

cas d'utilisation

Diagramme

d'activités

Diagramme

d'états

Diagramme de

communication

Diagramme de

séquence comportementcomportementcomportement interactioninteraction Modéliser l'architecture avec UML■Diagramme de paquetages 10/51 Modéliser l'architecture avec UML■Diagramme de composants 11/51 Modéliser l'architecture avec UML■Diagramme combiné de déploiement/composants 12/51

3. Éléments architecturaux

Comp_A

Comp_B

port connecteur interfacefournie interface requise composant 13/51 Deux ou plusieurs composants interagissent via un connecteur Chaque élément architectural possède une structure et/ou comportement pouvant être décrit par un modèle UML approprié configuration fournie requiseClasse_C dépendance "realisation»

Éléments architecturaux■Composant

- Encapsule un traitement et/ou des données - Encapsule un sous-ensemble de fonctionnalités et/ou de données du système compA 14/51 et/ou de données du système- Restreint l'accès à ce sous-ensemble au moyen d'une interface définie explicitement - Possède des dépendances explicitement définies pour exprimer les contraintes requises par son contexte d'exécution ou sa réalisation

Éléments architecturaux■

Composant

- Unité autonome servant de bloc de construction pour le système - Les composants implémentent typiquement des services spécifiques à l'application- La manifestation concrète d'un composant est appelé artéfact 15/51

La manifestation concrète d'un composant est appelé artéfact (instance du composant déployée sur le matériel)• N'importe quel type de code sur n'importe quel support numérique

• Code source, fichiers binaires, scripts, fichiers exécutables, bases de données, applications, etc. Order

Order.jar

"manifestation» Éléments architecturaux■Interface de composant - Permet à un composant d'exposer les moyens à utiliser pour communiquer avec lui-Types d'interfaces 16/51 -Types d'interfaces• Interface offerte : définit la façon de demander l'accès à un service offert par le composant • Interface requise : définit le type de services (aide) requis par le composant - Une interface est attachée à un port du composant • Port = point de communication du composant • Plusieurs interfaces peuvent être attachées à un même port Éléments architecturaux■Dépendances entre composants - Dépendance = relation entre deux composants - Types de dépendances 17/51 • Un composant peut dépendre d'un autre composant qui lui fournit un service ou une information • Un composant peut dépendre d'une classe qui implémente une partie de son comportement.

Dépendance de réalisation

• Un composant peut dépendre d'un artefact (code source, fichier .jar, etc.) qui l'implante concrètement.

Dépendance de manifestation

Éléments architecturaux■

Connecteur

- Dans les systèmes complexes, les interactions peuvent constituer un enjeu encore plus important que les fonctionnalités des composants individuels-

Définition :

élément architectural qui d

éfinit le type d'interactions

18/51

Définition :

élément architectural qui d

éfinit le type d'interactions

entre les composants et les règles gouvernant ces interactions - Un connecteur relie les ports de deux ou plusieurs composants - Un connecteur décrit un mécanisme de connection indépendant de l'application• Représente un concept abstrait, paramétrable et indépendant des composants spécifiques qu'il relie - Les attributs du connecteurs décrivent ses propriétés comportementales • E.g. sa capacité, le temps de latence, le type d'interaction (binaire/n- aire, asymétrique/symétrique, détails du protocole), etc.

Éléments architecturaux■

Connecteur

- Un connecteur peut avoir un ou plusieurs rôles • Communication :rôle le plus fréquent

• Coordination : contrôle du calcul, de la transmission des données, etc. Orthogonal aux autres rôles

19/51

Orthogonal aux autres rôles• Conversion : permet l'interaction entre composants développés

indépendamment dans des langages différents par exemple • Facilitation : permet l'interaction entre composants conçus pour interragir ensemble. Synchronisation, accès contrôlées aux données partagées, etc. - Selon le(s) rôles qu'il doit remplir et le type de communication souhaitée entre deux composants, choix d'un type • Procedure call (comm + coord) , Data access (comm + conv), Event, Stream, Linkage, Distributor, Arbitrator, Adaptor (conv)

Éléments architecturaux

Type de

connecteurRôleAttributsValeurs d'attributs 20/51

Software Architecture: Foundations, Theory, and Practice; R. N. Taylor, N. Medvidovic, and E. M. Dashofy; © 2008 John Wiley & Sons, Inc.

Exemple d'un diagramme de composants

21/51
Choix d'une architecture ■Choix d'une architecture - Dépend des exigences fonctionnelles et non fonctionnelles du logiciel-Choix favorisant la stabilité : l'ajout de nouveaux 22/51

-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

- Influencé par certains " modèles connus » de décomposition en composants (styles architecturaux) et de mode d'interactions (e.g., orienté objet)

4. Style architecturaux ■Un style architectural

- Est un patron décrivant une architecture logicielle permettant de résoudre un problème particulier-Définit 23/51
-Définit• Un ensemble de composants et de connecteurs (et leur type) • Les règles de configuration des composants et connecteurs (topologie) • Une spécification du comportement du patron • Des exemples de systèmes construits selon ce patron - Constitue un modèle éprouvé et enrichi par l'expérience de plusieurs développeurs • Compréhensibilité, maintenance, évolution, réutilisation, performance, documentation, etc.

Architecture pipeline■

Convient bien aux systèmes de traitement et de transformation de données

Composants = filtre ; Connecteur = canal

- Filtre • Traite 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 24/51
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

- Canal • Unidirectionnel au travers duquel circulent un flot de données (stream). • Synchronisation et utilisation d'un tampon parfois nécessaire pour assurer la bon fonctionnement entre filtre producteur et filtre consommateur - Exemples : application de traitement de texte, de traitement de signaux. Compilateur (analyse lexicale, syntaxique, sémantique) canal de communication

Filtre

synchro Architecture pipeline■Système de traitement du son

Encodeur pour

sortie de microphone 25/51

Filtrer

l'écho

Filtrer

le bruit

Retirer les

fréquences non vocales

Égaliser les

les intervalles dynamiques

Compresser

Transmettre

Recevoir

Décompresser

Encoder la sortie

des haut-parleurs

Encodeur de

bruit ambiant

Architecture pipeline■

Avantages

- Bon pour traitement en lot (batch) - Très flexible - Analyse facilitée : performance, synchronisation, goulot d'étranglement, etc.

D'un point de vue conception

- Diviser pour régner : les filtres peuvent être conçus séparément - Cohésion : les filtres sont un type de cohésion fonctionnelle-

Couplage : les filtres n'ont qu'une

26/51
d'étranglement, etc. - Se prête bien à la décomposition fonctionnelle d'un système

Inconvénients

- Mauvais pour le traitement interactif 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 Architecture avec référentiel de données (shared data)■ Utilisée dans le cas où des données sont partagées et fréquemment échangées entre les composants - Deux types de composants : référentiel de données et accesseur de données •Les référentiels constituent le medium de communication entre les 27/51
•Les référentiels constituent le medium de communication entre les accesseurs - Connecteur : relie un accesseur à un référentiel • Rôle de communication, mais aussi possiblement de coordination, de conversion et de facilitationA A A A A

Référentiel1

Référentiel2

Architecture avec référentiel■Variantes - Style tableau noir : les référentiels sont des agents actifs. Lorsqu'ils reçoivent une données, ils informent tous les accesseurs concernés 28/51

tous les accesseurs concernés- Style référentiel : les référentiels sont passifs. Simple

vocation de stockage. Les composants accède aux référentiels comme ils le désirent - Exemples : application de bases de données, systèmes Web, systèmes centrés sur les données (e.g. système bancaire, système de facturation ,etc.), environnement de programmation Architecture avec référentiel■Environnement de programmation

Compilateur

Analyseur

syntaxiqueAnalyseursémantique

Optimiseur

Analyseur

lexical

Générateur

de code 29/51

Débogueur

Éditeur

syntaxique

Référentiel

Arbre syntaxique

Table de

symboles sémantique Architecture avec référentiel■Avantages - Avantageux pour les applications impliquant des tâches complexes sur les données, nombreuses et changeant souvent. Une fois le référentiel 30/51

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

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) 31/51

Composé de trois types de composants

- Modèle : rassemble des données du domaine, des connaissances du système. Contient les classes dont les instances doivent être vues et manipulées - Vue : utilisé pour présenter/afficher les données du modèle dans l'interface utilisateur - Contrôleur : contient les fonctionnalités nécessaires pour gérer et contrôler les interactions de l'utilisateur avec la vue et le modèle

Architecture Modèle-Vue-Contrôleur

quotesdbs_dbs23.pdfusesText_29
[PDF] 1 Architecture traditionnelle et réhabilitation au Maroc - RehabiMed

[PDF] Le matériel : architecture des ordinateurs - Limuniv-mrsfr

[PDF] Architecture matériel et logiciel 2

[PDF] Architectures Logicielles et Matérielles - Verimag

[PDF] Vers une architecture n-tiers

[PDF] Les réseaux Peer-to-Peer

[PDF] L 'architecture postale - La Poste

[PDF] Partie 1 : Architecture et communications Client/Serveur - Univ Lyon 1

[PDF] Architecture Traditionnelle Méditerranéenne Méthode RehabiMed

[PDF] La fabrication de l architecture en Tunisie indépendante : une

[PDF] l 'architecture traditionnelle en tunisie : l 'habitat rural - RehabiMed

[PDF] Etude d une architecture IP intégrant un lien satellite - OATAO

[PDF] Les règles de classement et d 'archivage des documents d 'entreprise

[PDF] LES RECHERCHES CONCERNANT L ALGERIE - Archives nationales

[PDF] métiers de l 'audiovisuel et du cinéma information et communication