INF3143. Modélisation et spécification formelles des logiciels. Hiver Alexandre Terrasa Département d informatique, UQÀM
|
|
|
- Philippe Ducharme
- il y a 9 ans
- Total affichages :
Transcription
1 INF3143 Modélisation et spécification formelles des logiciels Hiver 2017 Alexandre Terrasa Département d informatique, UQÀM
2 Expression des contraintes en UML 2
3 Exprimer des contraintes avec UML Dans le diagramme de classes: contraintes structurelles classes, interfaces, héritage, relations, navigabilité, cardinalité contraintes de type type des propriétés, paramètres, retours contraintes de visibilité public, privé, protected, package 3
4 Limite par l exemple Diagramme de classes Université employés * 1 1 Professeur nom: String salaire: Integer professeur 1 * * Cours sigle: String 4
5 Limite par l exemple Code source valide et acceptable Professeur p1 = new Professeur() p1.nom = Alexandre p1.salaire = Code source valide mais inacceptable Professeur p2 = new Professeur() p2.nom = p2.salaire = -10 5
6 Limite par l exemple Diagramme d objets valide et acceptable p1:professeur u1:université p2:professeur u2:université c1: Cours c2: Cours 6
7 Limite par l exemple Diagramme d objets valide et inacceptable p1:professeur u1:université p2:professeur u2:université c1: Cours c2: Cours 7
8 Exercice Écrivez deux diagrammes d objets un valide et acceptable un valide mais inacceptable parent 0..1 Répertoire * nom: String 8
9 Solution (exemple valide et acceptable) r1:répertoire nom= r1 r2:répertoire nom= r2 r3:répertoire nom= r3 r4:répertoire nom= r4 r5:répertoire nom= r5 r6:répertoire nom= r6 9
10 Solution (exemple valide mais inacceptable) r1:répertoire nom= r1 Répertoire r1 = new Répertoire( r1 ) r1.parent = r1 10
11 Un besoin: exprimer des contraintes sémantiques Contrainte sémantique du modèle condition à respecter restriction assertion Exemples: le solde du compte doit toujours être positif un livre ne peut pas être emprunté par deux personnes différentes en même temps une personne ne peut pas être professeur et chargée de cours en même temps 11
12 Contraintes en UML Dans le diagramme de classe texte entre accolades: {condition} langage naturel: {solde toujours positif} ou OCL: {solde >= 0} Dans un document annexe au diagramme en OCL 12
13 Contraintes dans le diagramme de classes Directement dans la classe Étudiant nom: String {nom.size() > 0} moyenne: Real {moyenne >= 0.0} Dans une note nom: String moyenne: Real Étudiant {nom.size() > 0 and moyenne >= 0.0} 13
14 Contraintes dans le diagramme de classes Sur les relations Personne propriétaire {xor} Compte Corporation propriétaire 14
15 Contraintes dans un document OCL Diagramme de classes nom: String moyenne: Real Étudiant {nom.size() > 0 and moyenne >= 0.0} Dans le fichier annexe context Étudiant inv: nom.size() > 0 inv: moyenne >=
16 OCL Object Constraint Language 16
17 Object Constraint Language Expression de contraintes pour UML langage formel en lien avec un diagramme de classes depuis UML 1.1 Contraintes de comportement (le QUOI) respect de la spécification contraintes de sémantique et non d implémentation 17
18 OCL pour faire quoi? Spécifier des contraintes d état invariants de classes pré-conditions sur des opérations post-conditions sur des opérations Formuler les contraintes sur les objets au niveau du diagramme de classes Utiliser des contraintes ensemblistes 18
19 Langage naturel vs OCL Langage naturel accessible ambigu, imprécis OCL (langage formel) précis, non-ambigu interprétable par des outils 19
20 Langage de programmation vs OCL Langage de programmation faible niveau d abstraction mode opérationnel (COMMENT) Langage formel abstrait mode descriptif (QUOI) 20
21 OCL Logique et syntaxe 21
22 Logique propositionnelle Issue de la logique mathématique logique basée sur les propositions on parle aussi d assertions énoncés vrais ou faux Exemples d assertions solde > 0 resultat = solde 22
23 Opérateurs logiques Opérateur unaire sur un booléen not négation Opérateurs binaires sur des booléens and et logique or ou logique xor ou exclusif implies implication logique 23
24 Opérateur not Négation de la proposition not true = false A true false not A false true 24
25 Opérateur and, or, xor Pour combiner des propositions A B A and B A or B A xor B true true true true false true false false true true false true false true true false false false false false 25
26 Opérateur implies Opérateur d implication logique Si A est vrai alors B est vrai aussi. Raccourci pour not A or B A B A implies B true true true true false false false true true false false true 26
27 Opérateur implies Exemples SI le ciel est couvert ALORS on ne voit pas le soleil SI l alarme incendie sonne ALORS on doit utiliser l escalier 27
28 Opérateur if-then-else-endif Opérateur logique if A then B else C endif Si A est vrai alors l expression vaut B Si A est faux alors l expression vaut C 28
29 Opérateurs mathématiques Opérateurs arithmétiques sur les entiers et réels: - unaire (comme dans -10) + addition, - soustraction * multiplication, / division Opérateurs de comparaison: = égalité et <> différence < et <=, > et >= 29
30 Précédence des opérateurs Par ordre de précédence: if-then-else-endif not et - unaire * et / + et - <, >, <= et >= = et <> and or xor implies 30
31 Types fondamentaux OCLAny ancêtre de tous les types Boolean true, false Integer 1 ; -3 ; 12 ; 42 Real 1,5 ; 3,14 ; String Hello World! OCLVoid null ; invalid Et les collections que nous verrons plus tard... 31
32 Opérations sur les types fondamentaux Integer, Real =, <>, <=, >=, +, -, *, / Boolean and, or, not, xor, =, <>, implies, if <expr> then else endif String concat(string), size(), tolower(), toupper() substring(start, end) Le premier caractère d une string est à l index 1! 32
33 Opérations sur tous les types allinstances(): retourne l ensemble de toutes les instances d une classe ocltype(): retourne le type d un objet oclistypeof(<type>): retourne vrai si l objet est du type spécifié ocliskindof(<type>): retourne vrai si l objet est du type spécifié ou un de ses sous-types 33
34 Opérateurs d appel Opérateur. pour accéder aux propriétés des objets self.name self.getname() Opérateur -> pour appeler les méthodes sur les collections OCL self.étudiants->size() Opérateur :: pour référer aux propriétés d une classe Étudiant::nom 34
35 OCL Contraintes 35
36 Contexte d une contrainte Une contrainte est toujours associée à un élément du modèle classe, interface attribut ou opération relation Syntaxe: context <élément> 36
37 Représentation du contexte en OCL Diagramme de classes nom: String moyenne: Real Étudiant {moyenne >= 0.0} renommer(string): void En OCL context Étudiant inv: moyenne >=
38 Exemples de contextes Sur une classe context Étudiant Sur un attribut context Étudiant::nom Sur une opération context Étudiant::setNom(nom: String): void 38
39 Invariant Contrainte à respecter en tout temps (prédicat) inv [<nom>]: <expression_logique> Exemple context Étudiant inv: moyenne >= 0.0 context Cours inv: sigle.size() >= 3 39
40 Accéder aux propriétés des objets Objet désigné par le contexte: self Exemple dans le context Étudiant nom self.nom renomer( nouveau_nom ) self.renomer( nouveau_nom ) 40
41 Exercice 1 université * 1 Professeur nom: String 1 professeur * Université 1 * Cours sigle: String coef: Real université Exprimer les contraintes OCL: Le nom d un professeur ne peut être nul Le sigle d un cours fait toujours 3 caractères Le coefficient d un cours est entre 0.0 et Un professeur doit travailler dans l université qui dispense le cours pour l enseigner 41
42 Solution 1 context Professeur inv: nom <> null context Cours inv: sigle.size() = 3 inv: coef >= 0.0 and coef <= inv: universite = professeur.universite 42
43 Pré-condition, post-condition Contrainte vérifiée avant ou après l appel d une opération pré-condition avant l appel post-condition après l appel Prédicat de spécification état avant et après un appel comportement attendu de l opération 43
44 Pré-condition Prédicat sur l état du système avant l appel d une opération pre [<nom>]: <expression_logique> Doit être vrai juste avant l exécution de l opération 44
45 Vérifier une pré-condition Vérifier que l état avant est respecté: context Etudiant::inscrire() pre: estinscrit = false 45
46 Post-condition Prédicat sur l état du système après l appel d une fonction post [<nom>]: <expression_logique> Doit être vrai juste après l exécution de l opération 46
47 Vérifier une post-condition Peut accéder à certaines valeurs spécifiques result valeur retournée par l opération <nom_attribut>@pre valeur de l attribut avant l appel context Etudiant::inscrire() post: estinscrit = true 47
48 Exemple solde: Real Compte getsolde(): Real créditer(montant: Real) débiter(montant: Real) context Compte::créditer(montant: Real) pre: montant > 0.0 post: solde = solde@pre + montant context Compte::getSolde(): Real post: result = solde 48
49 Exercice 2 Donnez un exemple de pré-condition et post-condition pour MyInteger::diviserPar() value: Integer MyInteger diviserpar(diviseur: MyInteger): MyInteger 49
50 Solution 2 context MyInteger::diviserPar (diviseur: MyInteger): MyInteger pre: diviseur.value <> 0 post: result.value = value / diviseur.value value: Integer MyInteger diviserpar(diviseur: MyInteger): MyInteger 50
51 Body Contrainte sur le résultat de la requête body : <requête> Exemple context Compte::getSolde(): Real body: self.solde 51
52 Exercice 3 Exprimer les contraintes: valeurs est toujours strictement supérieur à 0 ajoute prend un paramètre toujours supérieur ou égal à 0 ajoute incrémente le nombre de valeurs et additionne valeur à somme moyenne retourne la moyenne de somme sur valeurs Compteur valeurs: Integer somme: Integer ajoute(valeur: Integer) moyenne(): Integer 52
53 Solution 3 context Compteur inv: valeurs > 0 context Compteur::ajoute(valeur: Integer) pre: valeur >= 0 post: valeurs = valeurs@pre + 1 and somme = somme@pre + valeur context Compteur::moyenne(): Integer body: somme / valeurs 53
54 Définition let Pour déclarer une variable au sein d un énoncé let <declaration> = <requete> in <expression> <déclaration> aura la valeur de <requête> lorsqu utilisé dans <expression> context Étudiant inv: let nblettres = nom.size() in nblettres > 0 54
55 Définition def Pour déclarer une variable globale def : <declaration> = <requete> context Étudiant def: nblettres = nom.size() inv: nblettres > 0 55
56 Contrainte d initialisation Contrainte sur la valeur initiale d un attribut init : <requête> Exemple context Étudiant::moyenne: Real init:
57 Contrainte de dérivation Contrainte sur un attribut dérivé derive : <requête> Exemple context Étudiant::age : Integer derive: Date::current() - datenaissance 57
58 Exercice 4 Diagramme de classes Assuré valeurvehicule(): Integer Permis points: Integer retirerpoints(p: Integer) Assurance Véhicule categorie: String valeur: Integer catégorie: String valeur: Integer 58
59 Exercice 4 Contraintes à implémenter en OCL assurance.vehicule.valeur ou 0.0 Assuré valeurvehicule(): Integer Assuré doit avoir des points sur son permis pour avoir une assurance init à 6 Permis points: Integer retirerpoints(p: Integer) retire p points auto ou moto Assurance catégorie: String valeur: Integer Véhicule catégorie: String valeur: Integer <= valeur assurance = catégorie de l assurance 59
60 Solution 4 context Assuré inv: assurance <> null implies permis.points > 0 context Permis::points: Integer init: 6 context Permis::retirerPoints(p: Integer) pre: p > 0 post: points = points@pre - p context Assuré::valeurVehicule(): Integer body: if assurance <> null then assurance.vehicule.valeur else 0 endif context Assurance inv: categorie = auto or categorie = moto context Vehicule inv: categorie = assurance.categorie and valeur <= assurance.valeur 60
61 Conclusion Le diagramme de classes seul est parfois insuffisant pour exprimer la spécification Une solution: OCL langage formel basé sur la logique mathématique expression des contraintes sémantiques spécifier des contraintes d état invariants de classes pré-conditions sur des opérations post-conditions sur des opérations 61
62 Ressources UML/?page=object-constraint-langage-ocl Tremblay, G - Modélisation et spécification formelle de logiciels - Loze-Dion Editeurs Inc., 2004 (chap 12) 62
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
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
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
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]
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
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..
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
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.
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
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,
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.
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,
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.
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
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
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
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
Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004
Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)
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
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
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
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
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
Chapitre 10 Arithmétique réelle
Chapitre 10 Arithmétique réelle Jean Privat Université du Québec à Montréal INF2170 Organisation des ordinateurs et assembleur Automne 2013 Jean Privat (UQAM) 10 Arithmétique réelle INF2170 Automne 2013
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
OASIS www.oasis-open.org/committees/xacml/docs/docs.shtml Date de publication
Statut du Committee Working Draft document Titre XACML Language Proposal, version 0.8 (XACML : XML Access Control Markup Language) Langage de balisage du contrôle d'accès Mot clé Attestation et sécurité
Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2
Langage et Concepts de Programmation Objet Travaux Dirigés no2 Pôle Informatique École Nationale Supérieure des Mines de St-Etienne Vous trouverez plus de détails sur les concepts abordés lors de ce TD
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]
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
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
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
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
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
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
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
TD/TP PAC - Programmation n 3
Université Paris Sud Licence d informatique/iup-miage2 Année 2004-2005 Auteur : Frédéric Vernier Semaine : 11-16 octobre 2004 Conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html
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
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
INTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008
Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application
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
1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Programme Compte bancaire (code)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; Programme Compte bancaire (code) namespace compte_bancaire /// Classe Program public
ALGORITHMIQUE ET PROGRAMMATION En C
Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2
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é)
Utilitaires méconnus de StrataFrame
Utilitaires méconnus de StrataFrame Voici quelques classes d utilitaires, parmi ceux qui se trouvent dans le NameSpace MicroFour.StrataFrame.Tools. Cette liste n est pas exhaustive, et les regroupements
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
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
Chapitre 10. Les interfaces Comparable et Comparator 1
Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],
I4 : Bases de Données
I4 : Bases de Données Passage de UML au modèle relationnel Georges LOUIS Département Réseaux et Télécommunications Université de La Rochelle Module I4 2008-2009 1 G.Louis Sommaire 1 Des classes aux tables
Langage Java. Classe de première SI
Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les
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
Cours d initiation à la programmation en C++ Johann Cuenin
Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................
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
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
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 :
Recherche dans un tableau
Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6
Examen Médian - 1 heure 30
NF01 - Automne 2014 Examen Médian - 1 heure 30 Polycopié papier autorisé, autres documents interdits Calculatrices, téléphones, traducteurs et ordinateurs interdits! Utilisez trois copies séparées, une
INF 321 : mémento de la syntaxe de Java
INF 321 : mémento de la syntaxe de Java Table des matières 1 La structure générale d un programme 3 2 Les composants élémentaires de Java 3 2.1 Les identificateurs.................................. 3 2.2
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
Introduction à la programmation concurrente
Introduction à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud This work is licensed under
GOL502 Industries de services
GOL502 Industries de services Conception d un service Partie IIb Version 2013 Introduction Conception d un service partie IIb Nous verrons dans ce chapitre Modélisation d un service; Langage de modélisation
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à
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
Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)
Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être
1. Structure d'un programme FORTRAN 95
FORTRAN se caractérise par la nécessité de compiler les scripts, c'est à dire transformer du texte en binaire.(transforme un fichier de texte en.f95 en un executable (non lisible par un éditeur) en.exe.)
Corrigés des premiers exercices sur les classes
Corrigés des premiers exercices sur les classes Exercice 2.1.1 utilisation d une classe Voici le texte d une classe représentant de façon sommaire un compte bancaire et les opérations bancaires courantes.
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
UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.
UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases
Cours de Programmation en Langage Synchrone SIGNAL. Bernard HOUSSAIS IRISA. Équipe ESPRESSO
Cours de Programmation en Langage Synchrone SIGNAL Bernard HOUSSAIS IRISA. Équipe ESPRESSO 24 septembre 2004 TABLE DES MATIÈRES 3 Table des matières 1 Introduction 5 1.1 La Programmation Temps Réel.........................
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
Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014
numériques et Institut d Astrophysique et de Géophysique (Bât. B5c) Bureau 0/13 email:[email protected] Tél.: 04-3669771 29 septembre 2014 Plan du cours 2014-2015 Cours théoriques 16-09-2014 numériques pour
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 :
Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code
Généralités javadoc Université de Nice - Sophia Antipolis Richard Grin Version 1.4.1 8/2/11 javadoc produit de la documentation en partant de commentaires particuliers insérés dans le code source des classes
Notions fondamentales du langage C# Version 1.0
Notions fondamentales du langage C# Version 1.0 Z 2 [Notions fondamentales du langage Csharp] [Date : 25/03/09] Sommaire 1 Tout ce qu il faut savoir pour bien commencer... 3 1.1 Qu est ce qu un langage
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...............................................
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,
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
Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG 07.11.2011
Apache Camel & Entreprise Integration Patterns Raphaël Delaporte BreizhJUG 07.11.2011 1 Speaker CTO Zenika Ouest Consultant et formateur Responsable comité technique Architecture d'entreprise Domaine ESB
Introduction à MATLAB R
Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d
RTDS G3. Emmanuel Gaudin [email protected]
RTDS G3 Emmanuel Gaudin [email protected] PragmaDev Dédiée au développement d un AGL pour le développement des applications temps réel et embarquées. Réseau de partenaires: Formations, Service,
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
R, Bonnes pratiques. Christophe Genolini
R, Bonnes pratiques Christophe Genolini 1 Table des matières 1 Des bonnes pratiques, pour quoi faire? 4 2 Choix de l éditeur de texte 4 3 Architecture du code 6 4 Variables 10 5 Commentaires et documentation
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
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
Analyse de sécurité de logiciels système par typage statique
Contexte Modélisation Expérimentation Conclusion Analyse de sécurité de logiciels système par typage statique Application au noyau Linux Étienne Millon UPMC/LIP6 Airbus Group Innovations Sous la direction
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
TD/TP PAC - Programmation n 3
Université Paris Sud Licence d informatique/iup-miage2 - Année 2004-2005 auteur : Frédéric Vernier semaine : 11-16 octobre 2004 conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html
Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski [email protected]
Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski [email protected] Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université
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
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.
JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry [email protected].
: Java Agent DEvelopment framework Laboratoire IBISC & Départ. GEII Université & IUT d Evry [email protected] Introduction à la plateforme JADE 1) Modèle d agent 2) Services 3) Norme FIPA
TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting
IUT Bordeaux 1 2005-2006 Département Informatique Licence Professionnelle ~ SI TD Objets distribués n 3 : Windows XP et Visual Studio.NET Introduction à.net Remoting Partie 1 : l'analyseur de performances
Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
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
Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
Arbres binaires de recherche
1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de
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
