1 / 22

GEF 243B Programmation informatique appliquée

GEF 243B Programmation informatique appliquée. Architecture du logiciel I. Revue. Nommez les 5 phases du cycle de vie du logiciel Quelle est la différence entre la vérification et la validation?. Synopsis. Qu’est-ce qu’est l’architecture? L’architecture du logiciel Pipes et filtres

doli
Download Presentation

GEF 243B Programmation informatique appliquée

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GEF 243BProgrammation informatique appliquée Architecture du logiciel I Maj JGA Beaulieu & Capt MWP LeSauvage

  2. Revue • Nommez les 5 phases du cycle de vie du logiciel • Quelle est la différence entre la vérification et la validation? Maj JGA Beaulieu & Capt MWP LeSauvage

  3. Synopsis • Qu’est-ce qu’est l’architecture? • L’architecture du logiciel • Pipes et filtres • Architecture en couches Maj JGA Beaulieu & Capt MWP LeSauvage

  4. 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 Maj JGA Beaulieu & Capt MWP LeSauvage

  5. 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 Maj JGA Beaulieu & Capt MWP LeSauvage

  6. 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 Maj JGA Beaulieu & Capt MWP LeSauvage

  7. 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 filtres • En couches • Abstractions de données • Référentiels • Client-serveur • Contrôle de processus Maj JGA Beaulieu & Capt MWP LeSauvage

  8. Architecture du logiciel • L’architecture des logiciels nous aide: • À identifier comment les composantes vont interagir entre elles • En montrant comment les données et informations sont échangés entre les composantes • En nous donnant un ensemble de symboles et un vocabulaire pour décrire nos systèmes • En 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 Maj JGA Beaulieu & Capt MWP LeSauvage

  9. 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 Maj JGA Beaulieu & Capt MWP LeSauvage

  10. 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 Maj JGA Beaulieu & Capt MWP LeSauvage

  11. 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 Maj JGA Beaulieu & Capt MWP LeSauvage

  12. 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 Maj JGA Beaulieu & Capt MWP LeSauvage

  13. Pipes et filtres Filtres Pipes Maj JGA Beaulieu & Capt MWP LeSauvage

  14. 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 Maj JGA Beaulieu & Capt MWP LeSauvage

  15. 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 Maj JGA Beaulieu & Capt MWP LeSauvage

  16. 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. Maj JGA Beaulieu & Capt MWP LeSauvage

  17. Architectures en couches Couche n Couche n-1 … Couche 2 Couche 1 Couche 1 Couche 2 Maj JGA Beaulieu & Capt MWP LeSauvage

  18. Architectures en couches • Les architectures en couches devraient être utilisées quand: • Vous avez identifié que votre système doit isoler des classes de services • Vous devez fournir des mécanismes de contrôle pour des niveaux de sécurités • Vous 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 Maj JGA Beaulieu & Capt MWP LeSauvage

  19. 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 Maj JGA Beaulieu & Capt MWP LeSauvage

  20. 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. My_prog Fctn 1 Fctn 2 Fctn 3 Fctn A Fctn B Maj JGA Beaulieu & Capt MWP LeSauvage

  21. 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 solution • Systè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. Maj JGA Beaulieu & Capt MWP LeSauvage

  22. 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? Maj JGA Beaulieu & Capt MWP LeSauvage

More Related