hiver 2005maj jga beaulieu & capt mwp lesauvage gef 243b programmation informatique appliquée...

21
GEF 243B Programmation informatique appliquée Architecture du logiciel II

Upload: deodat-le-berre

Post on 03-Apr-2015

107 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II

GEF 243BProgrammation informatique

appliquée

Architecture du logiciel II

Page 2: Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation 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?

Page 3: Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II

Synopsis

• Autres types d’architecturesArchitectures d’abstraction de données et orienté objetRéférentiels Client-serveurContrôle de processus Architectures hybrides

Page 4: Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II

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

Page 5: Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II

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

Page 6: Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II

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

Page 7: Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II

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

Page 8: Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II

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)

Page 9: Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II

Architectures d’abstraction de données et OOexemple: téléphone

Page 10: Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II

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

Page 11: Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II

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)

Page 12: Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II

Référentiels

Référentiel

SC1

SC4

SC5

SC3

SC2

Page 13: Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II

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

Page 14: Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II

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

Page 15: Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II

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

Page 16: Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II

Architecture client-serveur

Client Serveur

Demande

Réponse

Page 17: Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II

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

Page 18: Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II

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

Page 19: Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II

Contrôle de processus

Transformation/processus

comp

Variables d’entrée

Point d’opération

Variables contrôlées

Variables manipulées

Page 20: Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II

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

Page 21: Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel II

Quiz Time

• Quelle est la différence entre un module et un objet?

• Pourquoi utiliseriez-vous un référentiel?