150. Contraintes OCL - Object Constraint Language. Table des matières

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

Download "150. Contraintes OCL - Object Constraint Language. Table des matières"

Transcription

1 Document en travail! Modélisation de logiciels de gestion OCL - Object Constraint Language Table des matières 1 Préambule Positionnement d'ocl Exemple de diagramme de classe Invariant Valeur initiale d'attribut Attribut dérivé Contexte Adressage explicite - self Navigation Navigation d'une entité vers un attribut Navigation d'une entité vers une extrémité opposée d'association Navigation d'une entité vers une entité associative Navigation d'une entité vers une entité associative par une association réflexive Navigation d'une association vers une extrémité Navigation et cardinalités maximales Collections Concept Opérations de collections select() et reject() collect() forall() exists() closure() iterate() Autres opérations Eléments complémentaires Remarques let - Variable locale def - Variable globale Structure de test allinstance() Bibliographie Webographie /20

2 1 Préambule Dans ce document, nous nous contenterons d'étudier OCL dans la perspective de la modélisation de contraintes au sein de modèles conceptuels de données. Plus particulièrement, nous verrons comment: - spécifier des invariants; - spécifier des valeurs initiales et des attributs dérivés Nous nous limiterons aux aspects qui nous semblent les plus importants et nous prions le lecteur de se référer aux spécifications de l'omg pour plus de détails [OMG-2]. OCL ne permet pas de modifier l'état des occurrences d'entités et d'associations du modèle; OCL est garanti :"sans effet de bord". 2 Positionnement d'ocl OCL-Object Constraint Language est un langage formel de contraintes défini par l'omg 1 en complément à UML. Le langage OCL a comme objectif de permettre au modélisateur de rendre les modèles UML plus riches en ajoutant des spécifications que la sémantique des seuls modèles ne permet pas. [OCL-2 Chapitre 7.1] the Object Constraint Language (OCL), a formal language used to describe expressions on UML models. These expressions typically specify invariant conditions that must hold for the system being modeled or queries over objects described in a model. Note that when the OCL expressions are evaluated, they do not have side effects (i.e., their evaluation cannot alter the state of the corresponding executing system). OCL expressions can be used to specify operations / actions that, when executed, do alter the state of the system. UML modelers can use OCL to specify application-specific constraints in their models. UML modelers can also use OCL to specify queries on the UML model, which are completely programming language independent. 1 OMG - Object Mangement Group, 2/20

3 3 Exemple de diagramme de classe Le diagramme ci-dessous est repris tel quel du document [OMG-2]; nous l'utiliserons pour les exemples que nous n'avons pas reproduits. Figure 1 - Exemple de diagramme de classes [Copié de OMG-2] 3/20

4 4 Invariant Un invariant est une expression OCL qui doit être vraie quel que soit l'état des occurrences d'entités et d'associations du modèle. La syntaxe basique de création d'un invariant est de la forme: context TypeName inv simplename: expressionocl - context est un mot réservé - TypeName est l'élément de modélisation (contexte) sur lequel s'applique l'invariant - inv est le mot réservé pour un invariant - simplename est un nom optionnelle qui peut être donné à la contrainte d'invariance - expressionocl est le corps de la contrainte d'invariance qui doit être toujours vraie. A partir du modèle de la Figure 2, nous pourrions écrire l'invariant suivant: context LivreEnfant inv IntervalleAge: agemin <= agemax Quelques règles de mise en œuvre d'invariants, à partir des outils de modélisation graphiques UML: Les invariants sont posés dans des notes. La note est stéréotypée «OCL». Si la note est rattachée à un élément de modélisation, le contexte de la contrainte est implicitement le-dit élément de modélisation et peut donc être omis. Figure 2 - Exemple d'invariants De notre côté, nous avons choisi d'imposer un nom à tout invariant. 4/20

5 5 Valeur initiale d'attribut Une valeur initiale est définie par une expression OCL. La syntaxe basique d'affectation de valeur initiale à un attribut est de la forme: context TypeName::attributeName Type init: expressionocl - context est un mot réservé - TypeName est l'élément de modélisation (contexte) sur lequel s'applique la valeur par défaut - attributename est le nom de l'attribut à traiter - Type est le type de données de l'attribut traité - init est le mot réservé pour une initialisation - expressionocl est le code d'initialisation A partir du modèle de la Figure 3, nous pourrions écrire l'initialisation suivante: context LigneTicket::rabais int init: 0 Figure 3 - Exemple de valeurs initiales d'attribut En nous appuyant sur l'un ou l'autre outil de modélisation UML, la spécification de valeur initiale d'attribut est beaucoup plus aisée que la description formelle ci-dessus; en général, les outils proposent une propriété de valeur initiale, Initial value, comme dans l'exemple Visual Paradigm ci-dessous: 5/20

6 Figure 4 - Interface Visual Paradigm d'édition d'un attribut (1) A propos de la valeur initiale de l'attribut dateemission de l'entité Ticket: L'opération d'initialisation, cejour(), est une procédure fournie par l'interface IDates du composant Util selon le modèle ci-dessous. Ce modèle est purement illustratif, il nous faut encore valider les choix de modélisation de ressources externes tels que ce composant Util. Figure 5 - Services du composant Util 6/20

7 6 Attribut dérivé Un attribut dérivé est défini par une expression OCL. Dans le cadre de ce cours de modélisation des données, un attribut dérivé est un attribut dont la valeur est calculée automatiquement chaque fois qu'il est invoqué. En UML un attribut dérivé est noté avec la barre de division / devant son nom. La syntaxe basique d'affectation de valeur dérivée à un attribut est de la forme: context TypeName::attributeName Type derive: expressionocl - context est un mot réservé - TypeName est l'élément de modélisation (contexte) sur lequel s'applique la dérivation - attributename est le nom de l'attribut à traiter - Type est le type de données de l'attribut traité - derive est le mot réservé pour une dérivation - expressionocl est le code de dérivation. A partir du modèle de la Figure 6, nous pourrions écrire la dérivation suivante: context LigneTicket::montantLigne decimal derive: vendu.prix*quantite Figure 6 - Exemple d'attributs dérivés 7/20

8 En général, les outils de modélisation UML permettent de définir un attribut comme étant dérivé; nous voyons, dans le formulaire ci-dessous, la propriété Derived qu'il faut valider et compléter avec l'expression de dérivation qu'il suffit de mettre dans la propriété Initial value. Figure 7 - Interface Visual Paradigm d'édition d'un attribut (2) 8/20

9 7 Contexte En général, le contexte d'application d'une expression OCL est souvent implicite, ce peut être par l'ancrage de la note «OCL» à un objet de modélisation ou par l'écriture de l'expression OCL directement au sein de l'élément auquel elle s'applique. Toutefois, lorsque cela n'est pas possible ou souhaitable, il est tout à fait possible de mettre les contraintes OCL au sein de notes flottantes et de définir le contexte comme illustré en Figure 8. Figure 8 - Déclaration explicite du contexte 8 Adressage explicite - self Implicitement, toute expression OCL s'applique à l'élément de modélisation contextuel; toutefois, il est possible de le spécifier expressément en recourant au mot-clé self. Par rapport au modèle de la Figure 2: context LivreEnfant inv IntervalleAge: agemin <= agemax est équivalent à context LivreEnfant inv IntervalleAge: self.agemin <= self.agemax Remarque: Le recours à l'adressage explicite est particulièrement utile dans le corps d'opérations 2 comparant l'élément de contexte à l'ensemble des éléments de son conteneur [Voir chapitre ] 9 Navigation Le symbole d'indirection, le point, sert d'opérateur de navigation. La navigation s'entend: 1. d'une entité vers un attribut 2. d'une entité vers une extrémité opposée d'association 3. d'une entité vers une entité associative 4. d'une entité vers une entité associative par une association récursive 5. d'une association vers une extrémité 2 Des opérations utilisant un ou plusieurs itérateurs comme iterate() ou forall(). 9/20

10 9.1 Navigation d'une entité vers un attribut Par rapport au modèle de la Figure 2, self réfère à l'entité contextuelle, en l'occurrence LivreEnfant, et.agemin accède à l'attribut agemin context LivreEnfant inv IntervalleAge: self.agemin <= self.agemax Rappel: self. peut être omis. 9.2 Navigation d'une entité vers une extrémité opposée d'association Par rapport au modèle de la Figure 6, self réfère à l'entité contextuelle, en l'occurrence LigneTicket, et.vendu accède à l'entité Produit par l'extrémité vendu de l'association; ensuite,.prix accède à l'attribut prix. context LigneTicket::montantLigne decimal derive: self.vendu.prix*self.quantite Rappel: self. peut être omis. 9.3 Navigation d'une entité vers une entité associative La navigation se fait en référant l'entité associative comme illustré ci-dessous pour l'attribut dérivé tauxpresence. Figure 9 - Navigation vers une entité associative Rappel: Presence.taux est équivalent à self.presence.taux où self est l'entité contextuelle Enfant. 10/20

11 9.4 Navigation d'une entité vers une entité associative par une association réflexive La navigation se fait en référant l'entité associative et le rôle de départ de la navigation mis entre crochet [] comme illustré ci-dessus pour l'attribut dérivé qteparties. Figure 10 - Navigation vers une entité associative par une association réflexive Rappel: Composition[composite].qte est équivalent à self. Composition[composite].qte où self est l'entité contextuelle Produit. 9.5 Navigation d'une association vers une extrémité Le principe est le même que depuis une entité vers une extrémité opposée [Chapitre 9.2]. Figure 11 - Navigation d'une association vers une extrémité 11/20

12 10 Navigation et cardinalités maximales Lors de la navigation vers une extrémité d'association, le résultat obtenu sera potentiellement: - Une occurrence de l'entité adossée à l'extrémité lorsque la cardinalité maximale est à 1 - Une collection d'occurrences de l'entité adossée à l'extrémité lorsque la cardinalité maximale est à n. Lorsque la cardinalité maximale est à 1, OCL permet de spécifier le résultat en tant que: - occurrence d'entité ou attribut. - collection composée d'une seule occurrence ou d'un seul attribut. Le choix entre les deux possibilités se marque par l'opérateur -> qui indique que l'élément qui le précède est une collection; l'opérateur -> est toujours suivi d'une opération applicable à la collection. Dans l'exemple de la Figure 12, nous utilisons le marqueur de collection '->' pour vérifier la présence d'une éducatrice responsable et ensuite le marqueur d'indirection '.' pour accéder à l'identifiant naturel, mnemonique, de l'éducatrice responsable. Figure 12 - Exemple de marqueur '.' ou '->' 11 Collections 11.1 Concept Une collection est un ensemble d'éléments de même nature. Un ensemble peut être créé par une expression OCL ou provenir de la navigation. Set {8, 5, 6, 10} context Ticket self.partiede Ensemble créé par une requête OCL. Ensemble des lignes du ticket contextuel. [Voir Figure 6] 12/20

13 Il existe 4 types de collections: - Set; un ensemble d'éléments uniques; {8,5,6,10} - OrderedSet; un ensemble d'éléments uniques ordonnés; {5,6,8,10} - Bag; un ensemble d'éléments qui peuvent être répétés; {8,5,8,8,6,5,10} - Sequence; un ensemble d'éléments ordonnés qui peuvent être répétés; {5,5,6,8,8,8,10} 11.2 Opérations de collections select() et reject() Les opérations select (boolean-expression) et reject (boolean-expression) permettent de retourner un sous-ensemble d'une collection initiale. Les exemples ci-dessous s'appliquent à la Figure 6: context Ticket self.partiede->select (rabais > 10) context Ticket self.partiede->reject (rabais > 10) Sélectionne les lignes de ticket portant un rabais > 10% Rejette les lignes de ticket portant un rabais > 10% collect() L'opération collect (expression) permet de créer une collection à partir d'un ou plusieurs ensembles. Les exemples ci-dessous s'appliquent à la Figure 6: context Ticket self.partiede->collect (rabais) Rend une collection, Bag, constituée de l'ensemble des rabais appliqués au ticket. L'opération collect() est particulièrement intéressante lorsqu'elle est couplée à des opérations ensembliste; dans l'exemple ci-dessous, l'opération asset() rend un ensemble de rabais uniques. context Ticket self.partiede->collect (rabais)->asset() Toutefois, dans un souci de concision, l'appel à la fonction collect() peut être occultée comme ci-dessous: context Ticket self.partiede.rabais 13/20

14 forall() forall(boolean-expression) L'opération forall(boolean-expression) permet d'appliquer une contrainte à une collection. Cette opération est intéressante pour poser des invariants sur une entité enfant d'une autre entité. L'exemple ci-dessous, s'applique à la Figure 13. context Tache inv employescompetents: self.collabore->forall( maitrisedifficulte >= self.difficulte) Assume que les employés qui collaborent à une tâche ont une maitrise au moins égale à la difficulté de la tâche. Figure 13 - Exemple d'opération forall(boolean-expression) Remarque: La contrainte employescompetents posée sur l'entité Tache est pertinente dans la perspective d'un changement de valeur de l'attribut difficulte. La contrainte employecompetent posée sur l'association est pertinente lors de l'ajout d'un nouvel employé à une tâche. Dans une perspective, d'analyse sémantique très poussée, une seule contrainte pourrait être décrite et l'autre en serait déduite! 14/20

15 forall() avec deux itérateurs L'opération forall, source->forall(iterator1, iterator2; result:boolean result and body ), met en œuvre deux itérateurs qui permettent de faire un produit cartésien réflexif. forall() rend vrai si tous les éléments de la source sont tous différents; autrement, elle rend faux. L'exemple ci-dessous, repris de [OMG-2], s'applique au diagramme de classes de la Figure 1. context Company inv: self.employee->forall(e1, e2:person e1<>e2 implies e1.forename <> e2.forename) Assume que les employés ont des noms différents Remarques à propos de l'exemple ci-dessus: Conformément à nos choix de modélisation [PAS-7], nous mettrions simplement un stéréotype «U» ou plus précisément «UID» à l'attribut forename de la classe Person. Conformément à nos principes de modélisation [PAS-6], nous ne mettrions pas une telle règle, unicité du nom, car elle est manifestement trop restrictive. Remarques générales à propos du produit cartésien réflexif: Dès que le volume de données croit le produit cartésien réflexif est un mécanisme source de surcharge en effet, si la classe ou l'entité contient 10'000 enregistrements, le produit cartésien donne 100'000'000 couples! Dans le cadre d'une vérification d'intégrité lors d'une transaction, nous bannissons cette opération. Par contre, le produit cartésien nous semble envisageable au sein d'une opération de contrôle de qualité pour autant que le système ne soit pas exagérément surchargé. Le problème de la vérification lors de l'ajout ou de la modification d'un enregistrement par rapport aux autres enregistrements de la table reste et doit être résolu; nous proposons de le faire en comparant l'enregistrement en cours de traitement avec l'ensemble des autres enregistrements, ceci peut se faire explicitement avec l'opération iterate() ou implicitement avec le recours à l'opération select(). Au chapitre , iterate(), nous présentons un exemple de validation d'un enregistrement parmi l'ensemble des enregistrements de la même entité exists() L'opération exists(boolean-expression) rend vrai si la collection contient au moins un élément satisfaisant la condition booléenne passée en paramètre closure() L'opération closure(expression) permet de parcourir une associative réflexive en profondeur. La collection rendue contiendra tous les éléments depuis le premier niveau jusqu'au dernier; la collection de retour est un Set ou un OrderedSet. 15/20

16 L'exemple ci-dessous, s'applique à la Figure 12. context Educatrice def: lessubordonnees Set(Educatrice) = self.subordonneea.closure( responsable) Déclare et rend une collection des subordonnées de l'éducatrice contextuelle, les subordonnées des subordonnées et ainsi de suite iterate() L'opération iterate(iterator, result body) permet de parcourir une collection et de produire un résultat qui est un autre ensemble ou une valeur scalaire (nombre, chaîne, booléen ). Toutes les opérations que nous venons de découvrir sont des enrichissements de iterate(); elle est surtout utile pour créer de nouvelles opérations et/ou mettre en place un translateur 3 entre OCL et un langage exécutable. Figure 14 - Exemple d'opération iterate() L'exemple Figure 14 est repris de notre article traitant des tables Oracle en mutation [PAS- -10]; nous invitons le lecteur à lire le descriptif du cas pratique de cet article qui fixe les règles métier de gestion des utilisateurs. De manière très succincte, la contrainte identunique vérifie que pour tout ajout d'utilisateur ou de modification des données d'un utilisateur: Il n'y ait pas d'autre(s) utilisateur(s) de même identifiant sans date de fin ou avec une date de fin >= à la date de fin de l'utilisateur traité. 3 Dans la vision où, comme nous l'avons déjà écrit, iterate() est la brique de base de toutes les opérations de manipulation des collections. 16/20

17 Le code de la contrainte d'invariant est écrit à l'inverse de la restriction énoncée ci-dessus; les éléments-clés de notre contrainte sont: Utilisateur.allInstances Récupération de tous les enregistrements de l'entité Utilisateur ->iterate(u:utilisateur ; res: Bag(Utilisateur) = Bag{} (ident = self.ident) and (datefin <> null) and (self.datedebut <= datefin) ->isempty() Parcours itératif de tous les utilisateurs Déclaration de l'itérateur des utilisateurs Déclaration de l'objet résultat de l'itération; en l'occurrence une nouvelle collection d'utilisateurs Condition de redondance ou d'erreurs (le ou les enregistrements existants qui vérifient cette condition sont mis dans la collection de résultat) Invariant vrai si aucun enregistrement n'a été mis dans la collection res:bag(utilisateur) lors de l'itération Notre contrainte peut être décrite avec plus de concision en faisant appel à l'opération select() comme illustré en Figure 15. Figure 15 - Exemple d'opération avec un itérateur implicite Autres opérations Nous avons présenté quelques opérations significatives, la liste complète est consultable dans [OMG-2] au chapitre 11 - OCL Standard Library. De plus, cette liste fixe aussi le type de collection auquel est applicable chaque opération. A titre d'exemple, nous trouvons: isempty() ou empty() notempty () size() La collection est vide La collection n'est pas vide Le nombre d'éléments dans la collection 17/20

18 one() sum() La collection contient exactement un élément La collection doit être basée sur des valeurs numériques. Somme des valeurs numériques de la collection. 12 Eléments complémentaires 12.1 Remarques Des remarques peuvent être ajoutées au sein du corps des contraintes. -- ceci est un commentaire sur une ligne expression -- ceci est un commentaire sur une fin de ligne /* ceci est un début de commentaire et cela la fin */ 12.2 let - Variable locale Des variables "locales" peuvent être déclarées directement au sein des expresssions OCL, à l'aide des mots réservés let... in. L'exemple ci-dessous, s'applique à la Figure 6. context LigneTicket inv valeurrabais: let leprix = vendu.prix in if leprix <= 100 then rabais <= 10 else if leprix <= 500 then rabais <= 15 else rabais <= 20 endif endif Vérifie le rabais appliqué en f() du prix du produit vendu. 18/20

19 12.3 def - Variable globale Des variables "globales à un élément contextuel" peuvent être déclarées à l'aide du mot réservé def comme illustré ci-dessous. Figure 16 - Exemple de déclaration "def" Remarque: now est une variable qui contient la date du jour, c'est une variante à ce que nous avons modélisé en Figure 3; annees() est une fonction qui rend le nombre d'années entre deux dates Structure de test Les mots réservés if, then, else et endif permettent de mettre en place une structure de test. Un exemple en est donné en Figure 12. Remarque: la clause else doit toujours être présente allinstance() allinstance est une opération applicable à une entité; elle retourne l'ensemble des occurreces d'une entité. context Educatrice def: volume: integer = Educatrice.allInstance->size() Rend le nombre d'éducatrices dans la variable volume. 19/20

20 13 Bibliographie [WK-03] [PAS-6] [PAS-7] [PAS-8] [PAS-9] [PAS-10] The Object Constraint Language J. Warmer, A. Kleppe Addison Wesley, 2003 HEG-Arc Modélisation des données - Aspects macroscopiques P.-A. Sunier, 2005/2013 /chapitre_110/mcd_macro.pdf HEG-Arc Modélisation des données - Les contraintes P.-A. Sunier, 2013 /chapitre_150/contraintes.pdf HEG-Arc Bases du langage de modélisation unifié - UML P.-A. Sunier, 2013 /BachelorII/Modelisation/UML/UML_Bases.pdf HEG-Arc Langage de modélisation unifié - UML P.-A. Sunier, 2013 /BachelorII/Modelisation/UML/UML.pdf Bases de données Oracle Résolution de l'erreur ORA / Table en mutation P.-A. Sunier, 2009 /publications/soug/bd/articletablemutation.pdf 14 Webographie [I-3] [OCL-1] Wikipédia - Object Constraint Language OMG - Object Constraint Language [OMG-2] OMG - Spécifications OCL Norme ISO avril /20

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

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

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

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

Plus en détail

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

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

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

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

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

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

Plus en détail

Développement d un interpréteur OCL pour une machine virtuelle UML.

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,

Plus en détail

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

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

Plus en détail

LE PROBLEME DU PLUS COURT CHEMIN

LE PROBLEME DU PLUS COURT CHEMIN LE PROBLEME DU PLUS COURT CHEMIN Dans cette leçon nous définissons le modèle de plus court chemin, présentons des exemples d'application et proposons un algorithme de résolution dans le cas où les longueurs

Plus en détail

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl 2007 16, 17 novembre, Lyon. Alexis Sukrieh <sukria@sukria.

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl 2007 16, 17 novembre, Lyon. Alexis Sukrieh <sukria@sukria. Perl Console Votre compagnon pour développer en Perl Les Journées du Perl 2007 16, 17 novembre, Lyon Alexis Sukrieh Plan Pourquoi une console? Le modèle «Read-Eval-Print-Loop» Dépendances

Plus en détail

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013 UML Diagramme de communication (communication diagram) 2013 Diagramme de communication (communication diagram) Utilisation / objectifs Sens Ce diagramme présente des objets, des acteurs, des liens et des

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

Les diagrammes de modélisation

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

Plus en détail

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

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

Plus en détail

Cours de Génie Logiciel

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

Plus en détail

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh NOTATION UML AVEC RATIONAL ROSE G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh Sommaire 1 GÉNÉRALITES...2 1.1 ENVIRONNEMENT LOGICIEL...2 1.2 LES VUES DU LOGICIEL ROSE...3 1.3 ORGANISATION RECOMMANDÉE...3

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

Chapitre I : le langage UML et le processus unifié

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

Plus en détail

4. SERVICES WEB REST 46

4. SERVICES WEB REST 46 4. SERVICES WEB REST 46 REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010,

Plus en détail

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE» MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE» Du cours Modélisation Semi -Formelle de Système d Information Du Professeur Jean-Pierre GIRAUDIN Décembre. 2002 1 Table de matière Partie 1...2 1.1

Plus en détail

Monitor LRD. Table des matières

Monitor LRD. Table des matières Folio :1/6 Table des matières 1.Installation du logiciel... 3 2.Utilisation du logiciel... 3 2.1.Description de la fenêtre de commande... 3 2.1.1.Réglage des paramètres de communication... 4 2.1.2.Boutons

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

Bases de Données. Plan

Bases de Données. Plan Université Mohammed V- Agdal Ecole Mohammadia d'ingénieurs Rabat Bases de Données Mr N.EL FADDOULI 2014-2015 Plan Généralités: Définition de Bases de Données Le modèle relationnel Algèbre relationnelle

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

Sage CRM. Sage CRM 7.3 Guide du portable

Sage CRM. Sage CRM 7.3 Guide du portable Sage CRM Sage CRM 7.3 Guide du portable Copyright 2014 Sage Technologies Limited, éditeur de ce produit. Tous droits réservés. Il est interdit de copier, photocopier, reproduire, traduire, copier sur

Plus en détail

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5 1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases

Plus en détail

Bases de données. Chapitre 1. Introduction

Bases de données. Chapitre 1. Introduction Références : Bases de données Pierre Wolper Email : pw@montefiore.ulg.ac.be URL : http : //www.montefiore.ulg.ac.be/~pw/ http : //www.montefiore.ulg.ac.be/ ~pw/cours/bd.html Henry F. Korth, Abraham Silberschatz,

Plus en détail

Langage SQL : créer et interroger une base

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,

Plus en détail

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

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 treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework L'objectif de ce document est de poser des bases de réflexion sur la modélisation d'un projet réalisé

Plus en détail

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES Antonin AILLET Remi DEVES Thibaut AZZOPARDI 2 ème année de DUT Informatique Cahier Technique «Développer une application intranet pour la gestion des stages des étudiants» Encadré par Didier BOULLE Année

Plus en détail

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8 Sage 100 CRM - Guide de la Fusion Avancée Version 8 Mise à jour : 2015 version 8 Composition du progiciel Votre progiciel est composé d un boîtier de rangement comprenant : le cédérom sur lequel est enregistré

Plus en détail

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

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

Plus en détail

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

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 MapReduce Malo Jaffré, Pablo Rauzy ENS 16 avril 2010 Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 Qu est ce que c est? Conceptuellement Données MapReduce est un framework de calcul distribué

Plus en détail

AGRÉGATION «ÉCONOMIE ET GESTION»

AGRÉGATION «ÉCONOMIE ET GESTION» AGRÉGATION «ÉCONOMIE ET GESTION» CONCOURS INTERNE SESSION 2002 ÉPREUVE SUR LES TECHNIQUES DE GESTION ET COMPORTANT DES ASPECTS PÉDAGOGIQUES DOMAINE : économie et gestion informatique Durée de préparation

Plus en détail

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14 Document FAQ Supervision et infrastructure - Accès aux EXP Page: 1 / 9 Table des matières Introduction... 3 Démarrage de la console JMX...4 I.Généralités... 4 II.WebLogic... 5 III.WebSphere... 6 IV.JBoss...

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM) Mineure SOA Business Process Modeling (BPM) Idir AIT SADOUNE idir.aitsadoune@supelec.fr Idir AIT SADOUNE - Plan 1 Notion de processus? 2 Modélisation des processus? 3 Langages

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

APIs de table pour SQL Server

APIs de table pour SQL Server 2013 E - Bibliographie APIs de table pour SQL Server Établissement: HEG Arc - Haute école Arc - Gestion Réalisé par: M. Informaticien de gestion 2009-2013 S adresse à: M.Fabrice Camus Date de début et

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

Chapitre 1 : Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données

Plus en détail

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes. Les Triggers SQL Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr 1 Sommaire Motivations Trigger Ordre Trigger Ligne Condition Trigger

Plus en détail

Cours Informatique Master STEP

Cours Informatique Master STEP Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions

Plus en détail

Formation : Modélisation avec UML 2.0 et Mise en pratique

Formation : Modélisation avec UML 2.0 et Mise en pratique Formation : Modélisation avec et Mise en pratique Durée : sur 4 Jours soit 28 heures ou sur 5 Jours soit 35 heures Présentation Stage UML (Unified Modeling Language) est la notation standard qui s'est

Plus en détail

I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes):

I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes): Master Chimie Fondamentale et Appliquée : spécialité «Ingénierie Chimique» Examen «Programmation, Simulation des procédés» avril 2008a Nom : Prénom : groupe TD : I. Programmation I. 1 Ecrire un programme

Plus en détail

Service d'installation et de démarrage de la solution de stockage réseau HP StoreEasy 1000/3000

Service d'installation et de démarrage de la solution de stockage réseau HP StoreEasy 1000/3000 Service d'installation et de démarrage de la solution de stockage réseau Services HP Données techniques Le service d'installation et de démarrage de la solution de stockage réseau offre l'installation

Plus en détail

Manuel d'utilisation Force.com

Manuel d'utilisation Force.com Manuel d'utilisation Force.com: Salesforce Summer '10 Manuel d'utilisation Force.com Copyright 2000-2010 salesforce.com, inc. Tous droits réservés. Salesforce.com, le logo "no software" et Team Edition

Plus en détail

MEGA ITSM Accelerator. Guide de Démarrage

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

Plus en détail

Méthodologies de développement de logiciels de gestion

Méthodologies de développement de logiciels de gestion Méthodologies de développement de logiciels de gestion Chapitre 5 Traits caractéristiques des deux approches de méthodologie Présentation réalisée par P.-A. Sunier Professeur à la HE-Arc de Neuchâtel http://lgl.isnetne.ch

Plus en détail

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv> Langage HTML (2 partie) «Je n'ai fait que prendre le principe d - hypertexte et le relier au principe du TCP et du DNS et alors boum! ce fut le World Wide Web!» Tim Berners-Lee

Plus en détail

OMGL6 Dossier de Spécifications

OMGL6 Dossier de Spécifications OMGL6 Dossier de Spécifications HELPDESK Radoslav Cvetkoski, Xavier Fantin, Yohann Haution, Yanis Salti, Sébastien Tassier Cvetkoski, Fantin, Haution, Salti, Tassier Page 1 Sommaire 1. Historique du document...

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

Business Process Modeling (BPM)

Business Process Modeling (BPM) Business Process Modeling (BPM) Mineure SOA Cécile Hardebolle cecile.hardebolle@supelec.fr Programme 8 nov. 15 nov. Introduction. Enjeux, rôle de l'architecte SI Partie n 1 du cas d'étude Architecture

Plus en détail

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Gestion des transactions et accès concurrents dans les bases de données relationnelles Gestion des transactions et accès concurrents dans les bases de données relationnelles Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU) Ecole Polytechnique Universitaire de Marseille Fev.

Plus en détail

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Le langage SQL pour Oracle - partie 1 : SQL comme LDD Le langage SQL pour Oracle - partie 1 : SQL comme LDD 1 SQL : Introduction SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour Définir les données (LDD) interroger

Plus en détail

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle - 2012-2013 P. Bonnet

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.

Plus en détail

Cours Composant 2. Qualité logicielle et spécications algébriques

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

Plus en détail

Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU

Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU Gabriel Antoine Louis Paillard Ce travail a eu le soutien de la CAPES, agence brésilienne pour

Plus en détail

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

Plus en détail

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée

Plus en détail

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 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

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

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

Par : Abdel YEZZA, Ph.D. Date : avril 2011 / mise à jour oct. 2012 (ajout de la section 3 et augmentation de la section 1)

Par : Abdel YEZZA, Ph.D. Date : avril 2011 / mise à jour oct. 2012 (ajout de la section 3 et augmentation de la section 1) 1 Que signifient AON et AOA? Par : Abdel YEZZA, Ph.D. Date : avril 2011 / mise à jour oct. 2012 (ajout de la section 3 et augmentation de la section 1) Sommaire 1. Concepts... 2 2. Méthode PCM appliquée

Plus en détail

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur goulwen.lefur@obeo.fr. Le 23 novembre 2012

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur goulwen.lefur@obeo.fr. Le 23 novembre 2012 DSL Domain Specific Language À l'aide des technologies Eclipse Modeling Le 23 novembre 2012 Goulwen Le Fur goulwen.lefur@obeo.fr Le but de cette session Montrer : Ce qu'est-un DSL/DSM Comment implémenter

Plus en détail

Table des matières Sources

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

Plus en détail

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

Plus en détail

WEB page builder and server for SCADA applications usable from a WEB navigator

WEB page builder and server for SCADA applications usable from a WEB navigator Générateur de pages WEB et serveur pour supervision accessible à partir d un navigateur WEB WEB page builder and server for SCADA applications usable from a WEB navigator opyright 2007 IRAI Manual Manuel

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Plus en détail

v7.1 SP2 Guide des Nouveautés

v7.1 SP2 Guide des Nouveautés v7.1 SP2 Guide des Nouveautés Copyright 2012 Sage Technologies Limited, éditeur de ce produit. Tous droits réservés. Il est interdit de copier, photocopier, reproduire, traduire, copier sur microfilm,

Plus en détail

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

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

Plus en détail

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

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées ANNEE 2014 / 2015 Désignation de l enseignement : Bases de données Nom du document : TP SQL sous PostgreSQL Rédacteur :

Plus en détail

MODE OPERATOIRE OPENOFFICE BASE

MODE OPERATOIRE OPENOFFICE BASE MODE OPERATOIRE OPENOFFICE BASE Openoffice Base est un SGBDR : Système de Gestion de Base de Données Relationnelle. L un des principaux atouts de ce logiciel est de pouvoir gérer de façon efficace et rapide

Plus en détail

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014 pascal.dayre@enseeiht.

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014 pascal.dayre@enseeiht. Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS IDS2014, Nailloux 26-28/05/2014 pascal.dayre@enseeiht.fr 1 MVC et le web 27/05/14 2 L'évolution des systèmes informatiques

Plus en détail

7.0 Guide de la solution Portable sans fil

7.0 Guide de la solution Portable sans fil 7.0 Guide de la solution Portable sans fil Copyright 2010 Sage Technologies Limited, éditeur de ce produit. Tous droits réservés. Il est interdit de copier, photocopier, reproduire, traduire, copier sur

Plus en détail

Université Paris XI Faculté des sciences d Orsay THÈSE. présentée pour l obtention du grade de Docteur en Sciences de l Université Paris-Sud XI Orsay

Université Paris XI Faculté des sciences d Orsay THÈSE. présentée pour l obtention du grade de Docteur en Sciences de l Université Paris-Sud XI Orsay N d ordre : 8563 Université Paris XI Faculté des sciences d Orsay THÈSE présentée pour l obtention du grade de Docteur en Sciences de l Université Paris-Sud XI Orsay Par Cédric JACQUIOT Spécialité : INFORMATIQUE

Plus en détail

Refonte front-office / back-office - Architecture & Conception -

Refonte front-office / back-office - Architecture & Conception - Refonte front-office / back-office - Architecture & Conception - GLG204 - Architectures Logicielles Java 2008/2009 Nom : Cédric Poisson Matricule : 06-49012 Version : 1.0 Jeudi 28 mai 2009 1 / 23 Table

Plus en détail

INTRODUCTION : Données structurées et accès simplifié

INTRODUCTION : Données structurées et accès simplifié INTRODUCTION : Données structurées et accès simplifié À l'origine de l'informatique, le stockage d'information se faisait sur cartes perforées. Ces supports pauvres ne permettaient pas de définir la structuration

Plus en détail

Modélisation de Lignes de Produits en UML *

Modélisation de Lignes de Produits en UML * Modélisation de Lignes de Produits en UML * Tewfik ZIADI, Loïc HELOUET, Jean-Marc JEZEQUEL 2 IRISA, Campus de Beaulieu 35042 RennesCedex, France Tewfik.Ziadi@irisa.fr Loic.Helouet@irisa.fr, Jezequel@irisa.fr

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

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

Plus en détail

Le Product Backlog, qu est ce c est?

Le Product Backlog, qu est ce c est? Le Product Backlog, qu est ce c est? Ludovic Larché Agile Tour 2012 à Rennes le 4 octobre 2012 Sommaire > Rappels théoriques : qu est ce qu un Product Backlog? > Le Product Backlog n est pas seul! > Techniques

Plus en détail

Gestion de base de données

Gestion de base de données Université Libre de Bruxelles Faculté de Philosophie et Lettres Département des Sciences de l Information et de la Communication Gestion de base de données Projet : Take Off ASBL Cours de M. A. Clève STIC-B-505

Plus en détail

Organigramme / Algorigramme Dossier élève 1 SI

Organigramme / Algorigramme Dossier élève 1 SI Organigramme / Algorigramme Dossier élève 1 SI CI 10, I11 ; CI 11, I10 C24 Algorithmique 8 février 2009 (13:47) 1. Introduction Un organigramme (ou algorigramme, lorsqu il est plus particulièrement appliqué

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

Compte-rendu de projet de Système de gestion de base de données

Compte-rendu de projet de Système de gestion de base de données Compte-rendu de projet de Système de gestion de base de données Création et utilisation d'un index de jointure LAMBERT VELLER Sylvain M1 STIC Université de Bourgogne 2010-2011 Reponsable : Mr Thierry Grison

Plus en détail

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

GOL-502 Industrie de services. Travaux Pratique / Devoir #7 GOL-502 Industrie de services Travaux Pratique / Devoir #7 Version 2012 Modélisation à l'aide du langage UML 1) Diagramme de cas d'utilisation 2) Diagramme de classes 3) Diagramme de séquence 4) Diagramme

Plus en détail

Modèle conceptuel : diagramme entité-association

Modèle conceptuel : diagramme entité-association Modèle conceptuel : diagramme entité-association Raison d'être de ce cours «La conception et l'utilisation de bases de données relationnelles sur micro-ordinateurs n'est pas un domaine réservé aux informaticiens.»

Plus en détail

Le passé composé. C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past!

Le passé composé. C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past! > Le passé composé le passé composé C'est le passé! Tout ça c'est du passé! That's the past! All that's in the past! «Je suis vieux maintenant, et ma femme est vieille aussi. Nous n'avons pas eu d'enfants.

Plus en détail

UML : Unified Modeling Language

UML : Unified Modeling Language UML : Unified Modeling Language Recommended: UML distilled A brief guide to the standard Object Modeling Language Addison Wesley based on Frank Maurer lecture, Univ. of Calgary in french : uml.free.fr/index.html

Plus en détail

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)* La démarche MDA Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)* Référence : Livrable 1.1-5 Date : Mai 2002 * : Les partenaires du projet ACCORD sont CNAM,

Plus en détail

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

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

Plus en détail