Vous êtes sur la page 1sur 15

INF6300 

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 Temps­Réel (Annexe D) 
14 (17 Avril)  Présentations des participants 
­ 

Dernière mise à jour: 2007­12­22 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 | Lectures | Outils 

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: 2008­01­02 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 | Lectures | Outils 

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 sous­ensemble 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: 2008­01­02 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 | Lectures | Outils 

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 sous­types 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: 2008­01­02 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 | Lectures | Outils 

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: 2008­01­02 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 | Lectures | Outils 

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 rendez­vous 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 rendez­vous
·  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: 2008­01­02 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 | Lectures | Outils 

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: 2008­01­02 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 | Lectures | Outils 

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: 2008­01­02 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 | Lectures | Outils 

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: 2008­01­02 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 | Lectures | Outils 

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: 2008­01­02 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 | Lectures | Outils 

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: 2008­01­02 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 | Lectures | Outils 

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  sous­types  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: 2008­01­02 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 | Lectures | Outils 

Description 
Exploitation  des  attributs  pour  un  préfixe  P  qui  dénote  un  sous­programme (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: 2008­01­02 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 Temps­Réel (Annexe D) 

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 

| Description | Lectures | Outils 

Description 
Annexe D n’est pas obligatoire (développeur de compilateurs). 

Objectifs:

·  Ajouts spécifiques pour la programmation en temps­ré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: 2008­01­02 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 | Lectures | Outils 

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: 2008­01­02 08:00 
Département de génie informatique 
Noureddine Kerzazi © Polytechnique Montréal, 2008. Tous droits réservés.

15 / 15 

Vous aimerez peut-être aussi