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

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

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

Transcription

1 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 contraintes structurelles (e.g. un attribut dans une classe) contraintes de types (e.g. sous-typage) contraintes diverses (e.g. composition, cardinalité, etc.) via des propriétés prédéfinies sur des classes (e.g. {ordered}) sur des rôles (e.g. {ordered}) C est bien, mais c est loin d être suffisant... OCL 2 Expression des contraintes e n l a n g u e n a t u r e l l e Exprimer les contraintes en langue naturelle Simple à mettre en oeuvre utilisation des notes en UML + texte libre compréhensible par tous Indispensable documenter les contraintes est essentiel Problèmes ambigu, imprécis difficile d exprimer clairement des contraintes complexes OCL : Object C o n t r a i n t L a n g u a g e OCL = Object Constraint Language Un des langages d UML Défini (relativement) rigoureusement Syntaxe précise Syntaxe textuelle (sans symboles étranges) Simple à écrire et à comprendre Raisonnablement puissant Utilisé pour définir (partiellement) la sémantique d UML OCL 3 OCL 4 C a r a c t é r i s t i q u e s d OCL Initialement développé par IBM, méthode Syntropy OCL est un langage d expression basé sur le concept de valeur et d expression aucun effet de bord sous ensemble des langages fonctionnels OCL est un langage fortement typé OCL permet de spécifier, pas de programmer Parfaitement adapté à UML Langage extensible OCL 5 L a c u n e s Pas défini très proprement Pas vraiment lisible pour des contraintes complexes Pas aussi rigoureux qu un langage de spécification comme Z ou B => pas de preuves possibles Puissance d expression limitée Avantages principaux être parfaitement intégré à UML exister, être standardisé quelques bonnes idées OCL 6 1

2 Où utiliser OCL A s s o c i e r u n e c o n t r a i n t e à u n é l é m e n t d un modèle OCL peut être utilisé pour décrire des prédicats invariants de classes (inv) pré-conditions d opérations (pre) post-conditions d opérations (post) gardes OCL peut également être utilisé pour naviguer OCL 7 Une contrainte est toujours associé à un élément de modèle : le contexte de la contrainte Pour associer une contrainte à son contexte : utiliser une note UML et la relier par un trait pointillé permet de visualiser directement le contexte ne pas mettre trop de contraintes sur un même schéma! l associer par un autre moyen interactif avec un outil dépend de l outil utilisé décrire explicitement le contexte d utilisation sous forme de texte (context Personne inv : age>10) permet de regrouper l ensemble des contraintes dans un texte OCL 8 I n v a r i a n t s Prédicat associé à une classe, une association,... Doit être vérifié à tout instant Le contexte est défini par un objet cet objet peut être référencé par self l objet peut être nommé explicitement L invariant peut être nommé context Personne inv : age>0 and self.age<110 E x e m p l e s d i n v a r i a n t s context p : Personne inv mariagelégal : p.marié implies p.age > 16 inv enfantsok : p.enfants->size < 20 context p : Personne inv ageok : p.age < 110 OCL 9 OCL 10 Pré-c o n d i t i o n s e t p o s t -c o n d i t i o n s E x e m p l e s d e Pré-c o n d i t i o n s e t p o s t -c o n d i t i o n s Prédicats associés à une opération les pré-conditions doivent être vérifiées avant l exécution pour que l opération soit valide les post-conditions doivent être vraies après l exécution self désigne l objet sur lequel l opération à permet de faire référence à la valeur avant l opération context Type::opération( param1 : Type1, ) : Type pre nom1 : param1 < pre n o m 2 : post nom2 : result > OCL 11 context Personne::anniversaireArrive () post : age = + 1 context Personne::salaire() : integer post : return > 5000 context Compagnie:: embaucheemployé( p : Personne) pre pasprésent : not employés->includes(p) post embauché : employés->includes(p) OCL 12 2

3 T y p e s S y n t a x e d e s e x p r e s s i o n s Types de bases Integer Real Boolean String Types énumérés Types construits Set(T) Sequence(T) Bag(T) Collection(T) Types provenant d UML classes associations Méta-types OclType OclAny OclState OclExpression OCL 13 OCL est un langage simple d expressions constantes identificateur self expr op expr exprobjet. propobjet ( parametres ) exprcollection -> propcollection ( parametres ) package::package::element if cond then expr else expr endif let var : type in expr OCL 14 A r e t e n i r E x e m p l e s d e x p r e s s i o n s Toute expression à un type et une valeur Aucun effet de bord Une expression est relative à un élément (contexte). permet d accéder à une propriété d un objet -> permet d accéder à une propriété d une collection :: permet d accéder à un élément d un paquetage Des régles permettent de mixer collection et objets OCL self.nom self.impôts(1998) / self.enfants->size self.salaire() self.enfants->select( sexe = #masculin ) self.enfants->isempty self.enfants->forall(age>20) self.enfants->collect(salaire)->sum self.enfants->union(self.parents)->collect(age) OCL 16 I n t e g e r et Real Integer valeurs : 1, -5, 34, 24343,... opérations : +, -, *, d i v, mod, abs, max, min Real valeurs : 1.5, 1.34,... opérations : +, -, *, /, floor, round, max, min Le type Integer est «conforme» au type Real OCL 17 B o o l e a n Boolean valeur : true, false opérations : not, and, or, xor, implies, if-then-else-endif L évaluation des opérateurs or, and, if est partielle true or x est toujours vrai, même si x est indéfini false and x est toujours faux, même si x est indéfini (age<40 implies salaire>10000) and (age>=40 implies salaire>20000) if age<40 then salaire > else salaire > endif salaire > (if age<40 then else endif) OCL 18 3

4 String E n u m é r a t i o n String valeur :, une phrase opérations : = s.size(), s1.concat(s2), s1.substring(i1,i2) s1.toupper(), s1.tolower() Définition d un type énuméré enum { masculin, feminin } Utilisation d une valeur d un type énuméré #lundi Toutes les valeurs appartiennent à un seul type Opération =, <> OCL 19 OCL 20 C o l l e c t i o n s Utilisation des collections en UML OCL permet de gérer 3 types de collections ensembles : Set(T) pas de répétition, pas d ordre Set { 1, 5, 10, 3 } sacs : Bag(T) répétitions possibles, pas d ordre Bag { 1, 5, 5, 10, 3, 1 } listes : Sequence(T) répétitions possibles, les éléments sont ordonnés Les ensembles sont utilisés partout en UML extension d une classe, d une association,... extrémité d une association,... Les séquences peuvent être utilisée en UML le résultat d une association avec la contrainte {ordered } Les sacs sont le résultat de navigations en OCL le résultat de l opération collect est un sac utile pour des opérations comme sum employes->collect(salaire).sum Sequence { 1, 5, 5, 10, 3, 1 } OCL 22 OCL 21 R e m a r q u e s s u r l e s c o l l e c t i o n s O p é r a t i o n s s u r l e s c o l l e c t i o n s Collection(T) désigne n importe quelle collection Les types de collections ne sont pas compatibles utilisation de fonction de conversions s->asbag, s->assequence, b->asset, Opérations communes et opérations spécifiques Pas de collections de collections mise à plat automatique Set{ Set{1,2}, Set{3,1} } = Set{1,2,3} très limitatif (mais simple) OCL 23 Opérations traditionnelles : union, intersection,... Filtrage : sélection et élimination selon un prédicat select, filter Image d une fonction (d une expression) collect Quantificateurs forall, exists Iterateur général iterate OCL 24 4

5 Element v s. s i n g l e t o n Dans tout langage typé il faut distinguer un élément e du singleton contenant cet élément Set{e} Pour simplifier la navigation OCL une conversion implicite est faite lorsqu une opération sur une collection est appliquée à un élement isolé elem -> prop est équivalent à Set{elem }->prop self->size = 1 OCL 25 O p é r a t i o n s t r a d i t i o n n e l l e s s u r l e s c o l l e c t i o n s Cardinalité : coll -> size Nombre d occurrences : coll -> count(elem) Appartenance : coll -> includes( elem ) Non appartenance : coll -> excludes( elem ) Inclusion : coll -> includesall(coll) Vide : coll -> isempty Non vide : coll -> nonempty Somme des élements coll -> sum OCL 26 O p é r a t i o n s s u r l e s e n s e m b l e s Union ens -> union( ens ) Intersection ens -> intersection( ens ) Difference ens1 - ens2 Ajout d un élément ens -> including(elem) Suppression d un el. ens -> excluding(elem) Conversion vers liste ens -> assequence Conversion vers sac ens -> asbag F i l t r a g e : s e l e c t e t r e j e c t coll -> select( cond ) coll -> reject( cond ) select retient les éléments vérifiant la condition reject élimine ces élements (extension d un prédicat sur un ensemble) self.enfants ->select( age>10 and sexe = #masculin) self.enfants ->reject(enfants->isempty)->notempty OCL 27 OCL 28 Il est également possible de nommer la variable d expliciter son type F i l t r a g e : a u t r e s s y n t a x e s self.employé->select(age > 50) self.employé->select( p p.age>50 ) self.employé->select( p : Personne p.age>50) self.employé->reject( p : Personne p.age<=50) OCL 29 Image d une expression : c o l l e c t coll -> collect( expr ) Correspond à l image d une fonction (map, apply,...) L expression est évaluée pour chaque él ément Le résultat est le sac des résultats Le résultat est un SAC, pas un ensemble! self.enfants->collect(age) = Bag{10,5,10,7} self.employés->collect(salaire/10)->sum OCL 30 5

6 Image d une expression : a u t r e s y n t a x e Collect est une opération de navigation courante Pour simplifier on peut utiliser le raccourci suivant self.enfants->collect(age) <=> self.enfants.age Rappel : le résultat est un sac (Bag) si l on souhaite obtenir un ensemble : self.enfants.age ->asset Permet de naviguer self.enfants.enfants.voitures OCL 31 Q u a n t i f i c a t e u r s : f o r A l l et e x i s t s coll -> forall( cond ) coll -> exists( cond ) Quantificateur universel et existentiel self.enfants->forall(age<10) self.enfants->exists(sexe=#masculin) if self.enfants->forall(age<18) then 2000 else self.enfants->select(age>=18)->size*100 endif OCL 32 Q u a n t i f i c a t e u r s : a u t r e s s y n t a x e s Il est possible de nommer la variable d expliciter son type de parcourir plusieurs variables à la fois self.enfants->forall( e e.age < self.age - 14) self.enfants->forall( e : Personne e.age < self.age - 14) self.enfants->forall( e1,e2 : Personne e1 <> e2 implies e1.prénom <> e2.prénom) U n i c i t é coll -> isunique ( expr ) Retourne vrai si pour chaque valeur de la collection, l expression retourne une valeur différente self.enfants -> isunique ( prénom ) Pratique pour définir la notion de clé OCL 33 OCL 34 O p é r a t i o n s s p é c i f i q u e s a u m o d è l e o b j e t d UML accès à un attribut, à une opération navigation VIA une association VERS une association DEPUIS une association accès au type et super types accès au instances d une classe (extension) objet.attribut Accès à un attribut self. datedenaissance A c c è s à u n a t t r i b u t A c c è s à u n e m é t h o d e objet.méthode( expr1, expr2,... ) Accès à une méthode (sans effet de bord) self.impôt(1998) OCL 35 OCL 36 6

7 Navigation VIA une association Navigation VIA une association objet. nomderole A partir d un objet, accéder à l ensemble des objets qui lui sont associés via des liens. Cardinalité 1 ou => le résultat est un objet Sinon une séquence si le rôle est décoré par {ordered} Sinon un ensemble self.père est de type Personne self.voitures est de type Set(Voiture) self.enfants est de type Sequence (Personne) OCL 37 Rappel: un élement est convertit en singleton lorsqu une opération sur collection est appliquée self.père ->size = 1 Permet de tester si la valeur est définie (l ensemble vide représente la valeur indéfinie) self.père ->isempty self.épouse ->nonempty implies self.épouse.sexe = #féminin Si une association n a pas de nom de rôle, on peut utiliser le nom de la classe destination avec la première lettre en minuscule OCL 38 N a v i g a t i o n V E R S u n e a s s o c i a t i o n N a v i g a t i o n VERS une association réflexive objet. nomdassociation Permet d accéder à l ensemble des liens Le nom de l association (i.e. de la classe associative) est écrit, mais en commençant par une minuscules s.emploi p.emploi Personne employé * société 0..2 s.emploi->collect(salaire)->sum s.emploi.salaire. sum Emploi salaire augmenter() Société OCL 39 objet. nomdassociation[ nomderole] Si l association est réflexive il faut indiquer le sens de parcours de l association (pour éviter l ambiguité) Personne age employés * chefs p.evaluation[chefs] p.evaluation[employés] p.evaluation[chefs].note -> sum * Evaluation note OCL 40 N a v i g a t i o n D E P U I S u n e a s s o c i a t i o n O p é r a t i o n s c o n c e r n a n t l e s t y p e s lien.nomderole Accès aux objets intervenant dans un lien à partir de ce lien, en utilisant le nom de rôle Il y a toujours un et un seul objet correspondant Personne employé société * 0..2 e.personne Emploi salaire e.société s.emploi->select(salaire<5000).personne Société OCL 41 objet.oclistypeof(type) Indique si le type exact de l objet est type objet.ocliskindof(type) Indique si le type de l objet est type ou l un de ces sous-type. objet.oclastype (type) Conversion de type (casting) OCL 42 7

8 O p é r a t i o n s c o n c e r n a n t l e s t y p e s O p é r a t i o n s d é f i n i e s s u r l e s c l a s s e s Contraintes sur les types p.filles->forall (oclistypeof (Femme)) p.filles->forall (ocliskindof (Femme)) Accès aux propriétés surchargées e. oclastype(person).nom Typage dynamique p.enfants->select(ocliskindof (Employé)).asTypeOf (Employé).salaire ->sum Classe.propdeclasse Permet d accéder aux propriétés de classes Classe.allInstances Retourne l ensemble des instances de la classe c est à dire l extension de cette classe Personne.allInstances->size < 500 Personne.allInstances->forall (p1,p2 p1<>p2 implies p1. numsecu <> p2.numsecu ) Personne.allInstances->isUnique (numsecu ) OCL 43 OCL 44 8

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

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire

Plus en détail

Conception par contrats avec UML

Conception par contrats avec UML Conception par contrats avec UML OCL Object Constraint Language Gerson Sunyé gerson.sunye@univ-nantes.fr LINA Introduction à OCL p.1 Plan Introduction Invariants, pré et post-conditions Spécification de

Plus en détail

Conception par contrats avec UML

Conception par contrats avec UML OCL Object Constraint Language Gerson Sunyé gerson.sunye@univ-nantes.fr Master Alma Université de Nantes 6 avril 2009 G. Sunyé Master Alma U. Nantes 1/ 88 G. Sunyé Master Alma U. Nantes 2/ 88 Conception

Plus en détail

Cedric Dumoulin. Compilation de présentations de : Jean Bezivin Jeannine Leguy Laurent Henocque Mireille Blay-Fornarino Jean-Marc Jézéquel

Cedric Dumoulin. Compilation de présentations de : Jean Bezivin Jeannine Leguy Laurent Henocque Mireille Blay-Fornarino Jean-Marc Jézéquel Cedric Dumoulin Compilation de présentations de : Jean Bezivin Jeannine Leguy Laurent Henocque Mireille Blay-Fornarino Jean-Marc Jézéquel Plan Pourquoi OCL Base d OCL Collections Exemples Pourquoi OCL

Plus en détail

Object Constraint Language (OCL)

Object Constraint Language (OCL) Object Constraint Language (OCL) Eric Cariou Université de Pau et des Pays de l'adour UFR Sciences Pau Département Informatique Eric.Cariou@univ-pau.fr 1 Plan 1. Pourquoi OCL? Introduction par l'exemple

Plus en détail

Object Constraint Language (OCL) Une introduction

Object Constraint Language (OCL) Une introduction Object Constraint Language (OCL) Une introduction Master 2 IFPRU - Module Ingénierie des modèles - FMIN310 Marianne Huchard 7 novembre 2008 1 Présentation générale OCL est un langage formel, basé sur la

Plus en détail

INF3143. Modélisation et spécification formelles des logiciels. Hiver Alexandre Terrasa Département d informatique, UQÀM

INF3143. Modélisation et spécification formelles des logiciels. Hiver Alexandre Terrasa Département d informatique, UQÀM INF3143 Modélisation et spécification formelles des logiciels Hiver 2016 Alexandre Terrasa Département d informatique, UQÀM OCL Collections 2 Rappels: Types OCL Boolean true, false Integer 1 ; -3 ; 12

Plus en détail

Ingénierie des Modèles. Méta-modélisation

Ingénierie des Modèles. Méta-modélisation Ingénierie des Modèles Méta-modélisation Eric Cariou Master Technologies de l'internet 2 ème année Université de Pau et des Pays de l'adour UFR Sciences Pau Département Informatique Eric.Cariou@univ-pau.fr

Plus en détail

Sixième partie VI. Diagramme de cas d utilisation. Cours de Génie Logiciel. David Janiszek. Introduction. Les éléments. Les relations.

Sixième partie VI. Diagramme de cas d utilisation. Cours de Génie Logiciel. David Janiszek. Introduction. Les éléments. Les relations. Sixième partie VI Diagramme de cas d utilisation Définition Le diagramme de cas d utilisation représente la structure des grandes fonctionnalités nécessaires aux utilisateurs du système Rôle du diagramme

Plus en détail

INF3143. Modélisation et spécification formelles des logiciels. Hiver Alexandre Terrasa Département d informatique, UQÀM

INF3143. Modélisation et spécification formelles des logiciels. Hiver Alexandre Terrasa Département d informatique, UQÀM INF3143 Modélisation et spécification formelles des logiciels Hiver 2017 Alexandre Terrasa Département d informatique, UQÀM Expression des contraintes en UML 2 Exprimer des contraintes avec UML Dans le

Plus en détail

Langage Élémentaire Algorithmique Spécifications du langage

Langage Élémentaire Algorithmique Spécifications du langage Langage Élémentaire Algorithmique Spécifications du langage Lionel Clément Version provisoire Novembre 2012 Le but de ce projet est de livrer un compilateur pour un langage élémentaire algorithmique (Léa).

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

Module B9-1 : sensibilisation à l UML

Module B9-1 : sensibilisation à l UML Module B9-1 : sensibilisation à l UML Olivier Habart : habart.olivier@gmail.com ENSTA B9-1 UML (Olivier Habart) Septembre 14 Diapositive N 1 Session 2 : Vue statique Sommaire Diagramme de classes Diagrammes

Plus en détail

5SINF200 : Développement de programmes (A. Slissenko) Examen

5SINF200 : Développement de programmes (A. Slissenko) Examen Licence Info Corrigé 5SINF200 : Développement de programmes (A. Slissenko) Examen Le 21 décembre 2006, 13h30 15h30 Utilisation des notes, des livres, des docs, etc. autorisée. Ce corrigé contient des réponses

Plus en détail

Norme de documentation des programmes

Norme de documentation des programmes 1. Introduction Norme de documentation des programmes Auteur : Marc Frappier Collaborateurs Benoit Fraikin Gabriel Girard Jean Goulet Gérard Houdeville Luc Lavoie Version : 1.02 30 août 2004 Département

Plus en détail

Java. Java Modeling Language (JML) Qu est-ce que JML? Java (suite) Conception par Contrat. Invariants, Pré-/Postconditions

Java. Java Modeling Language (JML) Qu est-ce que JML? Java (suite) Conception par Contrat. Invariants, Pré-/Postconditions Java Java Modeling Language (JML) Arnaud LANOIX Université Nancy 2 Master1 GL Langage de Programmation Orientée Objet développé par Sun Projet OAK (1991), Java (1995),...Java 1.5 (2004) http://java.sun.com/

Plus en détail

Spécification de Composants de Communication en UML Eric CARIOU

Spécification de Composants de Communication en UML Eric CARIOU Spécification de Composants de Communication en UML Eric CARIOU ENST Bretagne Irisa ENST Bretagne BP 832, 29285 Brest Cedex Eric.Cariou@enst-bretagne.fr Résumé : Les composants logiciels réutilisables

Plus en détail

II.3. Diagrammes de classes

II.3. Diagrammes de classes II.3. s de classes II.3. s de classes 1. Introduction Introduction Les diagrammes d'uml de structure comportemental de classes de package d objets d activités de cas d utilisation de composant de déploiement

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

CONCEPTION des SYSTÈMES d INFORMATION UML

CONCEPTION des SYSTÈMES d INFORMATION UML CONCEPTION des SYSTÈMES d INFORMATION UML 4 : Analyse organique Epitech 3 Automne 2007 Bertrand LIAUDET SOMMAIRE ANALYSE ORGANIQUE 2 Diagrammes de séquence 3 Exemple de diagramme de séquence 8 Diagramme

Plus en détail

Eléments de cours de BD du CNAM (2005/2006)

Eléments de cours de BD du CNAM (2005/2006) 1 Eléments de cours de BD du CNAM (2005/2006) 1 Diagramme de classes / diagramme d objets (UML) 4 1.1 Premier niveau de modélisation des données d une application 4 1.2 Les éléments de modélisation 4 1.2.1

Plus en détail

UML Diagramme de classes (class diagram) pour le recueil et l analyse des besoins. Emmanuel Pichon 2013 V1.1

UML Diagramme de classes (class diagram) pour le recueil et l analyse des besoins. Emmanuel Pichon 2013 V1.1 UML Diagramme de classes (class diagram) pour le recueil et l analyse des besoins 2013 V1.1 Objectif Diagramme de classes (class diagram) pour le recueil des besoins et l analyse Présenter un ensemble

Plus en détail

NFP121 Programmation Avancée. Relations entre classes

NFP121 Programmation Avancée. Relations entre classes NFP121 Programmation Avancée Relations entre classes Xavier Crégut ENSEEIHT Télécommunications & Réseaux Xavier Crégut (N7) NFP121 Programmation Avancée Relations entre classes

Plus en détail

1. Objectifs de la Modélisation. Dériver le schéma de la BD. Élaborer un modèle conceptuel. Modélisation E/R des Données

1. Objectifs de la Modélisation. Dériver le schéma de la BD. Élaborer un modèle conceptuel. Modélisation E/R des Données . Objectifs et principes Modélisation E/R des Données 2. Le modèle Entité-Association (E/R) 3. Passage au relationnel 4. Conclusion. Objectifs de la Modélisation Permettre une meilleure compréhension Le

Plus en détail

Programmation objet en Java.

Programmation objet en Java. Programmation objet en Java. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/7/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/7/ Cours Exercices Slide 1 1. Classes,

Plus en détail

Python et la Programmation fonctionnelle. Programmation fonctionnelle 3. Programmation fonctionnelle pure 4. Matthieu Amiguet

Python et la Programmation fonctionnelle. Programmation fonctionnelle 3. Programmation fonctionnelle pure 4. Matthieu Amiguet Python et la Programmation fonctionnelle Matthieu Amiguet 2009 2010 1 Programmation fonctionnelle? 2 3 Lambda expressions 4 5 Programmation fonctionnelle? Programmation fonctionnelle 3 L expression programmation

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

Master II Informatique Parcours : Génie logiciel. Chouki.TIBERMACINE@lirmm.fr Maître de conférences en informatique

Master II Informatique Parcours : Génie logiciel. Chouki.TIBERMACINE@lirmm.fr Maître de conférences en informatique Master II Informatique Parcours : Génie logiciel SILOC : Spécification et Implémentation des Langages à Objets et à Composants - Spécification et transformation de contraintes sur les architectures à base

Plus en détail

Conventions communes aux profils UML

Conventions communes aux profils UML Conventions communes aux profils UML Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)* Référence : Livrable 2.1 Date : Juin 2002 * : Les partenaires du

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

introduction à la conception Orientée Objet

introduction à la conception Orientée Objet 1 introduction à la conception Orientée Objet IUP GEII 2ème année marcel@univ-tours.fr http://www.blois.univ-tours.fr/ marcel 2 plan cours 1. motivations génie logiciel 2. concepts et techniques orientés

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

Concepts des langages de. Introduction à Clojure

Concepts des langages de. Introduction à Clojure Concepts des langages de programmation Introduction à Clojure Plan C'est quoi clojure? Types et structures de données Fonctions et expressions dans Clojure Commentaires en Clojure Définition de variables

Plus en détail

Diagramme de classes

Diagramme de classes Diagramme de classes Un diagramme de classes décrit les classes et leurs relations (associations, généralisation/spécialisation, ). classe association méthodes attributs héritage Diagramme de classes :

Plus en détail

Enveloppes convexes dans le plan

Enveloppes convexes dans le plan ÉCOLE POLYTECHNIQUE ÉCOLES NORMALES SUPÉRIEURES ÉCOLE SUPÉRIEURE DE PHYSIQUE ET DE CHIMIE INDUSTRIELLES CONCOURS D ADMISSION FILIÈRE MP HORS SPÉCIALITÉ INFO FILIÈRE PC COMPOSITION D INFORMATIQUE B (XECLR)

Plus en détail

Stéphane GOBRON HES SO HE Arc ISIC

Stéphane GOBRON HES SO HE Arc ISIC Stéphane GOBRON HES SO HE Arc ISIC 2015 Où en sommes nous? Plan de cours Ch.1 : OO Rappels Ch.2 : Etude de cas => le bridge DP Ch.3 : Conceptualisation, Singleton et Composite DPs Ch.4 : Decorator, State,

Plus en détail

Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_python.html. R.R. Université Lyon 2

Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_python.html. R.R. Université Lyon 2 Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_python.html 1 AVERTISSEMENT Python intègre des particularités pour ne pas dire bizarreries que l on ne retrouve pas dans les

Plus en détail

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance de cours/td Université Paris-Diderot Objectifs: Découverte du type String. Comprendre qu il y a des types différents. Maîtriser les expressions booléennes dans

Plus en détail

INF121: Algorithmique et Programmation Fonctionnelle

INF121: Algorithmique et Programmation Fonctionnelle INF121: Algorithmique et Programmation Fonctionnelle Cours 1: Identificateurs, types de base et fonctions Année 2013-2014 Identificateurs La notion d identificateur Un concept fondamental dans les langages

Plus en détail

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles GL / C++ Chapitre 7 Lien Dynamique Méthodes Virtuelles 1. Pointeur sur un objet d'une classe dérivée Considérons les classes écrites précédemment : Personne Etudiant // dérive de personne Salarie // dérive

Plus en détail

Cours 3. La conditionnelle: instructions si et selon Les boucles Comment raisonner sur les boucles: les invariants de boucle

Cours 3. La conditionnelle: instructions si et selon Les boucles Comment raisonner sur les boucles: les invariants de boucle Cours 3 : Instructions qui changent l ordre d exécution séquentiel 1 Cours 3 Instructions qui changent l ordre d exécution séquentiel La conditionnelle: instructions si et selon Les boucles Comment raisonner

Plus en détail

Partie I : Automates et langages

Partie I : Automates et langages 2 Les calculatrices sont interdites. N.B. : Le candidat attachera la plus grande importance à la clarté, à la précision et à la concision de la rédaction. Si un candidat est amené à repérer ce qui peut

Plus en détail

L outil Cup. Licence info et GMI documentation COMPIL 2007-2008. Pour toutes remarques, questions, suggestions : mirabelle.nebut@lifl.

L outil Cup. Licence info et GMI documentation COMPIL 2007-2008. Pour toutes remarques, questions, suggestions : mirabelle.nebut@lifl. UFR IEEA Licence info et GMI documentation COMPIL 2007-2008 FIL Pour toutes remarques, questions, suggestions : mirabelle.nebut@lifl.fr 1 raccourci pour Java-Based Constructor of Useful Parsers est un

Plus en détail

VIII. Interrogation de documents avec XQuery

VIII. Interrogation de documents avec XQuery VIII. Interrogation de documents avec XQuery 350 XQUERY? Est un langage d interrogation de données XML N est pas un dialecte XML Est un sur-ensemble de XPath 2.0 Utilise le même modèle de données (XDM)

Plus en détail

Fichiers. Introduction Fichier texte. Fichier structuré. Présentation Le type TEXT Primitives de gestion Exemple

Fichiers. Introduction Fichier texte. Fichier structuré. Présentation Le type TEXT Primitives de gestion Exemple Fichiers Introduction Fichier texte Présentation Le type TEXT Primitives de gestion Exemple Fichier structuré Présentation Le type FILE OF Primitives de gestion Exemple Compléments d algorithmique 1 Introduction

Plus en détail

Master Informatique Fondamentale - M1 Compilation

Master Informatique Fondamentale - M1 Compilation Master Informatique Fondamentale - M1 Compilation Systèmes de types Paul Feautrier ENS de Lyon Paul.Feautrier@ens-lyon.fr perso.ens-lyon.fr/paul.feautrier 8 février 2007 1 / 20 Système de types Un type

Plus en détail

Licence Professionnelle TAI Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr)

Licence Professionnelle TAI Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr) Grenoble 1 IMA Informatique & Mathématiques Appliquées UNIVERSITE JOSEPH FOURIER Sciences, Technologie, Médecine Licence Professionnelle TAI Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr)

Plus en détail

Leçon 1: les entiers

Leçon 1: les entiers Leçon 1: les entiers L ensemble N des entiers naturels Compter, dresser des listes, classer et comparer des objets interviennent dans de multiples activités humaines. Les nombres entiers naturels sont

Plus en détail

CSC4002 : Contrôle continu «Bureau d Étude noté» Date : lundi 3 décembre 2012 Durée : 2H. Coordonnateurs : Christian Bac et Denis Conan

CSC4002 : Contrôle continu «Bureau d Étude noté» Date : lundi 3 décembre 2012 Durée : 2H. Coordonnateurs : Christian Bac et Denis Conan Corrigé et Barème Contrôle de connaissances 2012/2013 des étudiants de 2 è année (EI2) CSC4002 : Contrôle continu «Bureau d Étude noté» Date : lundi 3 décembre 2012 Durée : 2H Coordonnateurs : Christian

Plus en détail

Développement de logiciel avec UML

Développement de logiciel avec UML Survol et exemples Pascal ANDRE Université de Nantes Master Miage M1 Introduction UML : un langage de spécification multi-formalisme UML : précision avec OCL UML : une méthode de développement UML : un

Plus en détail

Tableaux (introduction) et types de base

Tableaux (introduction) et types de base Tableaux (introduction) et types de base A. Motivation..................................................... 4 B. Les tableaux.................................................... 5 C. Construction des tableaux.......................................

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

UML : Les cas d utilisation

UML : Les cas d utilisation UML : Les cas d utilisation 2014 tv - v.1.0 Point de vue fonctionnel L expression préliminaire des besoins donne lieu à une modélisation par les cas d utilisation. Le concept de cas d

Plus en détail

Correction de programmes : Logique de Hoare

Correction de programmes : Logique de Hoare 16 juillet 2009 Logique et informatique Vis-à-vis de l informatique la logique a au moins 2 rôles : 1 Externe et théorique (fondements de l informatique - Électif en S4) : Logique comme méta-informatique

Plus en détail

Chapitre 2 Modélisation de bases de données

Chapitre 2 Modélisation de bases de données Pourquoi une modélisation préalable? Chapitre 2 Modélisation de bases de données 1. Première étape : le modèle conceptuel Eemple : le modèle Entités-Associations (E/A) 2. Deuième étape : le modèle Traduction

Plus en détail

6.1 Une classe simple pour représenter des comptes bancaires

6.1 Une classe simple pour représenter des comptes bancaires Chapitre 6 Héritage Ce chapitre du cours traite de concepts relatifs à la programmation objet (hiérarchie de classe, héritage, extension, masquage) et sera illustré par un exemple de représentation de

Plus en détail

XQuery Dan VODISLAV Université de Cergy-Pontoise Licence Informatique L3 Plan

XQuery Dan VODISLAV Université de Cergy-Pontoise Licence Informatique L3 Plan XQuery Dan VODISLAV Université de Cergy-Pontoise Licence Informatique L3 Plan Principes, historique Modèle de données Expressions XQuery Expressions simples Expressions complexes Expressions FLOWR Fonctions

Plus en détail

Chapitre 4 Modélisation et Conception de BD

Chapitre 4 Modélisation et Conception de BD Pourquoi une modélisation préalable? Chapitre 4 Modélisation et Conception de BD Il est difficile de modéliser un domaine sous une forme directement utilisable par un SGBD. Stockage physique Cohérence/intégrité

Plus en détail

TP Compilation Analyse lexicale

TP Compilation Analyse lexicale TP Compilation Analyse lexicale Eric Ramat ramat@lisic.univ-littoral.fr 9 mai 2014 Durée : 6 heures 1 Introduction Le but de cet TP est de vous donner les bases nécessaires afin de pouvoir écrire votre

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

Exercice 1 (API Java)

Exercice 1 (API Java) Programmation orientée objet TP 3 L2 MPCIE API Java, Paquetages Exercice 1 (API Java) 1. Écrire la classe Ensemble comme étant une collection d'éléments ne contenant pas de doublon. Elle sera donc implémentée

Plus en détail

Conception et Programmation par Objets GLIN404. Langages et paradigmes de programmation

Conception et Programmation par Objets GLIN404. Langages et paradigmes de programmation Conception et Programmation par Objets GLIN404 Marianne Huchard, Clémentine Nebut LIRMM / Université de Montpellier 2 2013 Langages et paradigmes de programmation Le raisonnement classicatoire paradigme

Plus en détail

Chapitre 2. Eléments pour comprendre un énoncé

Chapitre 2. Eléments pour comprendre un énoncé Chapitre 2 Eléments pour comprendre un énoncé Ce chapitre est consacré à la compréhension d un énoncé. Pour démontrer un énoncé donné, il faut se reporter au chapitre suivant. Les tables de vérité données

Plus en détail

Formulaires. Fiches de savoir associées. C.0.a., C.0.b., C.0.c., C.2.1.a., C.2.1.b. et C.2.3.a.

Formulaires. Fiches de savoir associées. C.0.a., C.0.b., C.0.c., C.2.1.a., C.2.1.b. et C.2.3.a. Activité 10 Formulaires Objectif Travailler sur des formulaires : observer le code et modifier l interface (IHM) de l application. Ressource à utiliser Base de données Formation appformation.mdb Fiches

Plus en détail

Projet de Programmation Fonctionnelle

Projet de Programmation Fonctionnelle Projet de Programmation Fonctionnelle L objectif de ce projet est de concevoir, en Objective Caml, un évaluateur pour le langage mini-ml (un sous ensemble du langage Objective Caml). Votre programme devra

Plus en détail

Ingénierie des Modèles. Transformations de Modèles

Ingénierie des Modèles. Transformations de Modèles Ingénierie des Modèles Transformations de Modèles Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Plan Types de transformation Raffinement Projection

Plus en détail

Génie logiciel avancé

Génie logiciel avancé Génie logiciel avancé Mihaela Sighireanu UFR d Informatique Paris Diderot, LIAFA, 175 rue Chevaleret, Bureau 6A7 http://www.liafa.jussieu.fr/ sighirea/cours/genielog/ Spécification formelle: Types de données

Plus en détail

module SIN21 Rendre un syste me communicant Analyse UML et algorithmie 1 Modification du cahier des charges

module SIN21 Rendre un syste me communicant Analyse UML et algorithmie 1 Modification du cahier des charges Module SIN221 Rendre un syste me communicant Analyse UML et algorithmie Objectifs : Modifier des diagrammes UML suite à la modification du cahier des charges. Caractériser et valider une classe en C++.

Plus en détail

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/ Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : cinzia.digiusto@gmail.com webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/

Plus en détail

Expressions, types et variables en Python

Expressions, types et variables en Python Expressions, types et variables en Python 2015-08-26 1 Expressions Les valeurs désignent les données manipulées par un algorithme ou une fonction. Une valeur peut ainsi être : un nombre, un caractère,

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

Programmation Orientée Objet. Ecrire beaucoup de lignes de code, même très propres, ne suffit pas

Programmation Orientée Objet. Ecrire beaucoup de lignes de code, même très propres, ne suffit pas 2 Modélisation Construire un bon logiciel : Répondre aux objectifs fixés (satisfaire le client) Avoir une base architecturale solide qui permette l évolution Mettre en place un processus de développement

Plus en détail

UML. Diagrammes de classes (suite) Delphine Longuet. delphine.longuet@lri.fr

UML. Diagrammes de classes (suite) Delphine Longuet. delphine.longuet@lri.fr Polytech Paris-Sud Formation initiale 3 e année Spécialité Informatique Année 2014-2015 UML Diagrammes de classes (suite) Delphine Longuet delphine.longuet@lri.fr Opérations Opérations Service qui peut

Plus en détail

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Claude Delannoy Exercices en langage C++ 3 e édition Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Chapitre 3 Les fonctions Rappels Généralités Une fonction est un bloc d instructions éventuellement

Plus en détail

Notation fonctionnelle : Union (R,S) ou OR (R, S) Chapitre 4 : Algèbre Relationnelle

Notation fonctionnelle : Union (R,S) ou OR (R, S) Chapitre 4 : Algèbre Relationnelle Chapitre 4 : IV. Qu est-ce que l algèbre relationnelle? Une collections d opérations, chacune agissant sur une ou deux relations et produisant une relation en résultat. Un langage pour combiner ces opérations.

Plus en détail

Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION

Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION EILCO ING 1 - POO Java Contrôle 2014/2015 Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION Dans ces exercices, nous allons définir une classe Personne qui permettra de gérer

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle. Université Montpellier-II UFR des Sciences - Département Informatique - Licence Informatique UE GLIN302 - Programmation Applicative et Récursive Cours No 3 : Identificateurs, Fonctions, Premières Structures

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

GPA 789 : Analyse et Conception Orientées Objet. ETS Mickaël Gardoni Bureau A 3588 tel 84 11. Mise en Œuvre UML version du 24 avril 2009

GPA 789 : Analyse et Conception Orientées Objet. ETS Mickaël Gardoni Bureau A 3588 tel 84 11. Mise en Œuvre UML version du 24 avril 2009 GPA 789 : Analyse et Conception Orientées Objet ETS Mickaël Gardoni Bureau A 3588 tel 84 11 Mise en œuvre UML 1/ 25 Introduction Mise en œuvre d UML UML n est pas une méthode 2/ 25 1 UML n est qu un langage

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

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

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

TD3: tableaux avancées, première classe et chaînes

TD3: tableaux avancées, première classe et chaînes TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première

Plus en détail

Conception de Logiciel

Conception de Logiciel Conception de Logiciel avec les Design Patterns et UML (Unified Modeling Language) Pr. Jean-Marc Jézéquel IRISA - Univ. Rennes I Campus de Beaulieu F-35042 Rennes Cedex Tel : +33 299 847 192 Fax : +33

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

Ch. 1 : Bases de programmation en Visual Basic

Ch. 1 : Bases de programmation en Visual Basic Ch. 1 : Bases de programmation en Visual Basic 1 1 Variables 1.1 Définition Les variables permettent de stocker en mémoire des données. Elles sont représentées par des lettres ou des groupements de lettres

Plus en détail

LI5a : Développement de programmes (A. Slissenko)

LI5a : Développement de programmes (A. Slissenko) 1 Licence 3 Info LI5a : Développement de programmes (A. Slissenko) Corrigé 1. (1a). Expliquez brièvement à quoi sert la spécification des requis, comment elle peut être décrite et comment elle peut être

Plus en détail

Informatique / Programmation

Informatique / Programmation Informatique / Programmation Programmation orientée objet avec Java 02 : Expressions et opérateurs Jacques Bapst jacques.bapst@hefr.ch Expressions [1] Les expressions sont des entités composées de littéraux,

Plus en détail

BE noté 2006 2007. Chantal Taconet et Christian Bac IO21

BE noté 2006 2007. Chantal Taconet et Christian Bac IO21 Chantal Taconet et Christian Bac IO2 Télécom INT 20 Novembre 2006 Corrigé Barème Groupe des Écoles des Télécommunications Télécom INT École d ingénieurs 2 ème année Contrôle de connaissances : Bureau d

Plus en détail

La Clé informatique. Formation Access XP Aide-mémoire

La Clé informatique. Formation Access XP Aide-mémoire La Clé informatique Formation Access XP Aide-mémoire Septembre 2003 Définitions de termes Base de données : Se compare à un énorme classeur ayant plusieurs tiroirs où chacun d eux contient des informations

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

Java Modeling Language

Java Modeling Language Java Modeling Language Benoit Darties ESIREM ITR4 benoit.darties@u bourgogne.fr Bibliographie Documents références sur JML : http://www.eecs.ucf.edu/~leavens/jml/ http://kalysto.org/~nono/teaching/jml/

Plus en détail

λ-calcul et typage Qu est-ce qu une fonction?

λ-calcul et typage Qu est-ce qu une fonction? λ-calcul et typage Nicolas Barnier, Pascal Brisset ENAC Avril 2009 Nicolas Barnier, Pascal Brisset (ENAC) λ-calcul et typage Avril 2009 1 / 1 Qu est-ce qu une fonction? Classiquement Pas de notation uniforme/standard

Plus en détail

Programmation Orientée Objet Java

Programmation Orientée Objet Java Programmation Orientée Objet Java Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 29 octobre 2015 Bertrand Estellon (DII AMU) Programmation Orientée Objet Java 29 octobre

Plus en détail

Informatique Pour Tous

Informatique Pour Tous Informatique Pour Tous Informatique Pour Tous I-Petite introduction Qu est ce que c est Python? Python est un langage de programmation multi-paradigme. Historique : Développé en 1989 par Guido van Rossum.

Plus en détail

Les tableaux. Programmation Orientée Objet Java. Références et Garbage Collector. Les tableaux

Les tableaux. Programmation Orientée Objet Java. Références et Garbage Collector. Les tableaux Les tableaux Déclaration d une variable de type référence vers un tableau : Programmation Orientée Objet Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 29 octobre 2015

Plus en détail

nulles dans un langage à objets

nulles dans un langage à objets Prévention de déréférencement de références nulles dans un langage à objets Jean-Sébastien Gélinas, Étienne M. Gagnon, Jean Privat Université du Québec à Montréal Langages et Modèles à Objets Nancy 27

Plus en détail