6GEI303 - Architecture des logiciels

Description

Donner à l'étudiant une méthodologie de conception de logiciel multitâche basé sur composants et interfaces. Le rendre capable d'intégrer diverses technologies et des algorithmes efficaces afin d'utiliser de manière optimale les ressources de la machine, tout en maintenant la convivialité de l'interface avec l'utilisateur.

Rappel des méthodologies de conception: "water fall", incrémental, agile, prototypage, spirale,. Modélisation par composant et interfaces. COTS "Components Of The Shelf". Conception architecturale, patrons et réutilisation. Composition vs héritage. Principes et méthodes de conception multithread et multiprocessus avec contraintes de temps réel. Schéma d'architecture et règles de conception multitâche. Communications et synchronisation: threads et processus. MMF - Memory Mapped File. Architecture SIMD (MMX, SSE) et conception d'algorithmes. Programmation multi-c÷urs. Architectures des GPU (Graphic Processing Unit) et programmation AMP - Accelerated Massive Parallelism. La méthodologie de conception sera appliquée au développement d'un système de traitement et de visualisation de vidéos en temps réel, incluant brillance contraste et convolution. Le système est multithread et multi processus et utilise divers mécanismes de synchronisation et de communication. Le système utilise la librairie "DirectShow" basés sur composants et interfaces.

(Description officielle)

Notes de cours:

J'ai enseigné ce cours aux semetres:

Ce cours est devenu 6GIN311 par la suite.

Jean-Luc Cyr
Mise à jour, 02 Oct 2023