Académique Documents
Professionnel Documents
Culture Documents
Ingénierie du logiciel avec Ada
Hiver 2008 : G01
Noureddine, Kerzazi
Liste des séances
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Séance Titre
1 (10 Janvier) Méthodologies du génie logiciel
2 (17 Janvier) Introduction au langage Ada : Structure d’un programme Ada
3 (24 Janvier) Type de données (notions avancées)
4 (31 Janvier) Entrées/Sorties et gestion des Exceptions
5 (07 Février) Programmation concurrente et notions avancées
6 (14 Février) Développement de programme
7 (21 Février) Interfaces externes
8 (28 Février) Environnement de développement Ada
Relâche
9 (13 Mars) Les bonnes pratiques de programmation en Ada 2005
10 (20 Mars) Orienté Objet : Recommandations pour la création de classe
11 (27 Mars) Le paquetage Ada
12 (03 Avril) Attributs prédéfinis du langage (Annexe K)
13 (10 Avril) Programmation en TempsRéel (Annexe D)
14 (17 Avril) Présentations des participants
Dernière mise à jour: 20071222 10:30
Département de génie informatique
Noureddine Kerzazi © Polytechnique Montréal, 2008. Tous droits réservés.
1 / 15
Séance 1 : Méthodologies du génie logiciel
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Description
Nous présenterons dans cette séance les deux courants méthodologique du génie logiciel,
à savoir : prédictif et adaptatif. Pour chaque courant, nous allons présenter une
méthodologie type et nous expliquerons l’importance de chacune de ses phases dans
l’ingénierie du logiciel. Aussi, nous présenterons le modèle de maturité CMMI en
détaillant ses cinq niveaux.
Objectifs :
· Histoire du développement du logiciel.
· La crise du logiciel.
· Explorer les différentes méthodologies de développement.
· Comprendre l’importance d’adopter une méthodologie pour la réussite d’un
projet.
· Présentation du modèle de maturité CMMI.
Lectures
(RC)
·
Ressources utilisées pendant la séance
· Notes de cours Séance 1 (power point)
À imprimer avant la séance
Dernière mise à jour: 20080102 08:00
Département de génie informatique
Noureddine Kerzazi © Polytechnique Montréal, 2008. Tous droits réservés.
2 / 15
Séance 2 : Introduction au langage Ada : Structure d’un programme Ada
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Description
Lors de cette séance, nous explorerons l’historique des langages de développement avec
une analyse de tendance. Aussi, nous présenterons les particularités du langage Ada 83,
Ada95 et Ada 2005. Nous terminerons par la structure globale d’un programme Ada et
nous compilerons notre « Bonjour Tout le Monde !!! ».
Objectifs
· Pourquoi Ada ?
· Évolution des langages de programmation
· Particularités d'Ada
· Structure d’un programme Ada.
· Éléments Syntaxiques du langage.
· Construction d’un programme.
· Comprendre la structure générale d'un programme Ada, ainsi que le mécanisme
des unités de compilation.
· Connaître un sousensemble d'Ada, suffisant pour écrire des programmes simples.
· Explorer les instructions de base.
Lectures
(RC)
· Chapitre 1 « An introduction to Ada » du livre Ada as a second language.
Ressources utilisées pendant la séance
· Notes de cours Séance 2 (power point).
· Notes de cours Séance 2_bis (power point).
· Article: “An Empirical study of Programming Language Trends”.
À imprimer avant la séance
Dernière mise à jour: 20080102 08:00
Département de génie informatique
Noureddine Kerzazi © Polytechnique Montréal, 2008. Tous droits réservés.
3 / 15
Séance 3 : Type de données (notions avancées)
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Description
Lors de cette séance, nous comprendrons les concepts avancés de Type dans Ada. Nous
explorons les types prédéfinis et les mécanismes de création de types dérivés et de sous
types.
Objectifs :
· Comprendre le concept de type de données.
· Apprendre à utiliser les soustypes et les types privés.
· Utiliser des discriminants pour le paramétrage des types
· Les structures de stockage (Tableau, Liste chainé,…)
Lectures
(RC)
· Chapitre 6, 8 et 10. Livre programming in Ada2005.
Ressources utilisées pendant la séance
· Notes de cours Séance 3 (power point).
À imprimer avant la séance
Dernière mise à jour: 20080102 08:00
Département de génie informatique
Noureddine Kerzazi © Polytechnique Montréal, 2008. Tous droits réservés.
4 / 15
Séance 4 : Entrées/Sorties et gestion des Exceptions
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Description
Lors de cette séance, nous allons voir les concepts de base pour le traitement des
différents types de fichier. Comprendre le mécanisme de gestion des exceptions dans
Ada.
Objectifs:
· Les concepts de base pour la gestion des fichiers
· Exploration des paquetages Input/Output
· Comprendre la gestion des Exceptions.
·
Lectures
(RC)
· Chapitre 16. Ada as a second language.
Ressources utilisées pendant la séance
· Notes de cours Séance 4 (power point)
À imprimer avant la séance
Dernière mise à jour: 20080102 08:00
Département de génie informatique
Noureddine Kerzazi © Polytechnique Montréal, 2008. Tous droits réservés.
5 / 15
Séance 5 : Programmation concurrente et notions avancées
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Description
L'exécution d'un programme ne contenant pas de tâches est définie en termes d'exécution
séquentielle de ses actions. On peut considérer que ces actions sont exécutées par un
processeur logique unique. Les programmes concurrents sont des programmes dont les
exécutions se déroulent en parallèles au sens suivant : on peut considérer que chaque
tâche est exécutée par un processeur logique qui lui est propre. On utilise les termes tâche
ou processus.
Comprendre le concept de programmation concurrente et les techniques de
communication et de synchronisation entre les tâches. Apprendre à utiliser le mécanisme
des rendezvous pour un type de développement parallèle ou temps réel.
Objectifs:
· Comprendre le concept de programmation concurrente:
o Concurrence logique et physique
o Les techniques de communication et de synchronisation entre les tâches
o Verrou mortel [deadlock] et verrou vivant [livelock]
· Apprendre à utiliser les constructions d'Ada, ainsi que les rendezvous
· Comprendre le mécanisme d'Ada pour la gérance des exceptions, afin de
développer des programmes et des bibliothèques fiables.
Lectures
(RC)
· Chapitre 17. Ada as a second language.
Ressources utilisées pendant la séance
· Notes de cours Séance 5 (power point)
À imprimer avant la séance
Dernière mise à jour: 20080102 08:00
Département de génie informatique
Noureddine Kerzazi © Polytechnique Montréal, 2008. Tous droits réservés.
6 / 15
Séance 6 : Développement de programme
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Description
La langage Ada est adapté au développement de projets d'envergure (systèmes),
développés et entretenus par des équipes d'informaticiens. Il permet aussi de développer
des systèmes de façon incrémentale, à partir de collection de modules (unités de
compilation), et assure la consistance entre les modules. Nous explorerons le
développement de logiciel modulaire.
Objectifs:
· Comprendre le rôle du support d'un langage de programmation dans le
développement de gros systèmes.
· Comprendre le développement de logiciels modulaires.
· Apprendre à décomposer les programmes en unités de compilations séparées
· Apprendre à utiliser les unités génériques d'Ada pour le développement de
logiciels réutilisables.
·
Lectures
(RC)
· Chapitre.
Ressources utilisées pendant la séance
· Notes de cours Séance 6 (power point)
À imprimer avant la séance
Dernière mise à jour: 20080102 08:00
Département de génie informatique
Noureddine Kerzazi © Polytechnique Montréal, 2008. Tous droits réservés.
7 / 15
Séance 7 : Interfaces externes
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Description
Il y a trois approches pour traiter les entrées / sorties dans les langages de haut niveau:
Intégrer la définition des E/S dans la norme du langage, laisser le développeur du langage
définir ses propres E/S, fournir une bibliothèque pour les E/S. Ada utilise une
bibliothèque.
Objectifs :
· Comprendre la bibliothèque d'entrée/sortie d'ADA.
· Comprendre les mécanismes permettant d'interfacer avec d'autres langages.
· Comprendre les mécanismes permettant de contrôler la représentation interne.
·
Lectures
o Aucune
Ressources utilisées pendant la séance
· Notes de cours Séance 7 (power point)
À imprimer avant la séance
Dernière mise à jour: 20080102 08:00
Département de génie informatique
Noureddine Kerzazi © Polytechnique Montréal, 2008. Tous droits réservés.
8 / 15
Séance 8 : Environnement de développement Ada
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Description
D’Ada 83 vers Ada 2005.
Objectifs :
· Le processus de révision de Ada 83 a conduit à Ada 95 dont les aspects
importants sont:
o Programmation Orientée Objet (OOP)
o Bibliothèques hiérarchiques
§ Objets Protégés
o La compatibilité vers le haut a été maintenue.
Lectures
(RC)
· Chapitre
Ressources utilisées pendant la séance
· Notes de cours Séance 8 (power point)
À imprimer avant la séance
Dernière mise à jour: 20080102 08:00
Département de génie informatique
Noureddine Kerzazi © Polytechnique Montréal, 2008. Tous droits réservés.
9 / 15
Séance 9 : Les bonnes pratiques de programmation en Ada 2005
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Description
Survole des bonnes pratiques de programmation avec Ada.
Objectifs:
· Fournir un résumé des bonnes pratiques de programmation en Ada.
·
Lectures
(RC)
· Chapitre
·
Ressources utilisées pendant la séance
· Notes de cours Séance 9 (power point)
À imprimer avant la séance
Dernière mise à jour: 20080102 08:00
Département de génie informatique
Noureddine Kerzazi © Polytechnique Montréal, 2008. Tous droits réservés.
10 / 15
Séance 10 : Orienté Objet : Recommandations pour la création de classe
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Description
Une spécification de type abstrait décrit une classe de structures de données non par son
implémentation, mais par une liste de services valables sur ces structures et les propriétés
formelles de ces services. Une classe est composée d’un ensemble de structures de
données caractérisées par des propriétés communes.
Objectifs:
· Comprendre comment déclarer une classe en Ada
· Connaître la convention de nomenclature.
· Unicité des objets
· Tenir compte de la portabilité
· Classe paramétrisée ( généricité)
· Héritage
·
Lectures
(RC)
Ressources utilisées pendant la séance
· Notes de cours Séance 10 (power point)
À imprimer avant la séance
Dernière mise à jour: 20080102 08:00
Département de génie informatique
Noureddine Kerzazi © Polytechnique Montréal, 2008. Tous droits réservés.
11 / 15
Séance 11 : Le paquetage Ada
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Description
Sffsf
Objectifs :
· Comprendre le concept de type de données, et son importance pour développer du
logiciel robuste et modulaire.
· Apprendre à utiliser les soustypes et les types privés, et à utiliser des
discriminants pour paramétriser les types.
Lectures
(RC)
· Chapitre
Ressources utilisées pendant la séance
· Notes de cours Séance 11 (power point)
À imprimer avant la séance
Dernière mise à jour: 20080102 08:00
Département de génie informatique
Noureddine Kerzazi © Polytechnique Montréal, 2008. Tous droits réservés.
12 / 15
Séance 12 : Attributs prédéfinis du langage (Annexe K)
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Description
Exploitation des attributs pour un préfixe P qui dénote un sousprogramme (exp :
P’Access)
Objectifs:
· Découvrir quelques attributs prédéfinis du langage Ada.
Lectures
(RC)
· Chapitre
Ressources utilisées pendant la séance
· Notes de cours Séance 12 (power point)
·
À imprimer avant la séance
Dernière mise à jour: 20080102 08:00
Département de génie informatique
Noureddine Kerzazi © Polytechnique Montréal, 2008. Tous droits réservés.
13 / 15
Séance 13 : Programmation en TempsRéel (Annexe D)
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Description
Annexe D n’est pas obligatoire (développeur de compilateurs).
Objectifs:
· Ajouts spécifiques pour la programmation en tempsréel
· Prioritiés des tâches
· Priorités d’ordonnancement
· Verrouillage du plafond des priorités (Priority Ceiling Locking )
· Politique des queues pour les entrées
· Priorités dynamiques
· Arrêt préemptif
· Restrictions sur les tâches
· Temps monotone
· Précision du delay
· Contrôle des tâches synchrones
· Contrôle des tâches asynchrones
Lectures
(RC)
· Chapitre
Ressources utilisées pendant la séance
· Notes de cours Séance 13 (power point)
·
À imprimer avant la séance
Dernière mise à jour: 20080102 08:00
Département de génie informatique
Noureddine Kerzazi © Polytechnique Montréal, 2008. Tous droits réservés.
14 / 15
Séance 14 : Présentations des participants
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Description
Les étudiants doivent préparer une présentation individuelle sur un sujet particulier qui
touche le langage Ada. Vous pouvez toujours vous référez au présentations des années
passées pour éviter la redondance. Chaque étudiant est évalué par le professeur et par ces
collègues.
Objectifs:
· Découvrir certains aspects non couverts dans le cadre du cours.
· Amélioration des habilités de communication.
Lectures
(RC)
· Présence obligatoire
Ressources utilisées pendant la séance
· Présentation des intervenants.
· Anciennes présentations du cours.
À imprimer avant la séance
Dernière mise à jour: 20080102 08:00
Département de génie informatique
Noureddine Kerzazi © Polytechnique Montréal, 2008. Tous droits réservés.
15 / 15