Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Revue À quoi sert larchitecture 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?
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Synopsis Autres types darchitectures Architectures dabstraction de données et orienté objet Référentiels Client-serveur Contrôle de processus Architectures hybrides
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Architectures dabstraction de données et OO Nous avons déjà vus ce quest une abstraction Dans les architectures dabstractions de données et OO, toutes les données sont encapsulées dans un objet au lieu dun module La différence entre un module et un objet est quun objet a un type (un type de données abstrait) et lobjet est donc déclaré avant dêtre créé; les modules sont simplement utilisés Les méthodes (fonctions) font partie du type de lobjet et sont donc partie intégrante de lobjet
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Architectures dabstraction de données et OO Si nous voulions créer lillusion dobjets 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 à lintérieur dun module, similairement aux objets Il y a bien plus que cela dans OO, mais ceci est pour un cour en OO
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Architectures dabstraction 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 extensible Parce que OO encapsule la représentation des données et algorithmes dans un objet, limplémentation de cet objet peut changer sans affecter les autres objets tant que linterface de lobjet ne change pas Due à lapplication et vérification stricte des types dans les langages OO, ils sont vus, avec raison, comme des langages dingénierie
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Architectures dabstraction de données et OO Les architectures des systèmes OO sont représentées par un ensemble dobjets 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 dabstraction de données et OO object1 : typeA object2 : typeB object3 : typeC object4 : typeA 1:opn1(param) 2:opn2(param) 3:opn1(param)
Architectures dabstraction de données et OO exemple: téléphone
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage 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érentiels Le référentiel est une structure de données centrale Il ny a pas de masquage dinformation dans cette architecture, les données sont observables et accessibles par tous Le référentiel contient létat du système
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Référentiels Composantes exécutables: sont des unités dexé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 nest 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 dopérations (faire un retrait à une banque appel une composante spécifique)
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Référentiels Référentiel SC1 SC4 SC5 SC3 SC2
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage 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
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Architecture client-serveur Larchitecture client-serveur est une variation sur larchitecture 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
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage 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
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Architecture client-serveur ClientServeur Demande Réponse
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Contrôle de processus Dans les systèmes qui doivent obtenir des lectures de senseurs dans lenvironnement, et ajuster certaines variables pour contrôler certains facteurs externes dans lenvironnement, nous pouvons utiliser nimporte quelle architecture que nous avons appris jusquà maintenant Cependant, quand nous traitons un système de contrôle, il existe des problèmes dinstabilité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
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Contrôle de processus Les architectures de contrôle de processus, modélisent lenvironnement, 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 dentrée Point dopération Variables contrôlées Variables manipulées
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Architectures hybrides Les systèmes avec architecture hybride implémentent des solutions qui se servent dune variété darchitectures 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 daugmenter notre capacité à créer de nouveaux designs
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage Quiz Time Quelle est la différence entre un module et un objet? Pourquoi utiliseriez-vous un référentiel?