Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e
|
|
|
- Pascal St-Amand
- il y a 10 ans
- Total affichages :
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... [email protected] [email protected] 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 [email protected] OCL 3 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] OCL 9 [email protected] 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 > [email protected] OCL 11 context Personne::anniversaireArrive () post : age = age@pre + 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) [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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) [email protected] 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 [email protected] 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) [email protected] 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 =, <> [email protected] OCL 19 [email protected] 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 } [email protected] OCL 22 [email protected] 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) [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] OCL 27 [email protected] 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) [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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é [email protected] OCL 33 [email protected] 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) [email protected] OCL 35 [email protected] 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) [email protected] 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 [email protected] 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é [email protected] 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 [email protected] 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é [email protected] 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) [email protected] 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 ) [email protected] OCL 43 [email protected] OCL 44 8
OCL - Object Constraint Language
OCL - Object Constraint Language Laëtitia Matignon [email protected] Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object
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
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 [email protected] 1 Plan 1. Pourquoi OCL? Introduction par l'exemple
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
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
Développement d un interpréteur OCL pour une machine virtuelle UML.
ObjeXion Software Prototyping made easy SA au capital de 500 000 F Siret 421 565 565 00015 APE 722Z Téléphone : 03 89 35 70 75 Télécopie : 03 89 35 70 76 L embarcadère 5, rue Gutemberg 68 800 Vieux-Thann,
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..
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
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.
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 [email protected]
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...............................................
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
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
LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. [email protected] www.cril.univ-artois.fr/~jabbour
LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour [email protected] www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections
Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL
Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions
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.
UML. Diagrammes de classes (suite) Delphine Longuet. [email protected]
Polytech Paris-Sud Formation initiale 3 e année Spécialité Informatique Année 2014-2015 UML Diagrammes de classes (suite) Delphine Longuet [email protected] Opérations Opérations Service qui peut
UML (Diagramme de classes) Unified Modeling Language
UML (Diagramme de classes) Unified Modeling Language Sommaire Introduction Objectifs Diagramme de classes Classe (Nom, attribut, opération) Visibilité et portée des constituants d une classe Association
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
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 :
F. Barthélemy. 17 mai 2005
Typage de la généricité en Java F. Barthélemy 17 mai 2005 1 Le shéma général La g én éricit é en Java est un ajout r éalis é sur un langage existant depuis d éjà une dizaine d ann ées, avec des contraintes
Génie Logiciel avec Ada. 4 février 2013
Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre
3. UML - Unified Modeling Language Diagrammes statiques
3. UML - Unified Modeling Language Diagrammes statiques Laëtitia Matignon [email protected] Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon
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
TP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
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
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
Algorithmique et programmation : les bases (VBA) Corrigé
PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi
Information utiles. [email protected]. 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 : [email protected] webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/
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
Modèle Entité/Association
Base de données Modèle Entité/Association L3 Informatique Antoine Spicher [email protected] Contexte du cours Organisation du cours 1 ère partie (C. D.) Modèle et algèbre relationnel Langage SQL
Langage SQL : créer et interroger une base
Langage SQL : créer et interroger une base Dans ce chapitre, nous revenons sur les principales requêtes de création de table et d accès aux données. Nous verrons aussi quelques fonctions d agrégation (MAX,
Cours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas [email protected] PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
Conception des bases de données : Modèle Entité-Association
Conception des bases de données : Modèle Entité-Association La modélisation d un problème, c est-à-dire le passage du monde réel à sa représentation informatique, se définit en plusieurs étapes pour parvenir
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
basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML
basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes
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
Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21
INSA - ASI TechnoWeb : Rappels UML 1/21 Technologie Web Conception de sites Web Alexandre Pauchet INSA Rouen - Département ASI BO.B.RC.18, [email protected] INSA - ASI TechnoWeb : Rappels UML 2/21
INITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
Algorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Premiers Pas en Programmation Objet : les Classes et les Objets
Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.
Université de Sherbrooke, Département d informatique
Université de Sherbrooke, Département d informatique IGL501 : Méthodes formelles en génie logiciel, Examen périodique Professeur : Marc Frappier, mardi 7 octobre 2013, 15h30 à 18h20, local D4-2022 Documentation
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
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation
Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle - 2012-2013 P. Bonnet
Programmation VBA Pierre BONNET 21 La programmation VBA Historiquement, la programmation sous Excel avait comme fonction d'automatiser une succession d'actions faites dans la feuille à l'aide de la souris.
Modélisation des données
Modélisation des données Le modèle Entité/Association Le MCD ou modèle Entité/Association est un modèle chargé de représenter sous forme graphique les informations manipulées par le système (l entreprise)
Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée
Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée forax at univ-mlv dot fr - ParisJUG Java.next() - Mars 2012 What Else? Lambda == Inner class? Java a des lambdas depuis la version 1.1 Exemple utilisant
Programmation Web. Madalina Croitoru IUT Montpellier
Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance
Les diagrammes de modélisation
L approche Orientée Objet et UML 1 Plan du cours Introduction au Génie Logiciel L approche Orientée Objet et Notation UML Les diagrammes de modélisation Relations entre les différents diagrammes De l analyse
Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes
Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition
Algorithme. Table des matières
1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............
Cours Composant 2. Qualité logicielle et spécications algébriques
UPMC Paris Universitas Master Informatique STL Cours Composant 2. Qualité logicielle et spécications algébriques c 2005-2008 Frédéric Peschanski UPMC Paris Universitas 24 février 2008 c 2005-2008 Frédéric
Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan
Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre
Rapport de Mini-Projet en ArcGIS Engine
Rapport de Mini-Projet en ArcGIS Engine Réalisée par : Asmae BENMESSAOUD 3ème Année Cycle d Ingénieur Géoinformation Année Universitaire 2010- Sommaire 1 Introduction L analyse géographique et la visualisation
Une introduction à Java
Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)
Structure d un programme et Compilation Notions de classe et d objet Syntaxe
Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types
Création d objet imbriqué sous PowerShell.
Création d objet imbriqué sous PowerShell. Par Laurent Dardenne, le 13/01/2014. Niveau Ce tutoriel aborde la création d objet composé, c est-à-dire que certains de ses membres seront eux-mêmes des PSObjects.
TP 1. Prise en main du langage Python
TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer
Table des matières Sources
Table des matières Modélisation objet avec UML... 2 Introduction... 2 Modèle de système informatique :... 2 Pourquoi UML pour la modélisation Objet?... 3 Représentation dynamique du système... 5 Le diagramme
Le langage VHDL. Eduardo Sanchez EPFL
Le langage VHDL Eduardo Sanchez EPFL Livres conseillés: John F. Wakerly Digital design (4th edition) Prentice Hall, 2005 Peter J. Ashenden The designer's guide to VHDL (3rd edition) Morgan Kaufmann, 2008
Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets
Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper
Cours Base de données relationnelles. M. Boughanem, IUP STRI
Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),
Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Programmation en Java IUT GEII (MC-II1) 1
Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)
Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. [email protected]
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 [email protected] LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. [email protected]
Module BDWEB Maîtrise d informatique Cours 9 - Xquery Anne Doucet [email protected] 1 Langages de requêtes XML Concepts des langages de requêtes XML motivations caractéristiques Navigation dans les documents
Génération de code à partir d une spécification B : Application aux bases de données
Génération de code à partir d une spécification B : Application aux bases de données Amel Mammar * Régine Laleau ** Université du Luxembourg, LACL, Université Paris 12 SE2C, 6 rue Richard Courdenhove-Kalergi
Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications
Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications P.-A. Sunier, HEG-Arc Neuchâtel avec le concours de J. Greub [email protected] http://lgl.isnetne.ch/
RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)
CLASSE RACINE Object ancêtre de toutes les classes RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) définit donc des méthodes héritées par toutes
Présentation du PL/SQL
I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur
Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language
Unified Modeling Language UML Salima Hassas Version Cycle de vie du logiciel Client Besoins Déploiement Analyse Test Conception Cours sur la base des transparents de : Gioavanna Di Marzo Serugendo et Frédéric
Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS
Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)
Langage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne [email protected]
Paginer les données côté serveur, mettre en cache côté client
Paginer les données côté serveur, mettre en cache côté client Vous voulez sélectionner des lignes dans une table, mais celle-ci comporte trop de lignes pour qu il soit réaliste de les ramener en une seule
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
Programmer en JAVA. par Tama ([email protected]( [email protected])
Programmer en JAVA par Tama ([email protected]( [email protected]) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes [email protected] 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Machines virtuelles fonctionnelles (suite) Compilation ML Java
Machines virtuelles fonctionnelles (suite) Compilation ML Java Cours de Compilation Avancée (MI190) Benjamin Canou Université Pierre et Maire Curie Année 2011/2012 Semaine 3 Machines virtuelles fonctionnelles
DG-ADAJ: Une plateforme Desktop Grid
DG-ADAJ: Une plateforme pour Desktop Grid Olejnik Richard, Bernard Toursel Université des Sciences et Technologies de Lille Laboratoire d Informatique Fondamentale de Lille (LIFL UMR CNRS 8022) Bât M3
Facultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object
Facultés Universitaires Notre-Dame de la Paix Conception et Programmation Orientées- Object 2008-2009 RÉSUMÉ PRATIQUE... 4 CLASSE OBJET... 4 NOTION D HÉRITAGE... 4 LE POLYMORPHISME... 5 LES CLASSES ABSTRAITES...
Cours de Programmation 2
Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes
Chapitre I : le langage UML et le processus unifié
I. Introduction Les méthodes d analyse orientées objet sont initialement issues des milieux industriels. La préoccupation dominante de leurs auteurs est le génie logiciel, c est-àdire les principes et
as Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2
éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........
Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"
TD1 : traduction en Visual BASIC des exemples du cours sur les structures de contrôle de l'exécution page 1 'TRADUCTION EN VBA DES EXEMPLES ALGORITHMIQUES SUR LES STRUCTURES 'DE CONTROLE DE L'EXECUTION
Objets et Programmation. origine des langages orientés-objet
Objets et Programmation origine des langages orientés-objet modularité, encapsulation objets, classes, messages exemples en Java héritage, liaison dynamique G. Falquet, Th. Estier CUI Université de Genève
Etude et développement d un moteur de recherche
Ministère de l Education Nationale Université de Montpellier II Projet informatique FLIN607 Etude et développement d un moteur de recherche Spécifications fonctionnelles Interface utilisateur Responsable
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
Bernard HAMM, Évelyne LAVOISIER
92 MAÎTRISE DE PROGICIELS DE GESTION DE BASES DE DONNÉES ET DE TRAITEMENT DE TEXTE Compte rendu d'un stage à l'usage des professeurs de sciences sociales. Ce stage a été programmé A la demande et avec
Chap. 3: Le modèle de données entité-association (E.A.)
Chap. 3: Le modèle de données entité-association (E.A.) En anglais: Entity-Relationship (ER) Origines: C.Bachman (1969), P.Chen (1976). Modèle de données > décrire la réalité perçue à travers les données
1. LA GESTION DES BASES DE DONNEES RELATIONNELLES
Dossier G11 - Interroger une base de données La base de données Facturation contient tout un ensemble d'informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de
Initiation à la Programmation en Logique avec SISCtus Prolog
Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées
INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30
Examen intra 20 février 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Quelle influence peut avoir le typage dynamique sur la maintenabilité
Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...
Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez
Cours de Génie Logiciel
Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes
# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>
94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue
