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

22
Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Architecture du logiciel I

Upload: leonne-peltier

Post on 03-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

GEF 243BProgrammation informatique

appliquée

Architecture du logiciel I

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

Revue

• Nommez les 5 phases du cycle de vie du logiciel

• Quelle est la différence entre la vérification et la validation?

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

Synopsis

• Qu’est-ce qu’est l’architecture?• L’architecture du logiciel• Pipes et filtres• Architecture en couches

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

Qu’est-ce qu’est l’architecture?

• Les ingénieurs doivent être capable de communiquer leurs designs et idées tôt dans un projet pour être effectifs

• Dans la plus part des disciplines d’ingénierie, les designs sont communiqués avec des bleus

• Au plus haut niveau des bleus, les dessins montrent une abstraction de haut niveau pour le projet dans son ensemble

• Ces abstractions de haut niveau montre le style d’architecture pour le projet

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

Qu’est-ce qu’est l’architecture?

• Les dessins d’architecture montrent plus que le produit fini; ils communiquent l’intention de l’ingénieur et de l’architecte

• Par exemple, l’architecture d’un pont montre l’image du pont final et montre aussi comment le pont va être supporté, (suspension, compression, cantilever,…) sans montrer les détails de comment cela va être accomplit

• Les mots comme pont cantilever décrivent un style architectural ou un idiome architectural que les ingénieurs civils étudient et comprennent

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

Architecture du logiciel

• En génie logiciel, il n’y a pas de bleus• Cependant, les ingénieurs en logiciel ont besoin

d’une façon de communiquer leurs designs et leurs intentions

• L’étude de l’architecture des logiciels est couramment dans son enfance Shaw et Garland, 1996

• Même si l’architecture du logiciel n’est pas encore une science mature, il y a plusieurs idées qui peuvent être utiles pour nous aider à communiquer nos designs

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

Architecture du logiciel

• Dans les quelques décennies où nous avons produits des produits logiciels, plusieurs idiomes architecturales ont été identifiés parce qu’ils reviennent souvent et ont été prouvé par le temps

• Ces idiomes sont:Pipes et filtresEn couchesAbstractions de donnéesRéférentiels Client-serveurContrôle de processus

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

Architecture du logiciel

• L’architecture des logiciels nous aide:À identifier comment les composantes vont interagir

entre ellesEn montrant comment les données et informations sont

échangés entre les composantesEn nous donnant un ensemble de symboles et un

vocabulaire pour décrire nos systèmesEn nous donnant les règles pour l’utilisation des

symboles et du vocabulaire

• Quand nous spécifions un style architectural, le design et l’implémentation doivent respecter ce style

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

Architecture du logiciel

• Jusqu’à date, nous avons vus deux types de diagrammes qui nous permettent de décrire et communiquer nos designs:Les hiérarchies fonctionnelles: montrent les fonctions

d’un système et leurs relations les unes aux autres (relation d’appel et réponse)

Organigrammes: Représentation de bas niveau pour la logique d’un algorithme

• Les diagrammes architecturales sont à un plus haut niveau d’abstraction que les hiérarchies fonctionnelles

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

Architecture du logiciel

• Nous avons aussi parlés des modules; qui nous permettent d’appliquer le principe du masquage de l’information

• Ces modules peuvent aussi être représentés dans une hiérarchie similaire à celle des fonctions pour montrer les relations de dépendance

• Cependant, les modules peuvent aussi être utilisés comme blocs ou composantes dans la construction des styles architecturales

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

Pipes et filtres

• Possiblement un des styles architecturales les plus simples nous provient des systèmes de traitement en lots: L’architecture de pipes et filtres

• Ce style est grandement utilisé pour les programmes écrits en Unix shell

• Dans une architecture de pipes et filtres, les données sont vues comme un flot continue qui est transformé par des filtres

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

Pipes et filtres

• Les filtres sont indépendants les uns des autres; l’état de chaque filtre est inconnu aux autres

• Un filtre ne ‘sait’ pas quels autres filtres sont avant ou après lui

• La sortie des données à un filtre peut commencer avant que l’entrée soit terminée (flot continue)

• Les connecteurs dans un P&F représentent les données qui sont fournies aux filtres et collectées des filtres de façon continue; de là le nom pipe

• Les pipes et les filtres peuvent avoir un type ou pas en avoir

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

Pipes et filtres

Filtres

Pipes

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

Pipes et filtres

• L’architecture de pipes et filtres est utile pour les ingénieurs électriques qui utilisent du logiciel dans leurs solutions

• Plusieurs composantes utilisées dans l’acquisition de données, le traitement des signaux, les systèmes de communication, les radars, la gestion de la puissance et plusieurs autres implémentations, utilisent les filtres logiciels parce qu’ils sont hautement flexibles

• Le flot continu de données par pipes et les transformations par les filtres s’adaptent bien au signaux digitaux

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

Pipes et filtres

• Une fois développées, les filtres peuvent être réutilisés: i.e. un filtre passe-bas qui a été écrit peut être réutilisé en changeant les constantes du filtre

• Les compilateurs de première génération suivaient l’architecture des P&F

• Une des compagnies qui utilisent ce type d’architecture souvent dans ses produits est Tektronix – oscilloscopes

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

Architectures en couches

• Un autre style architectural qui a été grandement utilisé au travers des années est l’architecture en couches

• Dijkstra a introduit l’architecture en couches quand il fait le design du système d’exploitation T.H.E.

• Dijkstra a proposé que les systèmes d’exploitation devraient être une hiérarchie de couches

• Chaque niveau a ses responsabilités et fournit des services aux niveau plus haut.

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

Architectures en couches

Couche 1

Couche 2

Couche n-1

Couche n

Couche 1Couche 2

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

Architectures en couches• Les architectures en couches devraient être utilisées

quand:Vous avez identifié que votre système doit isoler des

classes de servicesVous devez fournir des mécanismes de contrôle pour des

niveaux de sécuritésVous avez besoin de cacher le matériel ou le logiciel de

bas niveau pour réduire la complexité du logiciel de haut niveau

Vous voulez augmenter la portabilité du logiciel en remplaçant les niveaux inférieurs qui touchent à la plate forme

Besoin de traiter les signaux asynchrones ou une haute variation dans les temps de réponse

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

Architectures en couches

• Le type de hiérarchie dans les architectures en couches diffèrent des hiérarchies modulaires ou fonctionnelles parce que chaque couche redéfinit les relations

• Les relations dans une hiérarchie fonctionnelle identifient quelles fonctions sont utilisées par les autres

• Les relations dans une architecture en couches identifient les fonctions qui fournissent les services et les fonctions qui appellent ces services

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

Architectures en couches

• Les fonctions dans une couche fournissent des services aux fonctions dans la couche supérieure; et sont des clientes pour la couche inférieure.

Fctn 1 Fctn 2 Fctn 3

Fctn A Fctn B

My_prog

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

Architectures en couches

• Les architectures en couches peuvent être utilisées pour:Les projets qui implémentent des protocoles

(communication, transformation,…)Les systèmes Interface Utilisateur Graphique (IUG)

pour séparer les fonctions d’interface de la solutionSystèmes robotiques, pour séparer les responsabilités

dans des couches – Prise de décision, Navigation de haut niveau, Production de mappe, intégration des senseurs, lecture des senseurs, contrôle du robot.

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

Hiver 2005 Maj JGA Beaulieu & Capt MWP LeSauvage

Quiz Time

• Pourquoi utilise-t-on des idiomes architecturales (styles) en génie logiciel?

• Est-ce que les filtres dans une architecture de P&F sont dans une hiérarchie?

• Quelle est la différence entre une hiérarchie fonctionnelle et une hiérarchie dans une architecture en couches?