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

1. B e s o i n d! e x p r e s s i o n d e c o n t r a i n t e s e n U M L

1. B e s o i n d! e x p r e s s i o n d e c o n t r a i n t e s e n U M L Introduction à O.C.L. (Object Constraint Language) : le langage de contraintes d!uml Bernard ESPINASSE Professeur à l'université d'aix-marseille P l a n 1. Besoin d!expression de contraintes en UML 2.

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

IFT Génie logiciel

IFT Génie logiciel Rappel 2 Les diagrammes UML ne nous disent pas tout... IFT2255 - Génie logiciel Object Constraint Language (OCL) enfants parents Alice:Personne n est pas une instance valide de Bruno Dufour dufour@iro.umontreal.ca

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Expression de contraintes OCL

Expression de contraintes OCL labsticc.univ-brest.fr/pages_perso/babau/ Expression de contraintes OCL (intégration dans Eclipse Modeling Tools) Jean-Philippe Babau Département Informatique, UFR Sciences, Laboratoire Lab-STICC 2 1 Modèles

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 en Python - Cours 2 : Premiers programmes

Programmation en Python - Cours 2 : Premiers programmes Programmation en Python - Cours 2 : Premiers programmes 2013/2014 Diverses utilisations de python Utilisation en mode interactif Ecriture d un programme python Saisie de données par l utilisateur : input(),

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

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

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

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

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

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

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

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

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

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

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

Algorithmique et Programmation 2 LMI 1 Semestre 2 Cours 2 La séquence et l alternative

Algorithmique et Programmation 2 LMI 1 Semestre 2 Cours 2 La séquence et l alternative Algorithmique et Programmation 2 LMI 1 Semestre 2 Cours 2 La séquence et l alternative 2 janvier 2009 1 Les structures de contrôle En Scheme, le programmation se fait par composition de fonctions, et même

Plus en détail

Examen CAR 2 Heures Tout documents autorisés le 17 Novembre 2005

Examen CAR 2 Heures Tout documents autorisés le 17 Novembre 2005 Examen CAR 2 Heures Tout documents autorisés le 17 Novembre 2005 Rappel : Tout méta-modèle ou profil doit être commenté! 1 Question de compréhension du cours barème indicatif : 5 points Q : Lorsque l on

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

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

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

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

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

Méthodes de test. Mihaela Sighireanu

Méthodes de test. Mihaela Sighireanu UFR d Informatique Paris 7, LIAFA, 175 rue Chevaleret, Bureau 6A7 http://www.liafa.jussieu.fr/ sighirea/cours/methtest/ Partie I 1 Propriétés 2 Un peu de génie logiciel de test 3 Eléments Problèmes Point

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

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

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION Licence STS Université Claude Bernard Lyon I LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION 1 COURS 5 : Les Tableaux PLAN DE LA SÉANCE Comprendre l utilité des tableaux Apprendre à manipuler

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

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

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

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

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

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

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

Programmation sous QT

Programmation sous QT SN IR 1 2014-2015 Développement logiciel Programmation Objet Programmation sous QT Projet Alarme Domestique ~ TD n 6~ Conception et Tests Unitaires Date : mars 2015 Version : 3.2 Référence : TD6 Conception

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

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

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

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

Programmation VBA. Identificateurs. Types de base. Déclaration d une variable. Commentaires. Activer l onglet Développeur (Excel)

Programmation VBA. Identificateurs. Types de base. Déclaration d une variable. Commentaires. Activer l onglet Développeur (Excel) Activer l onglet Développeur (Excel) Programmation VBA Michel Reid Cliquez sur le bouton Office (coin supérieur gauche) Cliquez sur le bouton Options Excel Dans la section Standard, cochez la case Afficher

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

dernière mise à jour le 15 novembre 2011

dernière mise à jour le 15 novembre 2011 Présentation d OCL 2 Un langage de requête pour exprimer la sémantique statique des modèles Benoît Combemale, Xavier Crégut, Marc Pantel IRISA CNRS Laboratory, University of Rennes 1 benoit.combemale@irisa.fr

Plus en détail

Bases de données et sites WEB Cours 2 : SQL3 Modèle

Bases de données et sites WEB Cours 2 : SQL3 Modèle Bases de données et sites WEB Cours 2 : SQL3 Modèle 1 Plan Insuffisances du modèle relationnel Concepts objet Modèle Objet-relationnel et SQL3 2 Insuffisances du modèle relationnel Opérations séparées

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

OCL : contraintes sur métamodèles

OCL : contraintes sur métamodèles OCL : contraintes sur métamodèles Philippe Collet (revisité by Sébastien Mosser) SI5 M2 IFI : Domain Specific Languages Novembre 2014 Objectifs r Comprendre la nécessité et la portée d OCL r Apprendre

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

Listes et arbres binaires

Listes et arbres binaires Des structures de données dynamiques Listes, Listes ordonnées Arbres binaires, arbre binaires de recherche Listes chaînées Utile si le nombre d éléments n est pas connu à l avance et évolue beaucoup. Permet

Plus en détail

Rappel sur les bases de données

Rappel sur les bases de données Rappel sur les bases de données 1) Généralités 1.1 Base de données et système de gestion de base de donnés: définitions Une base de données est un ensemble de données stockées de manière structurée permettant

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

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

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

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

Programmation avancée en C

Programmation avancée en C Département Informatique Nom : Prénom : Année scolaire : 2007 2008 Date : 23 juin 2008 Module INF446 Session de juin Programmation avancée en C Contrôle de connaissance 1 de 45 minutes ÅERCI de répondre

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

Cours Visual Basic URCA

Cours Visual Basic URCA Cours Visual Basic URCA Sommaire Introduction à la programmation VBA et VB Syntaxe de base, variables Opérateurs de base, boucles Introduction à la programmation Qu est-ce que la programmation? Séquences

Plus en détail

Introduction au langage C

Introduction au langage C Organisation du cours Introduction au langage C Premier cours Notions générales Aurélien Max aurelien.max@limsi.fr 12 séances de cours de 1h: mercredi 16-17h, salle A203 12 séances de TD de 1h: mercredi

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

DEMARCHE OU PROCESSUS LOGICIEL

DEMARCHE OU PROCESSUS LOGICIEL DEMARCHE OU PROCESSUS LOGICIEL PROCESSUS LOGICIEL Définition Un processus définit une séquence d étapes, en partie ordonnées, qui concourent à l obtention d un système logiciel ou à l évolution d un système

Plus en détail

Standards Objets OMG - ODMG ODL - OQL. Plan. Introduction à l'odmg: Object Definition Language (ODL) Object Query Language (OQ)

Standards Objets OMG - ODMG ODL - OQL. Plan. Introduction à l'odmg: Object Definition Language (ODL) Object Query Language (OQ) Plan Standards Objets OMG - ODMG ODL - OQL Introduction à l'odmg: Contenu de la proposition; Architecture d'un SGBDO; Object Definition Language (ODL) Object Query Language (OQ) 1 2 Tirés des documents

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

Contrôler les programmes VBA

Contrôler les programmes VBA 7 Contrôler les programmes VBA Au sommaire de ce chapitre Utiliser les opérateurs logiques Trier des données Répéter une série d instructions : les boucles Utiliser des instructions conditionnelles Définir

Plus en détail

MODÉLISATION DES BESOINS

MODÉLISATION DES BESOINS MODÉLISATION DES BESOINS Diagrammes de cas d utilisation Cas d'utilisation : Use Case (Jacobson) Permettent déxprimer les attentes/besoins des utilisateurs Permettent de définir les limites du système

Plus en détail

GÉNÉRALITÉS (1/1) LA REPRESENTATION de l INFORMATION

GÉNÉRALITÉS (1/1) LA REPRESENTATION de l INFORMATION GÉNÉRALITÉS (1/1) La couche Présentation : est concernée par LA REPRESENTATION de l INFORMATION = = > Objectif : fournir un service assurant une représentation commune de l information échangée entre systèmes

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

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

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

Bases de la programmation orientée objet en Java

Bases de la programmation orientée objet en Java Bases de la programmation orientée objet en Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-33 Avant propos Difficultés...

Plus en détail

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5 Introduction à l algorithmique et à la programmation IUT 1ère année 2013-2014 Cyril Nicaud Cyril.Nicaud@univ-mlv.fr Cours 1 / 5 Déroulement du cours Organisation : 5 séances de 2h de cours 10 séances de

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