Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parSylviane Busson Modifié depuis plus de 9 années
1
Les architectures Une introduction Hafedh Mili
2
Hafedh Mili Copyright 1999-20042 Plan Introduction Définitions Architectures et critères de qualité de systèmes, Styles architecturaux Architectures pour le lien application - interface
3
Hafedh Mili Copyright 1999-20043 Introduction Client: “J’ai besoin d’un système de commerce électronique pour la vente de mes produits Ingénieur: “Hum… je peux assembler des composantes qui trient, qui gèrent des files, des listes, etc. Client: “Comment ces composantes là vont répondre à mes besoins” Ingénieur: “à un très bas niveau. Il faudra voir comment on va les utiliser”
4
Hafedh Mili Copyright 1999-20044 Architecture (introduction) Le génie logiciel souffre d’un manque de concepts intermédiaires entre objectifs stratégiques et … structures de données L’architecture intègre les exigences fonctionnelles avec les exigences d’affaire d’une organisation
5
Hafedh Mili Copyright 1999-20045 Architectures: une 1ère définition Une architecture est l’expression des premières décisions de conception concernant la décomposition d’un système en parties [Bass, Clements & Kazman,99] L’architecture d’un logiciel définit le logiciel en terme de composantes et d’intéractions entre composantes [Shaw & Garlan, 96]
6
Hafedh Mili Copyright 1999-20046 Architecture: une confluence d’influences Développement et maintenance: faible coût, préserver les emploies Usager final: fonctionnalités, performance, sécurité, fiabilité architecte Client: faible coût d’acquisition, d’opération, et d’évolutrion Marketing: fonctionnalité, faible prix de vente, time-to-market, différentiation
7
Hafedh Mili Copyright 1999-20047 ABC: Architecture Business Cycle [Bass et al., 1999] Client et usager final Organization Environnement technique Expérience de l’architecte Exigences (propriétés) Architecture Systeme
8
Hafedh Mili Copyright 1999-20048 Les influences L’architecture influence la structure organisationnelle de développement et réciproquement Peut influencer le client (sacrifier quelques fonctionnalités pour d’autres qualités) Fait évoluer l’expérience de l’architecte Peut faire évoluer les objectifs stratégiques
9
Hafedh Mili Copyright 1999-20049 Cycle de développement Business case Exigences Concevoir/sélectionner l’architecture Décrire et communiquer l’architecture aux stakeholders (joueurs) Analyser/évaluer l’architecture Implanter le système en se basant sur l’architecture Vérifier que l’implantation est conforme à l’architecture
10
Hafedh Mili Copyright 1999-200410 Comment faire une bonne architecture (processus)? Vision (une personne ou un petit groupe) Exigences techniques claires, et une priorization des propriétés désirées, Bien documentée et bien circulée/communiquée Architecture doit être analysée et évaluée pour propriétés quantitatives (throughput) et qualitatives (ouverture, évolutivité) Doit supporter le développement incrémental à partir d’une skelette
11
Hafedh Mili Copyright 1999-200411 Qu’est ce qu’une bonne architecture? (produit) Fonctionnalité distribuée selon les principes de la “séparation of concerns” et dissimulation de l’information, Doit supporter le développement en // Doit isoler les spécificités de la plateforme ou de produits commerciaux, Doit être simple/uniforme, Doit séparer les modules qui produisent des données de ceux qui les consomment, Doit séparer la structure de modules de la structure de tâches Doit affecter les tâches aux processeurs de façon flexible (voire dynamique)
12
Hafedh Mili Copyright 1999-200412 Plan Introduction Définitions Architectures et critères de qualité de systèmes Styles architecturaux Architectures pour le lien application - interface
13
Hafedh Mili Copyright 1999-200413 Définitions L’architecture d’un programme ou système informatique est: la structure ou l’ensemble des structures du système, qui est (sont) composée(s) de composantes logicielles Les propriétés visibles de ces composantes, Les relations entre ces composantes là.
14
Hafedh Mili Copyright 1999-200414 Une architecture d’un logiciel de simulation Control Process (CP Noise Model (MODN) Reverb Model ( MODR) Prop Loss Model (PLM)
15
Hafedh Mili Copyright 1999-200415 Ce que le dessin ne disait pas: De quel type de composantes (modules? Processus, tâches), il s’agit? Quelle est la nature des liens (communication, contrôle, échange de données, appel), Plus d’autres questions, une fois qu’on aura répondu à ces deux là.
16
Hafedh Mili Copyright 1999-200416 Styles, modèles de références, et architectures de références Un style architectural est une description d’un type de composantes et d’un patron de contrôle et de communication, Un modèle de référence est une décomposition “fonctionnelle” d’un système (e.g., d’une analyse du domaine) Une architecture de référence est la correspondence d’un modèle de référence à une architecture.
17
Hafedh Mili Copyright 1999-200417 Style, modèle de références, et architectures Modèle de référence Style architectural Architecture de référence Architecture de système
18
Hafedh Mili Copyright 1999-200418 Structures architecturales Structure de modules: un module est une unité de travail avec livrables (interface, code, plan de test). La relation est l’aggrégation/dépendance Structure logique/conceptuelle: les éléments sont des composantes fonctionnelles. La relation est partage/échange de données. Le modèle de référence en est un exemple.
19
Hafedh Mili Copyright 1999-200419 Structures architecturales (suite) Structure de processus/coordination: vue “run-time”, orthogonale aux deux précédentes. Relation: synchronisation, “peut-pas-rouler-sans”, “peut-pas-avec”, etc. Structure physique: l’allocation du logiciel au matériel (systèmes distribués). Composantes: hardware, liens: communication (sert à valider perf., etc.)
20
Hafedh Mili Copyright 1999-200420 Structures architecturales (suite) Structure “uses”: les unités = procédures ou modules, liens = dépendences fonctionnelles/de service. Structure d’appel: appel entre procédures Flux de données: les unités sont des modules, le lien est d’échange de données Flux de contrôle: unités = programmes, modules, ou états. Liens: devient-actif- après. Pour validation comportementale, timing, etc. Structure de classes: classes et héritage.
21
Hafedh Mili Copyright 1999-200421 Structures architecturales (suite)
22
Hafedh Mili Copyright 1999-200422 Structures architecturales (suite)
23
Hafedh Mili Copyright 1999-200423 Structures architecturales (fin) Différents systèmes requièrent différentes combinaisons de structures de représentation Certaines structures peuvent coincider pour le cas de systèmes de petite taille Il faut assurer le lien entre ces structures là.
24
Hafedh Mili Copyright 1999-200424 Plan Introduction Définitions Architectures et critères de qualité de systèmes Styles architecturaux Architectures pour le lien application - interface
25
Hafedh Mili Copyright 1999-200425 Les attributs de qualité Il faut distinguer entre: Attributs/propriétés du système, qui sont dues à l’architectures, et attributs intrinsèques de l’architecture elle-même, Qualités observables à l’éxécution de celles qui ne le sont pas, Qualité technique versus qualité d’affaires (business quality).
26
Hafedh Mili Copyright 1999-200426 Attributs de qualité visible à l’exécution Performance: temps de réponse à un stimulus, ou taux de traitement Sécurité: capacité du système à résister à l’attaque, et à continuer à offrir un service normal aux usagers légitimes Disponibilité: elle est définie comme: (temps moyen entre pannes)/(temps moyen entre pannes + temps réparation)
27
Hafedh Mili Copyright 1999-200427 Attributes de qualité visibles à l’éxécution Fonctionnalité: capacité du système à faire ce qui etait demandé Utilisabilité: –Facilité d’apprentissage –Efficacité –Facilité de mémoriser les commandes –Prévention d’erreurs –Traitement d’erreur (“recoverability”) –Satisfaction de l’usager
28
Hafedh Mili Copyright 1999-200428 Attributs de qualité non-visibles à l’exécution Modifiabilité: C’est la pté qui dépend le + de l’architecture (localité de changements): –Quatre scénarios d’évolution: Extension ou changement de fonctionnalités, Éliminer certaines fonctionnalités (version “light”) Adaptation à un nouvel environnement (portabilité, voir plus bas) Restructuration (e.g. pour la performance, la réutilisation, etc.)
29
Hafedh Mili Copyright 1999-200429 Attributs de qualité non-visibles à l’exécution (suite) Modifiabilité: (suite) –Quatre envergures de changements: Changement dans une composante, Changement dans plusieurs composantes, Changement dans l’infrastructure, Changement de style. Portabilité: adaptabilité à différents environnements d’opération/exécution
30
Hafedh Mili Copyright 1999-200430 Attributs de qualité non-visibles à l’exécution (suite) Réutilisabilité: on parle de réutilisabilité de composantes (qui dépend de l’architecture), et de réutilisabilité de l’architecture-même, Intégrabilité: permettre à des composantes développées séparément d’inter-opérer (dépend des “interfaces” des composantes) Testabilité: reliée à la controllabilité et observabilité du comportement des composantes.
31
Hafedh Mili Copyright 1999-200431 Attributs de qualité: résumé
32
Hafedh Mili Copyright 1999-200432 Attributs de qualité: résumé
33
Hafedh Mili Copyright 1999-200433 Attributs de qualité orientés- affaires Temps de mise en marché: pression => construction à partir de composantes => architectures ouverte, même si non idéale, Coût: (de développement) Durée de vie projetée du système Marché cible Stratégie de commercialisation: (e.g. version vanille + saveurs => modifiabilité) Integration avec systèmes légataires
34
Hafedh Mili Copyright 1999-200434 Qualités de l’architecture Les (attributs de) qualités vues à date concernent le produit final; différents choix vont permettre d’atteindre ces qualités là plus ou moins bien Les qualités de l’architecture sont intrinsèques, indépendamment de toute qualité qu’elle pourra inculquer à un produit donné
35
Hafedh Mili Copyright 1999-200435 Qualités de l’architecture Intégrité conceptuelle: cohérence, thème dominant, quitte à abandonner certains “features”, Complétude et “correctness”: adresse toutes les exigences, et efficacement, Faisabilité: en tenant compte des ressources, et autres contraintes.
36
Hafedh Mili Copyright 1999-200436 Plan Introduction Définitions Architectures et critères de qualité de systèmes Styles architecturaux Architectures pour le lien application - interface
37
Hafedh Mili Copyright 1999-200437 Styles architecturaux “Camelot is based on the client-server model and uses remote procedure calls both locally and remotely to provide communication among applications and servers”[S+87] “Abstraction layering and system decomposition provide the appearance of system uniformity to clients, yet allow Helix to accommodate a diversity of autonomous devices. The architecture encourages a client-server model for the structuring of applications”[FO85] We have chosen a distributed object-oriented approach to managing information”[Lin87]
38
Hafedh Mili Copyright 1999-200438 Styles architecturaux Un style architectural est un patron récurrent (commun) d’organisation / architecture de système, Les styles sont généralement décrits par des noms/phrases simples, mais évoquent toute une … architecture! Un style architectural est généralement uniformément appliqué à l’architecture d’un système.
39
Hafedh Mili Copyright 1999-200439 Styles architecturaux Un style architectural est déterminé par: Un ensemble de types de composantes (e.g. dépôt de données, processus, procédure), Une structuration topologique des composantes indiquant leur relations durant l’exécution Un ensemble de contraintes sémantiques sur les composantes et leur interrelations, et Un ensemble de connecteurs (e.g. appel de procédures, interruptions, etc.) pour médier la communication et coordination entre les composantes.
40
Hafedh Mili Copyright 1999-200440 Styles architecturaux 5 classes de styles: Composantes indépendantes, Flux de données Orienté-données, Machine virtuelle “Call-and-return”
41
Hafedh Mili Copyright 1999-200441 Composantes indépendantes Processus Communiquants Systèmes à base d’évènements Invocation implicite Invocation explicite
42
Hafedh Mili Copyright 1999-200442 Architectures en flux de données Séquentiel batch Pipes and filters
43
Hafedh Mili Copyright 1999-200443 Architectures orientées-données Approche repository Approche blackboard
44
Hafedh Mili Copyright 1999-200444 Architectures machine virtuelle Interprète À base de règles
45
Hafedh Mili Copyright 1999-200445 Architectures “call and return” Programme principal et sous-routines Par couches Orientés- objet
46
Hafedh Mili Copyright 1999-200446 Architectures orientées-données Principe: Différents clients accèdent les mêmes données partagées: –Reposoir “passif”de données: style reposoir –Reposoir “actif”: style “blackboard” Objectif principal: Assurer la qualité “intégrabilité des données”
47
Hafedh Mili Copyright 1999-200447 Architectures orientées-données Client 1 Client 3 Client 2 Client 5 Client 4 Données partagées
48
Hafedh Mili Copyright 1999-200448 Architectures orientées-données Les clients sont des modules relativement indépendants (vue structurelle) –Les clients ne doivent pas réagir instantanément aux changements de données => reposoir –Les clients doivent réagir aux changements de données => blackboard Les clients roulent dans des processus séparés (vue “processus”)
49
Hafedh Mili Copyright 1999-200449 Architecture blackboard Client 1 Client 3 Client 2 Client 5 Client 4 Données partagées Module de contrôle donnée
50
Hafedh Mili Copyright 1999-200450 Architectures flux de données Principe: Les données “coulent” entre processus, allant de input versus repôt ultime: –Un élément à la fois: “pipes and filters” –Par lots: “batch sequential” Objectif principal: Assurer la qualité “réutilisation” et “modifiabilité”.
51
Hafedh Mili Copyright 1999-200451 Style batch sequential Traitement 1 Traitement 2 Traitement 3 input
52
Hafedh Mili Copyright 1999-200452 Style pipe & filters Filtre 1Filtre 2Filtre 3 input Filtre 4 Pipe tuyau
53
Hafedh Mili Copyright 1999-200453 Pipe & Filters Pros: Simplicité de conception et de fonctionnement Les filtres sont réutilisables, facilement modifiables, et parallélisables Cons: Forcent une représentation de données “plate” Pas adapté aux applications intéractives Recouvrement d’erreur hum … Si filtre dépend du contexte => buffer (illimité?)
54
Hafedh Mili Copyright 1999-200454 Batch sequential Pros: Plus flexibles dans la composition, Meilleur recouvrement d’erreurs Cons: Pas adapté aux applications intéractives
55
Hafedh Mili Copyright 1999-200455 Architectures machine virtuelle Principe: Le programme à exécuter est traité comme un donnée pour un autre programme visible Objectif principal: Assurer la qualité “portabilité” Assurer la qualité “modifiabilité”
56
Hafedh Mili Copyright 1999-200456 Architectures machine virtuelle Données du programme Programme à interpréter État de l’interprète Interprète entrées Prochaine instruction État du programme Instruction et donnée choisies Sorties
57
Hafedh Mili Copyright 1999-200457 Architectures machine virtuelle Exemples: Systèmes à base de règles, Émulateurs de Java Shells Etc.
58
Hafedh Mili Copyright 1999-200458 Architectures machine virtuelle Pros: TRÈS flexible Peu de programmation, Modifiabilité dynamique de fonctionnalité et de modalité d’exécution. Cons: Performance Difficulté conceptuelle, déboggage, etc.
59
Hafedh Mili Copyright 1999-200459 Architecture par composantes indépendantes Principe: L’application consiste en plusieurs objets ou processus indépendants qui communiquent. Objectif principal: Modifiabilité, Intégrabilité, Scalability
60
Hafedh Mili Copyright 1999-200460 Architectures par composantes indépendantes Architectures orientées événements: –Invocation implicite: publish and subscribe –Invocation explicite: les messages sont envoyés nominativement (mais les composantes ne se contrôlent pas) Architectures par processus communiquants –Communication généralement bi-directionnelle, synchrone ou asynchrone –Exemple: client-serveur
61
Hafedh Mili Copyright 1999-200461 Architectures orientées événements: publish & subscribe Comp 1 Comp 2 Comp 3 Comp 4 Gestionnaire d’évènements
62
Hafedh Mili Copyright 1999-200462 Architecture orientées évènements Pros: Indépendance des composantes, Scalabilité Configurabilité dynamique Cons: Performance, Difficulté conceptuelle pour gérer des intéractions compliquées
63
Hafedh Mili Copyright 1999-200463 Architectures call-and-return Principe: Le contrôle est centralisé, et détenu par une composante à la fois Les composantes sont synchrones Objectif principal: Réutilisation fonctionnelle Scalabilité
64
Hafedh Mili Copyright 1999-200464 Architectures call-and-return Trois Souches: Programme principal et sous-programme: style dominant pendant 30 ans (structure statique = structure dynamique) –Remote procedure call: idem, avec distribution physique Orientée objets: idem, structure statique regroupe données et fonctions. En couches: composantes distribuées en couches.
65
Hafedh Mili Copyright 1999-200465 Analyse des styles architecturaux Pour chaque style, nous devons répondre à: Quel type de composantes et connecteurs Comment le contrôle est géré et passé entre composantes, Comment les données sont échangées Comment le contrôle et les données intéragissent, Quel type de raisonnement est possible
66
Hafedh Mili Copyright 1999-200466 Composantes et connecteurs Composante: un bout de logiciel qui fait de quoi durant l’exécution Connecteur: un méchanisme pour gérer la communication et coordination entre composantes. La relation entre styles et (types de composantes, connecteurs) est dégénérée,
67
Hafedh Mili Copyright 1999-200467 La gestion du contrôle Les questions à adresser: Topologie (linéaire pour P&F, hiérarchique, pour C&R, etc.) Synchronisation (ou manque de): en unison, parrallèle, rendez-vous, etc. Temps de résolution: codage (C&R non- OO), compilation, chargement, exécution (event-based).
68
Hafedh Mili Copyright 1999-200468 Les données Topologie: d’où à où les données cheminent elles Continuité: (continu for P&F, régulier vs. sporadique, etc.) Mode: passées entre composantes vs. partagées, unicast vs broadcast, Temps de résolution: quand est ce que le vis-a-vis dans un échange de données est déterminé?
69
Hafedh Mili Copyright 1999-200469 Intéractions données/contrôle Forme: sont ils isomorphes (si OO, oui!) Directionalité: si isomorphes, est ce données et contrôle vont dans le même sens (P&F, oui, client-serveur, opposé)
70
Hafedh Mili Copyright 1999-200470 Types de raisonnement Différentes styles se prêtent à différents types de validation, Si certaines validations sont critiques, cela peut influencer le choix du style architectural
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.