Génie Logiciel avec Ada. 4 février 2013

Dimension: px
Commencer à balayer dès la page:

Download "Génie Logiciel avec Ada. 4 février 2013"

Transcription

1 Génie Logiciel 4 février 2013

2 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires

3 I. Principes II. Notions propres à la POO I. Principes Chapitre I Généralités III. Conception de l objet II. Notions propres à la POO III. Conception de l objet

4 I. Principes II. Notions propres à la POO I. Principes Chapitre I Généralités III. Conception de l objet II. Notions propres à la POO III. Conception de l objet

5 I. Principes II. Notions propres à la POO I. Principes Chapitre I Généralités III. Conception de l objet II. Notions propres à la POO III. Conception de l objet

6 I. Principes II. Notions propres à la POO III. Conception de l objet La programmation structurée est basée sur une décomposition en actions. La programmation orientée objet travaille avec une décomposition en objet. Les instructions élémentaires sont les mêmes, mais leur regroupement est différent.

7 I. Principes II. Notions propres à la POO III. Conception de l objet La programmation structurée est basée sur une décomposition en actions. La programmation orientée objet travaille avec une décomposition en objet. Les instructions élémentaires sont les mêmes, mais leur regroupement est différent.

8 I. Principes II. Notions propres à la POO III. Conception de l objet La programmation structurée est basée sur une décomposition en actions. La programmation orientée objet travaille avec une décomposition en objet. Les instructions élémentaires sont les mêmes, mais leur regroupement est différent.

9 I. Principes II. Notions propres à la POO III. Conception de l objet On trouve dans l approche objet trois principes fondamentaux : l encapsulation : un objet regroupe à la fois ses attributs et ses opérations associées, l indépendance temporelle : le comportement d un objet est indépendant du contexte dans lequel il est appelé, l indépendance spatiale : les informations relatives à une même entité sont physiquement dans le même module.

10 I. Principes II. Notions propres à la POO III. Conception de l objet On trouve dans l approche objet trois principes fondamentaux : l encapsulation : un objet regroupe à la fois ses attributs et ses opérations associées, l indépendance temporelle : le comportement d un objet est indépendant du contexte dans lequel il est appelé, l indépendance spatiale : les informations relatives à une même entité sont physiquement dans le même module.

11 I. Principes II. Notions propres à la POO III. Conception de l objet On trouve dans l approche objet trois principes fondamentaux : l encapsulation : un objet regroupe à la fois ses attributs et ses opérations associées, l indépendance temporelle : le comportement d un objet est indépendant du contexte dans lequel il est appelé, l indépendance spatiale : les informations relatives à une même entité sont physiquement dans le même module.

12 I. Principes II. Notions propres à la POO III. Conception de l objet La programmation orientée objet apporte de nouvelles notions : notion de classe : une classe regroupe des objets ayant des propriétés et comportements communs (factorisation des propriétés) en Ada package, notion d héritage : une sous-classe est définie à partir d une classe avec des propriétés supplémentaires; la sous-classe hérite des propriétés et des opérations de la classe parente, notion de polymorphisme notion de liaison dynamique : capacité à associer le service surchargé correct en fonction de la référence de la classe, notion de généricité : pour décrire des données et des opérations indépendantes d éléments de la classe.

13 I. Principes II. Notions propres à la POO III. Conception de l objet La programmation orientée objet apporte de nouvelles notions : notion de classe : une classe regroupe des objets ayant des propriétés et comportements communs (factorisation des propriétés) en Ada package, notion d héritage : une sous-classe est définie à partir d une classe avec des propriétés supplémentaires; la sous-classe hérite des propriétés et des opérations de la classe parente, notion de polymorphisme notion de liaison dynamique : capacité à associer le service surchargé correct en fonction de la référence de la classe, notion de généricité : pour décrire des données et des opérations indépendantes d éléments de la classe.

14 I. Principes II. Notions propres à la POO III. Conception de l objet La programmation orientée objet apporte de nouvelles notions : notion de classe : une classe regroupe des objets ayant des propriétés et comportements communs (factorisation des propriétés) en Ada package, notion d héritage : une sous-classe est définie à partir d une classe avec des propriétés supplémentaires; la sous-classe hérite des propriétés et des opérations de la classe parente, notion de polymorphisme notion de liaison dynamique : capacité à associer le service surchargé correct en fonction de la référence de la classe, notion de généricité : pour décrire des données et des opérations indépendantes d éléments de la classe.

15 I. Principes II. Notions propres à la POO III. Conception de l objet La programmation orientée objet apporte de nouvelles notions : notion de classe : une classe regroupe des objets ayant des propriétés et comportements communs (factorisation des propriétés) en Ada package, notion d héritage : une sous-classe est définie à partir d une classe avec des propriétés supplémentaires; la sous-classe hérite des propriétés et des opérations de la classe parente, notion de polymorphisme notion de liaison dynamique : capacité à associer le service surchargé correct en fonction de la référence de la classe, notion de généricité : pour décrire des données et des opérations indépendantes d éléments de la classe.

16 I. Principes II. Notions propres à la POO III. Conception de l objet La programmation orientée objet apporte de nouvelles notions : notion de classe : une classe regroupe des objets ayant des propriétés et comportements communs (factorisation des propriétés) en Ada package, notion d héritage : une sous-classe est définie à partir d une classe avec des propriétés supplémentaires; la sous-classe hérite des propriétés et des opérations de la classe parente, notion de polymorphisme notion de liaison dynamique : capacité à associer le service surchargé correct en fonction de la référence de la classe, notion de généricité : pour décrire des données et des opérations indépendantes d éléments de la classe.

17 I. Principes II. Notions propres à la POO III. Conception de l objet on peut voir trois aspects du polymorphisme : il permet des fonctions de même but, donc de même nom mais dans des classes différentes; par exemple afficher; on parle aussi de surcharge, les fonctions se différencient alors par leurs paramètres (nombre et type) il permet aussi de définir une fonctionnalité sans préciser le type des paramètres; par exemple trier; on parle de généricité, il permet d utiliser une fonctionnalité écrite pour un type sur ses sous-types.

18 I. Principes II. Notions propres à la POO III. Conception de l objet on peut voir trois aspects du polymorphisme : il permet des fonctions de même but, donc de même nom mais dans des classes différentes; par exemple afficher; on parle aussi de surcharge, les fonctions se différencient alors par leurs paramètres (nombre et type) il permet aussi de définir une fonctionnalité sans préciser le type des paramètres; par exemple trier; on parle de généricité, il permet d utiliser une fonctionnalité écrite pour un type sur ses sous-types.

19 I. Principes II. Notions propres à la POO III. Conception de l objet on peut voir trois aspects du polymorphisme : il permet des fonctions de même but, donc de même nom mais dans des classes différentes; par exemple afficher; on parle aussi de surcharge, les fonctions se différencient alors par leurs paramètres (nombre et type) il permet aussi de définir une fonctionnalité sans préciser le type des paramètres; par exemple trier; on parle de généricité, il permet d utiliser une fonctionnalité écrite pour un type sur ses sous-types.

20 I. Principes II. Notions propres à la POO III. Conception de l objet conception de l objet On doit tout d abord établir le plus précisément ce que l on veut faire : c est la phase de spécification. spécifier = construire un modèle abstrait du réel et décrire ce modèle en vue d assurer l adéquation entre produit et utilisation requise du produit. pour représenter le réel on utilise une structure de données structure de données = modèle qui décrit le comportement d un ensemble d informations muni de ses propriétés. Une structure de données peut être vue de l extérieur (valeurs + opérations) et de l intérieur (réalisation concrète).

21 I. Principes II. Notions propres à la POO III. Conception de l objet conception de l objet On doit tout d abord établir le plus précisément ce que l on veut faire : c est la phase de spécification. spécifier = construire un modèle abstrait du réel et décrire ce modèle en vue d assurer l adéquation entre produit et utilisation requise du produit. pour représenter le réel on utilise une structure de données structure de données = modèle qui décrit le comportement d un ensemble d informations muni de ses propriétés. Une structure de données peut être vue de l extérieur (valeurs + opérations) et de l intérieur (réalisation concrète).

22 I. Principes II. Notions propres à la POO III. Conception de l objet conception de l objet On doit tout d abord établir le plus précisément ce que l on veut faire : c est la phase de spécification. spécifier = construire un modèle abstrait du réel et décrire ce modèle en vue d assurer l adéquation entre produit et utilisation requise du produit. pour représenter le réel on utilise une structure de données structure de données = modèle qui décrit le comportement d un ensemble d informations muni de ses propriétés. Une structure de données peut être vue de l extérieur (valeurs + opérations) et de l intérieur (réalisation concrète).

23 I. Principes II. Notions propres à la POO III. Conception de l objet conception de l objet On doit tout d abord établir le plus précisément ce que l on veut faire : c est la phase de spécification. spécifier = construire un modèle abstrait du réel et décrire ce modèle en vue d assurer l adéquation entre produit et utilisation requise du produit. pour représenter le réel on utilise une structure de données structure de données = modèle qui décrit le comportement d un ensemble d informations muni de ses propriétés. Une structure de données peut être vue de l extérieur (valeurs + opérations) et de l intérieur (réalisation concrète).

24 I. Principes II. Notions propres à la POO III. Conception de l objet étapes spécification fonctionnelle (ou abstraite) : on fait la liste des opérations (avec leurs définitions et restrictions) qui agiront sur les données. C est le document de référence de l utilisateur, spécification opérationnelle : elle consiste en deux étapes description logique : c est l interface entre les deux vues interne et externe; on organise la structure de données en utilisant des structures informatiques classiques (par exemple des tableaux), représentation physique : c est l implémentation complète faite dans un langage de programmation fixé.

25 I. Principes II. Notions propres à la POO III. Conception de l objet étapes spécification fonctionnelle (ou abstraite) : on fait la liste des opérations (avec leurs définitions et restrictions) qui agiront sur les données. C est le document de référence de l utilisateur, spécification opérationnelle : elle consiste en deux étapes description logique : c est l interface entre les deux vues interne et externe; on organise la structure de données en utilisant des structures informatiques classiques (par exemple des tableaux), représentation physique : c est l implémentation complète faite dans un langage de programmation fixé.

26 I. Principes II. Notions propres à la POO III. Conception de l objet étapes spécification fonctionnelle (ou abstraite) : on fait la liste des opérations (avec leurs définitions et restrictions) qui agiront sur les données. C est le document de référence de l utilisateur, spécification opérationnelle : elle consiste en deux étapes description logique : c est l interface entre les deux vues interne et externe; on organise la structure de données en utilisant des structures informatiques classiques (par exemple des tableaux), représentation physique : c est l implémentation complète faite dans un langage de programmation fixé.

27 I. Principes II. Notions propres à la POO III. Conception de l objet étapes spécification fonctionnelle (ou abstraite) : on fait la liste des opérations (avec leurs définitions et restrictions) qui agiront sur les données. C est le document de référence de l utilisateur, spécification opérationnelle : elle consiste en deux étapes description logique : c est l interface entre les deux vues interne et externe; on organise la structure de données en utilisant des structures informatiques classiques (par exemple des tableaux), représentation physique : c est l implémentation complète faite dans un langage de programmation fixé.

28 I. Principes II. Notions propres à la POO III. Conception de l objet pour spécifier un type de données abstrait on fournira 1 type : les noms des types définis 2 utilise : les types abstraits déjà définis utilisés 3 opérations : les opérations avec leur signature( 1 ) 4 préconditions : les restrictions éventuelles d utilisation des opérations 1. la signature d une opération est sa description syntactique

29 I. Principes II. Notions propres à la POO III. Conception de l objet pour spécifier un type de données abstrait on fournira 1 type : les noms des types définis 2 utilise : les types abstraits déjà définis utilisés 3 opérations : les opérations avec leur signature( 1 ) 4 préconditions : les restrictions éventuelles d utilisation des opérations 1. la signature d une opération est sa description syntactique

30 I. Principes II. Notions propres à la POO III. Conception de l objet pour spécifier un type de données abstrait on fournira 1 type : les noms des types définis 2 utilise : les types abstraits déjà définis utilisés 3 opérations : les opérations avec leur signature( 1 ) 4 préconditions : les restrictions éventuelles d utilisation des opérations 1. la signature d une opération est sa description syntactique

31 I. Principes II. Notions propres à la POO III. Conception de l objet pour spécifier un type de données abstrait on fournira 1 type : les noms des types définis 2 utilise : les types abstraits déjà définis utilisés 3 opérations : les opérations avec leur signature( 1 ) 4 préconditions : les restrictions éventuelles d utilisation des opérations 1. la signature d une opération est sa description syntactique

32 I. Exemple II. Pile Chapitre II Structures linéaires III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation I. Exemple II. Pile III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation

33 I. Exemple II. Pile Chapitre II Structures linéaires III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation I. Exemple II. Pile III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation

34 I. Exemple II. Pile Chapitre II Structures linéaires III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation I. Exemple II. Pile III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation

35 I. Exemple II. Pile Chapitre II Structures linéaires III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation I. Exemple II. Pile III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation

36 I. Exemple II. Pile Chapitre II Structures linéaires III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation I. Exemple II. Pile III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation

37 I. Exemple II. Pile Chapitre II Structures linéaires III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation I. Exemple II. Pile III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation

38 I. Exemple II. Pile Chapitre II Structures linéaires III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation I. Exemple II. Pile III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation

39 I. Exemple II. Pile III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation Une structure de données est linéaire lorsque les données sont en quelque sorte les unes derrière les autres : chaque donnée a une donnée successeur et une donnée prédécesseur exception faite éventuellement des données qui sont aux extrémités. Une fois les données rangées, la structure sera amenée à évoluer par l ajout de nouvelles données ou la suppression de données appartenant à la structure. Selon la façon de procéder à ces modifications, on distinguera plusieurs types de structures.

40 I. Exemple exemple II. Pile III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation Un robot piloté à distance reçoit différents types d instructions pour se déplacer : en avant, en arrière, à droite, à gauche. Il est de plus muni d une mémoire linéaire qui enregistre la suite d instructions et ne démarre qu une fois toutes les instructions reçues. Par exemple, en avant, en avant, à droite, en avant, à gauche, à gauche, en arrière. Le choix du déplacement dépendra de la façon dont est gérée la mémoire : il choisit soit la première instruction entrée soit la dernière. Dans le premier cas sa mémoire fonctionne comme une file. Dans ce dernier cas sa mémoire fonctionne comme une pile.

41 Génie Logiciel I. Exemple II. Pile 3 Mémoire pile, départ tourné vers le bas III. Généricité IV. File 2 V. Allocation dynamique et pointeur 1 départ VI. Listes chaînées VII. Sémantique de l affectation 0 arrivée

42 Génie Logiciel I. Exemple II. Pile 3 Mémoire file, départ tourné vers le bas III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation départ -2 arrivée

43 I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation Une pile est donc une structure de données linéaire dans laquelle ajout et suppression se font au même bout de la structure : son sommet. On dit qu on empile lorsque l on ajoute un nouvel élément à la pile et cet ajout se fait au sommet de la pile. On dit qu on dépile lorsque l on supprime un élément de la pile et puisque la suppression se fait aussi au sommet de la pile, l élément supprimé est nécessairement le dernier élément à avoir été empilé. Une pile est aussi désignée par l acronyme anglais LIFO (Last In First Out). Une pile permet par exemple à un navigateur (Firefox, IE...) de gérer le bouton reculer d une page ou pour un logiciel de gérer la fonctionnalité undo.

44 spécification fonctionnelle I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation Elle est donc définie par le type de données abstrait pile suivant : type pile utilise type E, type booléen signature initilialiser : pile empiler : (pile,e) pile dépiler : pile pile sommet : pile E vide : pile booléen

45 I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation préconditions axiomes dépiler(p) est défini si et seulement si vide(p)= Faux sommet(p) est défini si et seulement si vide(p)= Faux vide(initilialiser)= Vrai vide(empiler(p,e))=faux dépiler(empiler(p,e))=p sommet(empiler(p,e))= E remarques : les préconditions précisent la restriction du domaine de définition des deux opérations dépiler et sommet les axiomes assurent le fonctionnement LIFO.

46 description logique I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées Pour représenter une pile on utilisera tout d abord un tableau pour stocker les valeurs de type E. Il nous faut de plus un moyen de repérer le sommet de la pile : on utilisera donc un index sur le tableau qui contiendra l indice de la dernière valeur empilée. Pour ne pas avoir deux objets à gérer pour définir une pile, on regroupera ces deux données tableau + index dans une structure d article. VII. Sémantique de l affectation

47 description logique I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées Pour représenter une pile on utilisera tout d abord un tableau pour stocker les valeurs de type E. Il nous faut de plus un moyen de repérer le sommet de la pile : on utilisera donc un index sur le tableau qui contiendra l indice de la dernière valeur empilée. Pour ne pas avoir deux objets à gérer pour définir une pile, on regroupera ces deux données tableau + index dans une structure d article. VII. Sémantique de l affectation

48 description logique I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées Pour représenter une pile on utilisera tout d abord un tableau pour stocker les valeurs de type E. Il nous faut de plus un moyen de repérer le sommet de la pile : on utilisera donc un index sur le tableau qui contiendra l indice de la dernière valeur empilée. Pour ne pas avoir deux objets à gérer pour définir une pile, on regroupera ces deux données tableau + index dans une structure d article. VII. Sémantique de l affectation

49 description logique I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur On va réaliser une pile d entiers de façon à ce qu elle soit réutilisable. Pour cela on utilisera la notion de paquetage qui représente une unité de bibliothèque utilisable par la clause with que l on utilise par exemple pour appeler les procédures d entrée-sortie. Ada nous permet de séparer spécification fonctionnelle et spécification opérationnelle. VI. Listes chaînées VII. Sémantique de l affectation

50 I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation Dans un fichier toto.ads (de suffixe ads pour Ada Specification) sont déclarés les types implémentant la structure de données les procédures et fonctions de la signature puis dans un fichier toto.adb (de suffixe adb pour Ada Body) seront précisés les corps des procédures et fonctions déclarées dans le fichier toto.ads. Un utilisateur du paquetage toto pourra utiliser tout ce qui est présent dans toto.ads (type et opérations). remarque : le fichier toto.adb peut contenir d autres déclarations servant à la réalisation des opérations de la spécification mais ces opérations n ont pas pour but d être utilisées par un utilisateur du paquetage toto.

51 le fichier pileentier.ads I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur package pileentier is type contenant is array ( positive range <>) of integer ; type pile is record tabpile : contenant (1..256) ; top : natural ; end record ; procedure initpile (p : out pile ) ; procedure empiler (p : in out pile ; e : in integer ) ; procedure depiler (p : in out pile ) ; function sommet (p : pile ) return integer ; function pilevide (p : pile ) return boolean ; end pileentier ; VI. Listes chaînées VII. Sémantique de l affectation

52 I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées le fichier pileentier.adb package body pileentier is procedure initpile (p : out pile ) is begin p. top := 0; end initpile ; procedure empiler (p : in out pile ; e : in integer ) is begin p. tabpile (p. top+1) := e ; p. top := p. top+1 ; end empiler ; procedure depiler (p : in out pile ) is begin p. top := p.top 1 ; end depiler ; function sommet (p : pile ) return integer is begin return (p. tabpile (p. top )) ; end sommet ; function pilevide (p : pile ) return boolean is begin return (p. top=0) ; end pile vide ; end pileentier ; VII. Sémantique de l affectation

53 I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation Cette version pose certains problèmes : 1 elle ne fonctionne que pour des piles d entiers alors que le mécanisme de la pile est indépendant du type des valeurs qu elle contient 2 empiler(p,e) provoque une erreur si p.top = sommet(p) ou depiler(p) provoque une erreur si p.top = 0 4 la déclaration d une pile ne l initialise pas et donc on ne peut appeler aucune procédure ou fonction si l on n a pas initialisé préalablement la pile. Pour le point 3, l utilisateur à qui on a fourni les spécifications doit connaître les préconditions et donc un usage impropre de sommet ou depiler est de sa responsabilité (d autant qu il a le moyen de tester si une pile est vide). Pour le point 4, l existence de initpile doit s accompagner d un commentaire pour faire comprendre que son usage est indispensable pour toute pile déclarée.

54 I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation Cette version pose certains problèmes : 1 elle ne fonctionne que pour des piles d entiers alors que le mécanisme de la pile est indépendant du type des valeurs qu elle contient 2 empiler(p,e) provoque une erreur si p.top = sommet(p) ou depiler(p) provoque une erreur si p.top = 0 4 la déclaration d une pile ne l initialise pas et donc on ne peut appeler aucune procédure ou fonction si l on n a pas initialisé préalablement la pile. Pour le point 3, l utilisateur à qui on a fourni les spécifications doit connaître les préconditions et donc un usage impropre de sommet ou depiler est de sa responsabilité (d autant qu il a le moyen de tester si une pile est vide). Pour le point 4, l existence de initpile doit s accompagner d un commentaire pour faire comprendre que son usage est indispensable pour toute pile déclarée.

55 I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation Cette version pose certains problèmes : 1 elle ne fonctionne que pour des piles d entiers alors que le mécanisme de la pile est indépendant du type des valeurs qu elle contient 2 empiler(p,e) provoque une erreur si p.top = sommet(p) ou depiler(p) provoque une erreur si p.top = 0 4 la déclaration d une pile ne l initialise pas et donc on ne peut appeler aucune procédure ou fonction si l on n a pas initialisé préalablement la pile. Pour le point 3, l utilisateur à qui on a fourni les spécifications doit connaître les préconditions et donc un usage impropre de sommet ou depiler est de sa responsabilité (d autant qu il a le moyen de tester si une pile est vide). Pour le point 4, l existence de initpile doit s accompagner d un commentaire pour faire comprendre que son usage est indispensable pour toute pile déclarée.

56 I. Exemple II. Pile 1. spécification fonctionnelle 2. description logique 3. représentation physique 4. description logique 5. représentation physique 6. description logique 7. représentation physique III. Généricité IV. File V. Allocation dynamique et pointeur VI. Listes chaînées VII. Sémantique de l affectation Cette version pose certains problèmes : 1 elle ne fonctionne que pour des piles d entiers alors que le mécanisme de la pile est indépendant du type des valeurs qu elle contient 2 empiler(p,e) provoque une erreur si p.top = sommet(p) ou depiler(p) provoque une erreur si p.top = 0 4 la déclaration d une pile ne l initialise pas et donc on ne peut appeler aucune procédure ou fonction si l on n a pas initialisé préalablement la pile. Pour le point 3, l utilisateur à qui on a fourni les spécifications doit connaître les préconditions et donc un usage impropre de sommet ou depiler est de sa responsabilité (d autant qu il a le moyen de tester si une pile est vide). Pour le point 4, l existence de initpile doit s accompagner d un commentaire pour faire comprendre que son usage est indispensable pour toute pile déclarée.

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche 1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de

Plus en détail

Programmation générique des arbres binaires de recherche AVL et applications

Programmation générique des arbres binaires de recherche AVL et applications Introduction Programmation générique des arbres binaires de recherche AVL et applications Ce TP porte sur l étude d une structure de données appelée arbres binaires de recherche qui sert généralement à

Plus en détail

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement des objets d'une classe Utilisation d'une classe Droit

Plus en détail

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin 2010. Algorithmique 1

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin 2010. Algorithmique 1 Algorithmique 1 Durée : 2h Machines électroniques interdites Tous documents papiers autorisés Il est conseillé de traiter les deux parties dans l ordre du sujet. Veuillez respecter les notations introduites

Plus en détail

Chapitre 3 Structures de données linéaires : listes, piles et files

Chapitre 3 Structures de données linéaires : listes, piles et files Chapitre 3 Structures de données linéaires : listes, piles et files 1. Introduction Le but de ce chapitre est de décrire des représentations des structures de données de base telles les listes en général

Plus en détail

Algorithmique & programmation

Algorithmique & programmation Algorithmique & programmation Chapitre 3 : Fichiers séquentiels Entrées/Sorties Fichiers Binaires à Accès Séquentiel Fichiers et Ada!! En Ada les entrées/sorties sont supportées par des paquetages standards

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

COMMENT DÉFINIR L ORIENTÉ OBJET

COMMENT DÉFINIR L ORIENTÉ OBJET COMMENT DÉFINIR L ORIENTÉ OBJET De manière superficielle, le terme «orienté objet», signifie que l on organise le logiciel comme une collection d objets dissociés comprenant à la fois une structure de

Plus en détail

Programmation Objet - Cours II

Programmation Objet - Cours II Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à

Plus en détail

Algorithmique & programmation

Algorithmique & programmation Algorithmique & programmation Type structuré Article, Enregistrement, Structure Définition de nouveaux types!! On a vu les types simples "! entier, booléen, caractère, chaîne de caractères!! Comment gérer

Plus en détail

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Programmation Orientée Objet

Programmation Orientée Objet Université de Pau et des Pays de l Adour Institut Universitaire de Technologie des Pays de l Adour Département Réseaux et Télécommunications 371, rue du Ruisseau BP 201 40004 Mont-de-Marsan Cedex tél :

Plus en détail

C ellules. Gestion et récupération automatique de mémoire. Principes des lang. de progr. INE 11. Allocation dynamique de mémoire.

C ellules. Gestion et récupération automatique de mémoire. Principes des lang. de progr. INE 11. Allocation dynamique de mémoire. Principes des lang. de progr. INE 11 Michel Mauny ENSTA ParisTech Prénom.Nom@ensta.fr Michel Mauny (ENSTA ParisTech) INE 11 Prénom.Nom@ensta.fr 1 / 37 Gestion et récupération automatique de mémoire lanage

Plus en détail

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

Plus en détail

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections

Plus en détail

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Polymorphisme, la classe Object, les package et la visibilité en Java... 1 Polymorphisme, la classe Object, les package et la visibilité en Java. Polymorphisme, la classe Object, les package et la visibilité en Java.... 1 Polymorphisme.... 1 Le DownCast... 4 La Classe Object....

Plus en détail

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications P.-A. Sunier, HEG-Arc Neuchâtel avec le concours de J. Greub pierre-andre.sunier@he-arc.ch http://lgl.isnetne.ch/

Plus en détail

Programmation en VBA

Programmation en VBA Programmation en VBA Présentation de Visual Basic Visual Basic : Basic : dérivé du langage Basic (Biginner s All purpose Symbolic Instruction Code) des années 60 Visual : dessin et aperçu de l interface

Plus en détail

Auto-évaluation Programmation en Java

Auto-évaluation Programmation en Java Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN

Plus en détail

Cours de compilation

Cours de compilation Cours de compilation 1 Introduction Un compilateur est un logiciel de traduction d un langage source vers un langage cible. D ordinaire le langage source est un langage de programmation évolué, comme C++

Plus en détail

Objets et Programmation. origine des langages orientés-objet

Objets et Programmation. origine des langages orientés-objet Objets et Programmation origine des langages orientés-objet modularité, encapsulation objets, classes, messages exemples en Java héritage, liaison dynamique G. Falquet, Th. Estier CUI Université de Genève

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014 numériques et Institut d Astrophysique et de Géophysique (Bât. B5c) Bureau 0/13 email:.@ulg.ac.be Tél.: 04-3669771 29 septembre 2014 Plan du cours 2014-2015 Cours théoriques 16-09-2014 numériques pour

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

Traduction des Langages : Le Compilateur Micro Java BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

Une introduction à Java

Une introduction à Java Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2 Langage et Concepts de Programmation Objet Travaux Dirigés no2 Pôle Informatique École Nationale Supérieure des Mines de St-Etienne Vous trouverez plus de détails sur les concepts abordés lors de ce TD

Plus en détail

QUELQUES NOTIONS SUR ADA

QUELQUES NOTIONS SUR ADA 220 QUELQUES N0TI0NS SUR A D A HISTORIQUE C'est en 1974 que le département Américain de la défense (D.O.D.) conclut à la nécessité d'améliorer les outils de programmation et la méthodologie: en effet le

Plus en détail

Héritage en java : Calculatrice SDC

Héritage en java : Calculatrice SDC Programmation orientée objet L3 MIAGE Héritage en java : Calculatrice SDC Travail à rendre : le code complet du projet SDC sous forme d une archive tar.gz. L archive comportera trois répertoires : un répertoire

Plus en détail

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

Plus en détail

Classes et Objets en Ocaml.

Classes et Objets en Ocaml. Classes et Objets en Ocaml. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/2/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/2/ Cours Exercices Slide 1 1. Objets 2.

Plus en détail

4. Groupement d objets

4. Groupement d objets Conception objet en Java avec BlueJ une approche interactive 4. Groupement d objets Collections et itérateurs David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Principaux

Plus en détail

Héritage presque multiple en Java (1/2)

Héritage presque multiple en Java (1/2) Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen

Plus en détail

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes

Plus en détail

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2 Débuter avec EXPRESS Alain Plantec Table des matières 1 Schema 2 2 Entité 2 2.1 Attributs simples................................................ 2 2.2 Attributs collection...............................................

Plus en détail

Projet EvaluationsEleves/Professeurs

Projet EvaluationsEleves/Professeurs Projet EvaluationsEleves/Professeurs Ce projet Java comporte les objectifs suivants: 1) Diagramme de classes 2) Développer de l'application en mode console avec un jeu de tests fourni 3) Lecture des notes/eleves/professeurs

Plus en détail

Structure fonctionnelle d un SGBD

Structure fonctionnelle d un SGBD Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert

Plus en détail

Listes de personnes et calculatrice polonaise inverse en Java

Listes de personnes et calculatrice polonaise inverse en Java Listes de personnes et calculatrice polonaise inverse en Java Université Paris Sud Motivation Le but de cet exercice est de manipuler les listes chaînées et les piles et de voir leur application en analyse

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

LES CONCEPTS OBJETS. On regroupe les objets ayant les mêmes types de propriétés et de comportements en une classe.

LES CONCEPTS OBJETS. On regroupe les objets ayant les mêmes types de propriétés et de comportements en une classe. LES CONCEPTS OBJETS I Objet et Classe Un objet est une entité du monde réel qui a très souvent un identifiant des propriétés des comportements (actions qu il peut effectuer). La voiture de Clément a pour

Plus en détail

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

Plus en détail

INF601 : Algorithme et Structure de données

INF601 : Algorithme et Structure de données Cours 2 : TDA Liste B. Jacob IC2/LIUM 15 février 2010 Plan 1 Définition du TDA Liste 2 Réalisation du TDA Liste 3 Type de stockage des éléments 4 Recherche d un élément Dans une liste non triée Dans une

Plus en détail

Langage Java. Classe de première SI

Langage Java. Classe de première SI Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les

Plus en détail

Architecture des applications

Architecture des applications Architecture des applications Table des matières 1 Introduction 1 2 Les classes valeurs 2 2.1 Les Javaeans............................................. 2 2.2 Les différents types de Javaeans...................................

Plus en détail

Claude Kaiser Paradigmes de la concurrence SRI_B PASSAGE DE TÉMOIN

Claude Kaiser Paradigmes de la concurrence SRI_B PASSAGE DE TÉMOIN PASSAGE DE TÉMOIN coopération par division du travail entre les processus 4) Rendez-vous à 2, symétrique, avec ou non une écriture ou un envoi de message (avec acquittement) Rendez-vous multiple : m processus

Plus en détail

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Structures de données non linéaires

Structures de données non linéaires Structures de données non linéaires I. Graphes Définition Un graphe (simple) orienté G est un couple (S, A), où : S est un ensemble dont les éléments sont appelés les sommets. A est un ensemble de couples

Plus en détail

Le langage PHP. Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/

Le langage PHP. Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ Le langage PHP Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ 1 / 38 Plan 1 Introduction au langage PHP 2 2 / 38 Qu est ce que PHP? langage interprété

Plus en détail

Norme de programmation pour le cours et les travaux pratiques

Norme de programmation pour le cours et les travaux pratiques Université du Québec École de technologie supérieure Service des enseignements généraux www.seg.etsmtl.ca INF130 Ordinateurs et programmation Norme de programmation pour le cours et les travaux pratiques

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

Cours 1: Java et les objets

Cours 1: Java et les objets Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/

Plus en détail

Cours de Programmation 2

Cours de Programmation 2 Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes

Plus en détail

Travaux dirigés : Programmation Orientée objet

Travaux dirigés : Programmation Orientée objet Travaux dirigés : Programmation Orientée objet Exercice 1: Créer un projet c# qui permet de gérer les voitures sachant que une voiture est caractérisée par sa matricule, marque, puissance 1. Les attributs

Plus en détail

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Compilation séparée ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Modularité GCC : 4 millions de lignes de code Noyau

Plus en détail

ACCESS 2013. Système de Gestion de Bases de Données Relationnelles

ACCESS 2013. Système de Gestion de Bases de Données Relationnelles Access est un logiciel permettant de gérer des données en masse : une liste de clients ou de fournisseurs, un stock de produits, des commandes, des salariés, un club de tennis, une cave à vin, une bibliothèque,

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

Introduction. Chapitre 1. 1.1 Introduction. 1.1.1 Bibliothèques. 1.1.2 Programmation de Haute Qualité

Introduction. Chapitre 1. 1.1 Introduction. 1.1.1 Bibliothèques. 1.1.2 Programmation de Haute Qualité Chapitre 1 Introduction Buts du chapitre : Motivation pour l étude des types abstraits de données ; Syntaxe de base pour l écriture de spécifications. 1.1 Introduction 1.1.1 Bibliothèques 1. L3, déjà une

Plus en détail

Programmation en VBA

Programmation en VBA Programmation en VBA Présentation de Visual Basic Visual Basic : Basic : dérivé du langage Basic (Biginner s All purpose Symbolic Instruction Code) des années 60 Visual : dessin et aperçu de l interface

Plus en détail

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

F. Barthélemy. 17 mai 2005

F. Barthélemy. 17 mai 2005 Typage de la généricité en Java F. Barthélemy 17 mai 2005 1 Le shéma général La g én éricit é en Java est un ajout r éalis é sur un langage existant depuis d éjà une dizaine d ann ées, avec des contraintes

Plus en détail

La surcharge. Chapitre 6

La surcharge. Chapitre 6 Chapitre 6 La surcharge Le mot polymorphisme veut dire qui a plusieurs formes. Le polymorphisme, sous une forme embryonnaire, se rencontre pratiquement dans tout langage de programmation. Par exemple l

Plus en détail

Programmation Objet Java Correction

Programmation Objet Java Correction INSA - 4 AE 2007 2008 Durée : 1H00 Contrôle Programmation Objet Java Correction Consignes Tous les documents sont autorisés, mais ils seront peu utiles. Indiquez vos nom et prénom sur chaque feuille. Le

Plus en détail

Cours Algorithmique, 2ème partie AS IUT

Cours Algorithmique, 2ème partie AS IUT Cours Algorithmique, 2ème partie AS IUT Cours 2 : Arbres Binaires Anne Vilnat http://www.limsi.fr/individu/anne/coursalgo Plan 1 Représentations arborescentes 2 Définition d un arbre binaire récursive

Plus en détail

Utilisation de SystemC pour la conception des SoC

Utilisation de SystemC pour la conception des SoC Utilisation de SystemC pour la conception des SoC aniela ragomirescu 1,2, Roberto Reyna 3 1 - Université de Toulouse : INSA Toulouse, 135 Av. de Rangueil Toulouse cedex 4 2-LAAS-CNRS ; Université de Toulouse,

Plus en détail

Module FMIN358 Technologies du Web : PHP objet et couches d accès aux bases de données

Module FMIN358 Technologies du Web : PHP objet et couches d accès aux bases de données Module FMIN358 Technologies du Web : PHP objet et couches d accès aux bases de données 1. Exploiter une couche métier objet PHP prend en charge certains des grands principes du paradigme objet (héritage,

Plus en détail

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

Programmation Visual Basic sous Excel

Programmation Visual Basic sous Excel 1 Programmation Visual Basic sous Excel Version provisoire Septembre 06 1 Introduction Excel était avant tout un tableur. Au fil des versions, il a su évoluer et intégrer des fonctionnalités qui le rendent

Plus en détail

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

UML et les Bases de Données

UML et les Bases de Données CNAM UML et les Bases de Données UML et les Bases de Données. Diagramme de classes / diagramme d objets (UML)...2.. Premier niveau de modélisation des données d une application...2.2. Les éléments de modélisation...2.2..

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Utilisation simplifiée des objets automation

Utilisation simplifiée des objets automation Auteur : Michaël Moreno Web : http://michael.moreno.free.fr/ Niveau de programmation : Avancé Utilisation simplifiée des objets automation NB : La programmation des objets automation requiert un bon niveau

Plus en détail

TD/TP PAC - Programmation n 3

TD/TP PAC - Programmation n 3 Université Paris Sud Licence d informatique/iup-miage2 Année 2004-2005 Auteur : Frédéric Vernier Semaine : 11-16 octobre 2004 Conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html

Plus en détail

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1 Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-

Plus en détail

Programmation par composants (1/3) Programmation par composants (2/3)

Programmation par composants (1/3) Programmation par composants (2/3) Programmation par composants (1/3) La programmation par composant vise le développement de logiciel par aggrégation de briques logicielles existantes est indépendante de la POO La programmation par composant

Plus en détail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

Configuration et Déploiement d Applications Réparties par Intégration de l Hétérogénéité des Implémentations dans un Langage de Description d

Configuration et Déploiement d Applications Réparties par Intégration de l Hétérogénéité des Implémentations dans un Langage de Description d Configuration et Déploiement d Applications Réparties par Intégration de l Hétérogénéité des Implémentations dans un Langage de Description d Architecture Doctorant: Directeurs de thèse: Bechir ZALILA

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement

Plus en détail

IFT2255 : Génie logiciel

IFT2255 : Génie logiciel IFT2255 : Génie logiciel Chapitre 6 - Analyse orientée objets Section 1. Introduction à UML Julie Vachon et Houari Sahraoui 6.1. Introduction à UML 1. Vers une approche orientée objet 2. Introduction ti

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Université de Bangui. Modélisons en UML

Université de Bangui. Modélisons en UML Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et

Plus en détail

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

Plus en détail

MÉTHODOLOGIES DE CONCEPTION ET NOTATION GRAPHIQUE

MÉTHODOLOGIES DE CONCEPTION ET NOTATION GRAPHIQUE MÉTHODOLOGIES DE CONCEPTION ET NOTATION GRAPHIQUE m Notations : diagrammes m Diagrammes de transition d'états m Méthodes d'analyse de flot de m Conventions pour diagrammes données objet m Diagrammes de

Plus en détail

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application

Plus en détail

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014

Langage C/C++ TD 3-4 : Création dynamique d objets. Hubert Godfroy. 27 novembre 2014 Langage C/C++ TD 3-4 : Création dynamique d objets Hubert Godfroy 7 novembre 014 1 Tableaux Question 1 : Écrire une fonction prenant un paramètre n et créant un tableau de taille n (contenant des entiers).

Plus en détail

AADL. un langage pour la modélisation et la génération d applications. Thomas Vergnaud, thomas.vergnaud@enst.fr

AADL. un langage pour la modélisation et la génération d applications. Thomas Vergnaud, thomas.vergnaud@enst.fr AADL un langage pour la modélisation et la génération d applications, thomas.vergnaud@enst.fr Les langages de description d architecture la conception des systèmes devient complexe difficulté de compréhension

Plus en détail

Université Bordeaux 1, Licence Semestre 3 - Algorithmes et struct...

Université Bordeaux 1, Licence Semestre 3 - Algorithmes et struct... Université Bordeaux 1 table des matières Licence Semestre 3 - Algorithmes et structures de données 1 Dernière mise à jour effectuée le 23 Octobre 2013 Piles et Files Déitions Primitives de piles, exemples

Plus en détail

MEGA TeamWork. Guide d utilisation

MEGA TeamWork. Guide d utilisation MEGA TeamWork Guide d utilisation MEGA 2009 SP4 1ère édition (juin 2010) Les informations contenues dans ce document pourront faire l objet de modifications sans préavis et ne sauraient en aucune manière

Plus en détail

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail