hiver 2005maj jga beaulieu & capt mwp lesauvage gef 243b programmation informatique appliquée...
TRANSCRIPT
GEF 243BProgrammation informatique
appliquée
Architecture du logiciel II
Revue
• À quoi sert l’architecture pour les ingénieurs en logiciel?
• Quels genres de systèmes peuvent être représentés par une architecture de “pipes et filtres”?
• Quand utiliseriez vous une architecture en couches?
Synopsis
• Autres types d’architecturesArchitectures d’abstraction de données et orienté objetRéférentiels Client-serveurContrôle de processus Architectures hybrides
Architectures d’abstraction de données et OO
• Nous avons déjà vus ce qu’est une abstraction • Dans les architectures d’abstractions de données et
OO, toutes les données sont encapsulées dans un objet au lieu d’un module
• La différence entre un module et un objet est qu’un objet a un type (un type de données abstrait) et l’objet est donc déclaré avant d’être créé; les modules sont simplement utilisés
• Les méthodes (fonctions) font partie du type de l’objet et sont donc partie intégrante de l’objet
Architectures d’abstraction de données et OO
• Si nous voulions créer l’illusion d’objets avec les langages structurels et les modules, nous utiliserions les mots clés typedef et struct pour construire nos abstractions
• Chaque fois que nous voudrions créer un nouvel “objet”, nous ajouterions un nouveau nœud à notre liste chaînée
• Nos fonctions et nos données seraient alors encapsulés à l’intérieur d’un module, similairement aux objets
• Il y a bien plus que cela dans OO, mais ceci est pour un cour en OO
Architectures d’abstraction de données et OO
• Les architectures OO sont de plus en plus répandus dans les nouveaux logiciels pour résoudre plusieurs sortes de problèmes
• Les systèmes OO ont plusieurs propriétés qui permettent aux ingénieurs de développer des solutions qui sont robustes et qui sont extensibleParce que OO encapsule la représentation des données
et algorithmes dans un objet, l’implémentation de cet objet peut changer sans affecter les autres objets tant que l’interface de l’objet ne change pas
Due à l’application et vérification stricte des types dans les langages OO, ils sont vus, avec raison, comme des langages d’ingénierie
Architectures d’abstraction de données et OO
• Les architectures des systèmes OO sont représentées par un ensemble d’objets qui coopèrent et leurs interactions entre ces objets
• Chaque objet qui est sur le diagramme appartient à un type de donnée abstrait (abstract data type) ou classe
• Chaque interaction est un appel de méthode, ces appels sont numérotés en ordre pour représenter la séquence des événements dans le système
Architectures d’abstraction de données et OO
object1 : typeA
object2 : typeB
object3 : typeC
object4 : typeA
1:opn1(param)2:opn2(param)
3:opn1(param)
Architectures d’abstraction de données et OOexemple: téléphone
Référentiels
• Les référentiels de données ou référentiels, sont des systèmes qui ont deux types de composantes: un référentiel de données et des composantes exécutables qui opèrent sur ces données
• RéférentielsLe référentiel est une structure de données centrale Il n’y a pas de masquage d’information dans cette
architecture, les données sont observables et accessibles par tous
Le référentiel contient l’état du système
Référentiels
• Composantes exécutables: sont des unités d’exécutions indépendantes qui réagissent et transforment les données dans un référentiel central – appelées sources de connaissances (knowledge sources)
• Contrôle: Même si ce n’est pas montré comme composante sur le diagramme, il faut un mécanisme de contrôle qui décide quelle composante doit exécuter à quel temps Le contrôle peut être implicite sur l’état des données: Une source
de connaissances est réveillée quand une partie de référentiel change (invocation implicite)
Le contrôle peut être explicitement identifié ce qui est le cas pour les bases de données normales. Le mécanisme de contrôle est alors écrit comme une transaction d’opérations (faire un retrait à une banque appel une composante spécifique)
Référentiels
Référentiel
SC1
SC4
SC5
SC3
SC2
Référentiels
• Les référentiels sont souvent utilisés pour les applications de bases de données pour les systèmes de commerce, le locus de contrôle dans ces cas est explicite et écrit dans des fonctions qui exécutent des transactions spécifiques
• Les référentiels sont aussi utilisés dans les transformations de données complexes tel que la reconnaissance de diction, la filtration et segmentation des images, la prise de décision tel que dans la navigation sur un terrain inconnu
• Les référentiels sont un bon choix pour les composantes qui ne sont pas couplés directement mais que doivent traiter la même information
Architecture client-serveur
• L’architecture client-serveur est une variation sur l’architecture OO
• Un objet (OO) ou un module fournit un service pour un autre objet ou module dans une relation un à un
• Les serveurs et les clients sont souvent vus comme des ordinateurs qui remplissent un rôle, mais en génie logiciel, les serveurs et les clients sont des logiciels qui communiquent pour fournir un service
Architecture client-serveur
• Même si les architectures de client-serveur sont parfois synonyme avec deux ordinateurs opérants en deux sites distants, les deux entités peuvent souvent être sur le même ordinateur
• Les termes client et serveur réfèrent seulement aux services qui sont fournis et utilisés
Architecture client-serveur
Client Serveur
Demande
Réponse
Contrôle de processus
• Dans les systèmes qui doivent obtenir des lectures de senseurs dans l’environnement, et ajuster certaines variables pour contrôler certains facteurs externes dans l’environnement, nous pouvons utiliser n’importe quelle architecture que nous avons appris jusqu’à maintenant
• Cependant, quand nous traitons un système de contrôle, il existe des problèmes d’instabilités et des délais qui peuvent avoir un sérieux impact pour le système sous contrôle. Nous devons modéliser ces problèmes
Contrôle de processus
• Les architectures de contrôle de processus, modélisent l’environnement, entrées, transformations et sorties pour montrer le comportement du système entier
• Chaque système inclus le feedback et les ajustements des composantes pour représenter la performance du système actuel
Contrôle de processus
Transformation/processus
comp
Variables d’entrée
Point d’opération
Variables contrôlées
Variables manipulées
Architectures hybrides
• Les systèmes avec architecture hybride implémentent des solutions qui se servent d’une variété d’architectures dans le même design
• La combinaison des architectures dans le logiciel est beaucoup transparent que dans les autres disciplines de génie
• La combinaison des architectures mixtes est une activité importante en génie qui nous permet d’augmenter notre capacité à créer de nouveaux designs
Quiz Time
• Quelle est la différence entre un module et un objet?
• Pourquoi utiliseriez-vous un référentiel?