Génie Logiciel avancé
Enseignant:
Email:
Durée totale du cours: 22.5 H
Semestre : 5 Option Réseaux et Services Mobiles (RSM)
Nombre de crédits : 1
| Modules
spécialisés |
Modules de
base |
Sciences et techniques de
l’ingénierie |
Préparation à la carrière professionnelle |
| |
|
X |
|
| Nombre d’heures |
Activités hors classe |
|
| 22.5 |
18 |
|
| cours |
TD |
TP |
| 16.5 |
6 |
|
|
|
|
|
|
| |
|
| Code |
: GTI4101 |
Génie logiciel avancé |
Objectifs d’apprentissage et compétences visées
L’étudiant comprend et peut expliquer les avantages d’une méthodologie de développement
itérative et incrémentale.
En fonction des caractéristiques d’un projet donné, l’étudiant est en mesure de sélectionner,
d’adapter et d’appliquer la méthodologie de développement appropriée.
L’étudiant connaît des principes de conception et d’architecture avancés et peut les utiliser pour diriger la phase de conception d’un système.
L’étudiant est conscient qu’un logiciel est un système complexe en évolution constante.
L’étudiant sait comment améliorer, étendre et intégrer des logiciels existants, tout en maintenant leur qualité.
Contenu du cours
Semaine 1-2 : Introduction au Génie Logiciel Avancé
- Revue des principes de base du génie logiciel
- Évolution du génie logiciel et son importance dans les télécommunications
- Revue des modèles de processus logiciel (cascades, agiles, itératifs, etc.)
- Défis spécifiques du génie logiciel dans le domaine des télécommunications
Semaine 3-4 : Gestion de Projet et Planification
- Techniques avancées de planification de projet
- Gestion des ressources et de l’équipe dans un environnement de télécommunications
- Gestion des risques spécifiques aux projets de génie logiciel en télécommunications
- Utilisation d’outils de gestion de projet avancés
Semaine 5-6 : Conception Logicielle Avancée
- Principes de conception orientée objet pour les systèmes de télécommunications
- Utilisation de modèles de conception (Design Patterns) dans les projets télécoms
- Conception de systèmes distribués et évolutifs pour les réseaux de télécommunications
Semaine 7-8 : Architecture Logicielle Télécom
- Architecture de référence pour les systèmes de télécommunications
- Architecture microservices dans le contexte des télécoms
- Intégration de technologies émergentes telles que la 5G et l’Internet des Objets (IoT)
Semaine 9-10 : Développement Avancé
- Pratiques avancées de programmation et de codage sécurisé
- Utilisation de frameworks et de bibliothèques spécifiques aux télécommunications
- Méthodes de test avancées pour garantir la qualité et la fiabilité
Semaine 11-12 : Sécurité dans les Télécommunications
- Enjeux de sécurité spécifiques aux systèmes de télécommunications
- Cryptographie et gestion des clés dans les applications télécoms
- Sécurité des données et protection de la vie privée dans un contexte de plus en plus connecté
Semaine 13-14 : Déploiement, Maintenance et Qualité de Service
- Stratégies de déploiement de logiciels dans les réseaux de télécommunications
- Surveillance et maintenance proactive des systèmes télécoms
- Garantie de la qualité de service (QoS) et optimisation des performances
Semaine 15-16 : Projets Pratiques et Tendances Futures
- Réalisation de projets pratiques de génie logiciel en télécommunications en équipes
- Présentation des dernières tendances telles que la virtualisation des réseaux, l’IA pour les télécoms, etc.
- Perspectives d’avenir pour les experts en génie logiciel dans le domaine des télécommunications
Chaque semaine comprendra des sessions de cours magistraux, des travaux pratiques, des études de cas, des projets de groupe et des évaluations pour garantir une compréhension approfondie et une application pratique des concepts enseignés. L’objectif de ce cours est de fournir aux experts en Génie des Télécommunications les compétences nécessaires pour développer, gérer et maintenir des systèmes logiciels avancés dans un environnement télécom complexe.
Connaissances et compétences pré-requises
Les bases en informatiques
Conception et programmation orientée objet
Références bibliographiques
Un polycopié (Notes du cours) de l’enseignant sera disponible.
Autres références sous forme de tutoriaux, manuels ou documents à télécharger
- Livres de référence en génie logiciel :
- « Software Engineering: A Practitioner’s Approach » by Roger S. Pressman
- « Clean Code: A Handbook of Agile Software Craftsmanship » by Robert C. Martin
- « Design Patterns: Elements of Reusable Object-Oriented Software » by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Grady Booch
- Livres spécifiques au génie des télécommunications :
- « Wireless Communications: Principles and Practice » by Theodore S. Rappaport
- « Telecommunication Switching Systems and Networks » by Thiagarajan Viswanathan
- « Digital Communications » by John G. Proakis
- Livres sur les méthodologies et les processus agiles :
- « Agile Estimating and Planning » by Mike Cohn
- « Scrum: The Art of Doing Twice the Work in Half the Time » by Jeff Sutherland
- « Kanban: Successful Evolutionary Change for Your Technology Business » by David J. Anderson
- Articles académiques sur le génie logiciel avancé et les télécommunications :
- Recherchez des articles dans des revues comme IEEE Transactions on Software Engineering, ACM Transactions on Software Engineering and Methodology, IEEE Communications Magazine, etc.
- Normes et cadres de travail :
- IEEE Software Engineering Standards, tels que IEEE 12207 (Standard for Systems and Software Engineering), IEEE 830 (Software Requirements Specification), etc.
- Conférences et ateliers :
- Assister à des conférences comme IEEE International Conference on Software Engineering (ICSE), International Conference on Telecommunications (ICT), etc
Modalité d’évaluation
40% Contrôle continu (TP noté, Test, Assiduité, Devoir surveillé, travaux non présentiels, …)
60% Examen semestriel
TP, Test, Assiduité, Travaux non présentiels, Mini-projets, … = 60% de Contrôle Continu
Note de DS = 40% de Contrôle Continu
Résultats d’apprentissage :
Après avoir réussi l’examen du cours « Génie logiciel avancé « , les étudiants devraient acquérir les compétences suivantes :
- Maîtrise des Concepts de Génie Logiciel : Comprendre en profondeur les concepts fondamentaux du génie logiciel, tels que le cycle de vie du développement logiciel, les modèles de processus, la gestion de projet et les méthodologies agiles.
- Conception Logicielle Avancée : Capacité à concevoir des architectures logicielles complexes, en tenant compte de la modularité, de la réutilisabilité, de la performance et de la maintenance à long terme.
- Programmation Avancée : Compétence dans la programmation avancée avec plusieurs langages de programmation, en adoptant des bonnes pratiques de codage et en utilisant efficacement les structures de données et les algorithmes.
- Développement Agile : Connaissance approfondie des méthodologies de développement agile, telles que Scrum ou Kanban, pour gérer efficacement les projets, collaborer en équipe et répondre aux changements.
- Test et Validation : Capacité à concevoir et mettre en œuvre des stratégies de test robustes pour garantir la qualité logicielle, y compris les tests unitaires, les tests d’intégration et les tests de validation.
- Gestion de Configuration et de Version : Maîtrise des outils de gestion de version tels que Git, ainsi que la gestion efficace des configurations logicielles pour suivre les modifications et collaborer en équipe.
- Qualité et Sécurité Logicielle : Compréhension des pratiques de qualité logicielle et de sécurité, en intégrant des mécanismes de sécurisation et en adhérant aux normes et aux bonnes pratiques.
- Déploiement et Maintenance : Capacité à déployer des applications logicielles dans des environnements réels, à surveiller leur performance, à gérer les problèmes et à fournir un support technique.
- Communication Technique : Compétence à communiquer efficacement des concepts techniques, tant à l’écrit qu’à l’oral, aux membres de l’équipe technique et aux parties prenantes non techniques.
- Travail en Équipe et Collaboration : Aptitude à travailler efficacement en équipe, à collaborer avec des experts multidisciplinaires et à résoudre des problèmes complexes de manière collective.
- Adaptabilité Technologique : Capacité à s’adapter rapidement aux nouvelles technologies, langages de programmation et outils du génie logiciel pour rester à jour dans un domaine en constante évolution.
- Éthique et Responsabilité Professionnelle : Conscience des enjeux éthiques liés au développement logiciel, à la confidentialité des données et à la responsabilité envers les utilisateurs finaux.
[lifterlms_course_continue_button]