Un Survol des Méthodes Formelles pour Java Card TM
|
|
- Lucie Marion
- il y a 8 ans
- Total affichages :
Transcription
1 Réunion PROGSI : Sécurité Java Card TM Un Survol des Méthodes Formelles pour Java Card TM d.rouillardserma.com sauveronlabri.fr 21 novembre 2002
2 Plan L architecture Java Card : vue générale des aspects ciblés. Projets orientés plate-forme : prouver des propriétés liées au langage et la JCVM (typage, gestion mémoire, BCV). Projets orientés applications : prouver qu un programme particulier satisfait des propriétés données (invariants sur les données, séquencement des transactions). Page 2
3 L architecture Java Card Station de travail (hors carte) Carte Firewall Niveau Applicatif Java Card Applet A (Paquetage 1) Applet B (Paquetage 1) Applet C (Paquetage 2) Installateur Fichier(s) exp Fichier(s) class Fichier exp Fichier CAP APIs spécifiques à l industrie (OP,...) APIs Java Card Niveau Applicatif Java Card Communication I/O Classes systèmes Gestion des Transactions Gestion des Applets et divers Niveau JCVM Convertisseur Interpréteur Niveau JCVM JCRE Bibliothèque native nécessaire à Java Card Programme d installation Bibliothèque native Composants systèmes Niveau Applicatif Natif CAD Communication I/O Gestion de la mémoire Divers Processeur Niveau Hardware Hardware & OS natif Page 3
4 Projets orientés plate-forme Le projet CertiCartes (Inria Sophia-Antipolis : G. Barthe, G. Dufay, B. Serpette...) Formalisation du langage de bytecode en C oq. Le projet Bali (Münich : G. Klein, T.Nipkow,...) Formalisation du langage JavaCard en I sabelle. Ces projets sont inclus dans VerifiCard. (Université de Nijmegen, INRIA, Universités de Münich et Kaiserslautern, Swedish Institute of Computer Science, SchlumbergerSema.) Page 4
5 Bali et CertiCartes s appuient sur un assistant de preuve (logique d ordre supérieur). Définition de types et de constantes : type primitif, accès, classe, methode, programme... Preuve de lemmes. Des techniques pour prouver plus facilement des propriétés : règles de réécritures, règles de raisonnement. Page 5
6 Le projet Certicard Contient une formalisation de la plate-forme au niveau bytecode. formalisation d un programme (format CAP). formalisation de la machine virtuelle embarquée. formalisation des instructions et leur sémantique (opérationnelle). Page 6
7 Formalisation d un programme R e c o r d j c p r o g r a m : S e t : = { c l a s s e s : ( l i s t C l a s s ) ; m e t h o d s : ( l i s t M e t h o d ) ; i n t e r f a c e s : ( l i s t I n t e r f a c e ) }. R e c o r d I n t e r f a c e : S e t : = { s t a t u s s h a r e a b l e : b o o l ; s u p e r _ i n t : ( l i s t c a p _ i n t e r f _ i d x ) ; I n t _ i d : c a p _ i n t e r f _ i d x }. R e c o r d M e t h o d : S e t : = { s i g n a t u r e : ( s i g n a t u r e _ t y p e t y p e ) ; l o c a l : n a t ; b y t e c o d e : ( l i s t I n s t r u c t i o n ) ; s t a t u s s t a t i c : b o o l ; h a n d l e r _ l i s t : ( l i s t h a n d l e r _ t y p e ) ; m e t h o d _ i d : c a p _ m e t h o d _ i d x ; o w n e r : c a p _ c l a s s _ i d x }. Page 7
8 Formalisation de la JCVM D e f i n i t i o n j c v m _ s t a t e : = s t a t i c _ h e a p h e a p s t a c k. I n d u c t i v e o b j : S e t : = I n s t a n c e : t y p e _ i n s t a n c e > o b j A r r a y : t y p e _ a r r a y > o b j. D e f i n i t i o n h e a p : = ( l i s t o b j ). D e f i n i t i o n s t a t i c _ h e a p : = ( l i s t v a l u ). D e f i n i t i o n s t a c k : = ( l i s t f r a m e ). Page 8
9 Formalisation des instructions j c v m _ s t a t e o p e r a n d s > r e t u r n e d _ s t a t e I n d u c t i v e r e t u r n e d _ s t a t e : Set := N o r m a l : j c v m _ s t a t e >r e t u r n e d _ s t a t e A b n o r m a l : xcpt >j c v m _ s t a t e >r e t u r n e d _ s t a t e. D e f i n i t i o n NOP : = [ s t a t e : j c v m _ s t a t e ] C a s e s s t a t e of ( sh, ( hp, ( ( cons h lf ) as s ))) = > ( u p d a t e _ f r a m e ( u p d a t e _ p c ( S ( p _ c o u n t h ) ) h ) s t a t e ) _ => ( A b o r t C o d e s t a t e _ e r r o r s t a t e ) end. Page 9
10 Application de Certicard Description et vérification d un vérificateur de bytecode (BCV). A démontrer : A tout point du programme, les variables locales et les opérandes de pile sont correctement typées pour l instruction à exécuter. Ce qui est prouvé : Le BCV termine. Si la vérification de bytecodes est un succès AbortCode ne sera pas appelée. Page 10
11 Application de Bali p a c k a g e j a v a _ l a n g p u b l i c i n t e r f a c e H a s F o o { } p u b l i c B a s e f o o ( B a s e z ) ; p u b l i c c l a s s B a s e i m p l e m e n t s H a s F o o { s t a t i c b o o l e a n a r r [ ] = n e w b o o l e a n [ 2 ] ; p u b l i c H a s F o o v e e ; p u b l i c B a s e f o o ( B a s e z ) { r e t u r n z ; } } p u b l i c c l a s s E x t e x t e n d s B a s e { p u b l i c i n t v e e ; p u b l i c E x t f o o ( B a s e z ) { ( ( E x t ) z ). v e e = 1 ; r e t u r n n u l l ; } } BaseCl :: class "BaseCl == ( access=public, cfields=[(arr, ( access=public,static=true,type=primt Boolean.[] )), (vee, ( access=public,static=false,type=iface HasFoo ))], methods=[base_foo], init=expr(arr_viewed_from Base Base :=New (PrimT Boolean)[Lit (Intg 2)]), super=object, superifs=[hasfoo] )" Page 11
12 Exemples de propriétés p a c k a g e j a v a _ l a n g p u b l i c i n t e r f a c e H a s F o o { } p u b l i c B a s e f o o ( B a s e z ) ; p u b l i c c l a s s B a s e i m p l e m e n t s H a s F o o { s t a t i c b o o l e a n a r r [ ] = n e w b o o l e a n [ 2 ] ; p u b l i c H a s F o o v e e ; p u b l i c B a s e f o o ( B a s e z ) { r e t u r n z ; } } p u b l i c c l a s s E x t e x t e n d s B a s e { p u b l i c i n t v e e ; p u b l i c E x t f o o ( B a s e z ) { ( ( E x t ) z ). v e e = 1 ; r e t u r n n u l l ; } } 1. La seule interface est HasFoo 2. foo est déclarée dans Ext 3. Ext foo surcharge Base foo Page 12
13 A quoi cela peut-il donc servir? Évaluation de plate-forme : prouver la correction de certains aspects (BCV, firewall, transaction) en établissant une abstraction avec la formalisation de référence. complexe à mettre en oeuvre sans outil (projet Jakarta) Évaluation d application : un compilateur.cap jcprogram est fourni par le projet Jakarta. des outils de traduction spécification théories I sabelle/c oq reste à identifier les propriétés à vérifier et le niveau le plus approprié : solde 0 ; min val max ; vérification de type énuméré. Page 13
14 Projets orientés applications Extended Static Checker ESC/Java (Compaq System Research Center) vérifie à la compilation les assertions ESC/Java ou JML JML : Java Modeling Language (Université de l Iowa) compilateur LOOP (Université de Nijmegen) traduit le code annoté en JML PVS ou Isabelle). projet Bandera un langage de spécification des propriétés (logique temporelle) des outils pour extraire un modèle à état fini à partir des programmes. un langage d abstraction et un moteur d abstraction. JavaPathFinder. Page 14
15 JML : Java Modeling Language Développé par l université de l état de l Iowa. Il permet d exprimer des assertions à inclure dans le code Java en spécifiant, par exemple : les pré-conditions et post-conditions, les invariants, etc. Se rapproche de Eiffel (vérification à l exécution pour le debug) et de l approche Design by Contract. Super ensemble de ESC/Java. Utilisation = annotation du source Java ou Java Card précédée de // ou entourée par /* et */ directement dans le.java ou dans un fichier.jml Page 15
16 JML : Java Modeling Language Préconditions et Postconditions en JML / normal behavior r e q u i r e s : < precondition >; ensures : < p o s t c o n d i t i o n >; / Exitence des quantificateurs universels (\forall) existentiels (\exist) Page 16
17 JML : Java Modeling Language Traitement des exceptions / b e h a v i o r r e q u i r e s : < precondition >; ensures : <p o s t c o n d i t i o n >; s i g n a l s : ( Exception1 ) < condition1 >;... s i g n a l s : ( Exceptionn ) < conditionn >; / normal_behavior = behavior avec signals: (java.lang.exception) false; Page 17
18 JML : Java Modeling Language invariant et modifiable Pour la classe APDU (Application Protocol Data Unit), voici un invariant / i n v a r i a n t : b u f f e r!= n u l l && b u f f e r. l e n g t h == APDU.BUFFERSIZE; / modifiable:x spécifie qu une méthode peut changer seulement le champ x. Page 18
19 JML : Java Modeling Language modifiable p u b l i c s t a t i c n a t i v e byte a r r a y C o m p a r e ( byte [ ] src, s h o r t srcoff, byte [ ] dest, s h o r t destoff, s h o r t l e n g t h ) t h r o w s A r r a y I n d e x O u t O f B o u n d s E x c e p t i o n, N u l l P o i n t e r E x c e p t i o n ; / normal behavior r e q u i r e s : s r c!= n u l l && d e s t!= n u l l && s r c O f f >= 0 && d e s t O f f >= 0 && l e n g t h >= 0 && s r c O f f + l e n g t h <= s r c. l e n g t h && d e s t O f f + l e n g t h <= d e s t. l e n g t h ; m o d i f i a b l e : \ nothing ; ensures : t r u e / Page 19
20 JML : Java Modeling Language modifiable p u b l i c s t a t i c n a t i v e s h o r t a r r a y C o p y ( byte [ ] src, s h o r t srcoff, t h r o w s A r r a y I n d e x O u t O f B o u n d s E x c e p t i o n, / b e h a v i o r byte [ ] dest, s h o r t destoff, s h o r t l e n g t h ) N u l l P o i n t e r E x c e p t i o n, T r a n s a c t i o n E x c e p t i o n ; r e q u i r e s : s r c!= n u l l && d e s t!= n u l l && s r c O f f >= 0 && d e s t O f f >= 0 && l e n g t h >= 0 && s r c O f f + l e n g t h <= s r c. l e n g t h && d e s t O f f + l e n g t h <= d e s t. l e n g t h ; m o d i f i a b l e : d e s t [ d e s t O f f.. d e s t O f f+l e n g t h 1]; ensures : t r u e ; s i g n a l s : ( TransactionException ) t r u e ; / Page 20
21 JML : Java Modeling Language Exemple 1 setincomingandreceive 2 receivebytes 3 setoutgoinglength 4 sendbytes setoutgoing setoutgoingnochaining 5 setoutgoinglength 6 sendbytes setoutgoingandsend 7 // p u b l i c model i n t APDU state ; // p u b l i c i n v a r i a n t : 1 <= APDU state && APDU state <= 7; // p u b l i c model i n t Lr ; Page 21
22 JML : Java Modeling Language Exemple p u b l i c s h o r t s e t I n c o m i n g A n d R e c e i v e ( ) t h r o w s A P D U E x c e p t i o n ; / p u b l i c b e h a v i o r r e q u i r e s : APDU state == 1; m o d i f i a b l e : APDU state, b u f f e r [5..5+\ r e s u l t 1]; ensures : APDU state == 2 && ( data r e c e i v e d in b u f f e r [5..5+ \ r e s u l t 1 ] ) ; s i g n a l s : ( APDUException ) t r u e ; / Page 22
23 JML : Java Modeling Language Exemple p u b l i c s h o r t r e c e i v e B y t e s ( s h o r t boff ) t h r o w s A P D U E x c e p t i o n ; / p u b l i c b e h a v i o r r e q u i r e s : APDU state == 2 && 0 <= boff && boff+g e t I n B l o c k S i z e () <= BUFFERSIZE; m o d i f i a b l e : APDU state, b u f f e r [ boff.. boff+\r e s u l t 1]; ensures : APDU state == 2 && 0 <= \ r e s u l t && boff+\ r e s u l t <= BUFFERSIZE && ( data r e c e i v e d in b u f f e r [ boff.. boff+\r e s u l t 1 ] ) ; s i g n a l s : ( APDUException ) t r u e ; / Page 23
24 JML : Java Modeling Language Exemple p u b l i c s h o r t s e t O u t g o i n g ( ) t h r o w s A P D U E x c e p t i o n ; / p u b l i c b e h a v i o r r e q u i r e s : APDU state = = 1 APDU state == 2; m o d i f i a b l e : APDU state ; ensures : APDU state == 3; s i g n a l s : ( APDUException ) t r u e ; / Page 24
25 JML : Java Modeling Language Exemple p u b l i c void s e t O u t g o i n g L e n g t h ( s h o r t len ) t h r o w s A P D U E x c e p t i o n ; / p u b l i c b e h a v i o r r e q u i r e s : ( APDU state == 3 && 0 <= l e n && l e n <= 256) ( APDU state == 5 && 0 <= l e n && l e n <= getoutblocksize () 2); m o d i f i a b l e : APDU state, Lr ; ensures : APDU state == \ o l d ( APDU state)+1 && Lr == l e n ; s i g n a l s : ( APDUException ) t r u e ; / Page 25
26 JML : Java Modeling Language Résultats sur l ADPU A permis de redécouvrir des idées de design de la classe qui avaient disparues dans les spécifications informelles. A permis de lever des problèmes dans l implémentation de référence. A permis de rendre plus compréhensible les spécifications informelles. Page 26
27 Annexe R e c o r d f r a m e : S e t : = { ( o p e r a n d s t a c k ) o p s t a c k : ( l i s t v a l u ) ; ( l o c a l v a r i a b l e s ) l o c v a r s : ( l i s t v a l u ) ; ( l o c a t i o n o f t h e m e t h o d ) m e t h o d _ l o c : c a p _ m e t h o d _ i d x ; ( c o n t e x t i n f o r m a t i o n ) c o n t e x t _ r e f : P a c k a g e ; ( w h e t h e r t h e m e t h o d i s b e i n g a n a l y z e d ) a n a l y z e d : b o o l ; ( p r o g r a m c o u n t e r ) p _ c o u n t : b y t e c o d e _ i d x }. Page 27
La technologie Java Card TM
Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages
Plus en détailVérification formelle de la plate-forme Java Card
Vérification formelle de la plate-forme Java Card Thèse de doctorat Guillaume Dufay INRIA Sophia Antipolis Cartes à puce intelligentes Java Card : Environnement de programmation dédié. Dernières générations
Plus en détailLa carte à puce. Jean-Philippe Babau
La carte à puce Jean-Philippe Babau Département Informatique INSA Lyon Certains éléments de cette présentation sont issus de documents Gemplus Research Group 1 Introduction Carte à puce de plus en plus
Plus en détailVérification formelle de la plate-forme Java Card
UNIVERSITÉ DE NICE - SOPHIA ANTIPOLIS École Doctorale STIC UFR Sciences THÈSE pour obtenir le titre de Docteur en Sciences de l Université de Nice - Sophia Antipolis Spécialité : Informatique présentée
Plus en détailProjet de Veille Technologique
Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines (i.mzoughi@gmail.com) Dr. MAHMOUDI Ramzi (mahmoudr@esiee.fr) TEST Sommaire Programmation JavaCard Les prérequis...
Plus en détailVulgarisation Java EE Java EE, c est quoi?
Paris, le 1 Février 2012 Vulgarisation Java EE Java EE, c est quoi? Sommaire Qu est ce que Java? Types d applications Java Environnements Java Versions de Java Java EE, c est quoi finalement? Standards
Plus en détailStructure 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
Plus en détailConception des systèmes répartis
Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan
Plus en détailDiplôme Européen de III ème cycle en Systèmes d'information!"" #!$%& ' (
$%&)"& Diplôme Européen de III ème cycle en Systèmes d'information!"" #!$%& ' ( 2002-2003 * #& % Introduction... 1 Contexte et motivation... 1 Objectif du Travail... 2 Partie I: Etat de l'art 1. Chapitre1
Plus en détailExpression 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étailProgrammation en Java IUT GEII (MC-II1) 1
Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)
Plus en détailFormula Negator, Outil de négation de formule.
Formula Negator, Outil de négation de formule. Aymerick Savary 1,2, Mathieu Lassale 1,2, Jean-Louis Lanet 1 et Marc Frappier 2 1 Université de Limoges 2 Université de Sherbrooke Résumé. Cet article présente
Plus en détailUne 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é)
Plus en détailMachines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40
Machines virtuelles Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles La compilation peut
Plus en détailAutomatic generation of vulnerability tests for the Java Card byte code verifier
Automatic generation of vulnerability tests for the Java Card byte code verifier Aymerick Savary GRIL, Département Informatique, Université de Sherbrooke, Québec, Canada Email: aymerick.savary@usherbrooke.ca
Plus en détailCours 1: Java et les objets
Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/
Plus en détailCours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Plus en détailCompromission d une application bancaire JavaCard par attaque logicielle
Compromission d une application bancaire JavaCard par attaque logicielle Julien Lancia SERMA Technologies, CESTI, 30, avenue Gustave Eiffel 33600 Pessac, France j.lancia(@)serma.com Résumé Les plateformes
Plus en détailÉvaluation de l injection de code malicieux dans une Java Card
Évaluation de l injection de code malicieux dans une Java Card Julien Iguchi-Cartigny, Jean-Louis Lanet {julien.cartigny,jean-louis.lanet}(@)unilim.fr XLIM/DMI/SSD 83 rue d Isle 87000 Limoges Résumé Nous
Plus en détailINTRODUCTION 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
Plus en détailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) 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
Plus en détailF. Barthélemy. 17 mai 2005
Typage de la généricité en Java F. Barthélemy 17 mai 2005 1 Le shéma général La g én éricit é en Java est un ajout r éalis é sur un langage existant depuis d éjà une dizaine d ann ées, avec des contraintes
Plus en détailÉvaluation et implémentation des langages
Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation
Plus en détailExclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011
Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique
Plus en détailJava et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.
: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL
Plus en détailJava - la plateforme
Java - la plateforme Java la plateforme Java? VM GC JIT Java Aujourd'hui 3 environnements d'exécutions différents Java ME (Micro Edition) pour PDA, téléphone Android (Java SE moins certain paquetages)
Plus en détailArgument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données
EARTH et Threaded-C: Éléments clés du manuel de références de Threaded-C Bref historique de EARTH et Threaded-C Ancêtres de l architecture EARTH: Slide 1 Machine à flux de données statique de J.B. Dennis
Plus en détailJava Licence Professionnelle CISII, 2009-2010
Licence Professionnelle CISII, 2009-2010 Cours 1 : Introduction à Java A. Belaïd abelaid@loria.fr Cours disponible sur le site : http://www.loria.fr/~abelaid puis Teaching 1 Fonctionnement 12 séances :
Plus en détailCours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
Plus en détailIntroduction à 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
Plus en détailIntroduction aux Machines Virtuelles avec VMKit
Introduction aux Machines Virtuelles avec Ingénieur :, Responsables : Gaël Thomas, Gilles Müller EQUIPE REGAL LIP6 INRIA (Paris/France) un substrat de machine virtuelle : a substrate for Managed Runtime
Plus en détailOCL - 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étailJava 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étailMachines Virtuelles. et bazard autour. Rémi Forax
Machines Virtuelles et bazard autour Rémi Forax Avant propos Quelle est la complexité du code ci-dessous? Avec un processeur à 1Ghz, combien de temps le calcul prendra t'il? public static void main(string[]
Plus en détailAnnexe : La Programmation Informatique
GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de
Plus en détailTraduction des Langages : Le Compilateur Micro Java
BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant
Plus en détailJava c est quoi? Java pourquoi?
Grandes lignes du cours Cours JAVA : Le bases du langage Java. Version 3.02 Julien Sopena 1 1 julien.sopena@lip6.fr Équipe REGAL - INRIA Rocquencourt LIP6 - Université Pierre et Marie Curie Licence professionnelle
Plus en détailInstitut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique
Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation
Plus en détailJava DataBaseConnectivity
Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage
Plus en détailJava c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java
1 - Vue générale 2 - Mon premier programme 3 - Types de Programme 1 2 c est quoi? Technologie développée par SUN Microsystems lancée en 1995 Dans un des premiers papiers* sur le langage JAVA, SUN le décrit
Plus en détailPrise en compte des ressources dans les composants logiciels parallèles
Prise en compte des ressources dans les composants logiciels parallèles Aperçus de l action RASC et du projet Concerto F. Guidec Frederic.Guidec@univ-ubs.fr Action RASC Plan de cet exposé Contexte Motivations
Plus en détailChapitre 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étailLangage 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 gauthier.picard@emse.fr
Plus en détailLambda! 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
Plus en détailExceptions. 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
Plus en détailRappels d architecture
Assembleur Rappels d architecture Un ordinateur se compose principalement d un processeur, de mémoire. On y attache ensuite des périphériques, mais ils sont optionnels. données : disque dur, etc entrée
Plus en détailPlan. 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étailas 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
Plus en détailPerspectives d'utilisation du serveur web embarqué dans la carte à puce Java Card 3
MajecSTIC 2010 Bordeaux, France, du 13 au 15 octobre 2010 Perspectives d'utilisation du serveur web embarqué dans la carte à puce Java Card 3 Nassima KAMEL, Jean louis LANET, Julien Igouchi CARTIGNY, Matthieu
Plus en détailRapport de certification ANSSI-CC-PP-2010/07 du profil de protection «Java Card System Closed Configuration» (PP-JCS-Closed-v2.
PREMIER MINISTRE Secrétariat général de la défense et de la sécurité nationale Agence nationale de la sécurité des systèmes d'information Rapport de certification ANSSI-CC-PP-2010/07 du profil de protection
Plus en détailDerrière toi Une machine virtuelle!
Derrière toi Une machine virtuelle! Yann-Gaël Guéhéneuc guehene@emn.fr École des Mines de Nantes, France Object Technology International Inc., Canada D où ça vient? Calculatrice Machine de Turing 1936
Plus en détailSGDN. Projet: JAVASEC
SGDN Projet: JAVASEC Type : rapport d étude Rapport d étude sur le langage Java Référence : JAVASEC_NTE_001 Nb pages : 227 Date : 14 octobre 2009 TABLE DES MATIÈRES 1 Introduction 8 1.1 Objet du document................................
Plus en détailPlan 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
Plus en détailLicence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...
Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez
Plus en détailDes réels aux flottants : préservation automatique de preuves de stabilité de Lyapunov
Des réels aux flottants : préservation automatique de preuves de stabilité de Lyapunov Olivier Hermant et Vivien Maisonneuve CRI, MINES ParisTech, PSL Research University prenom.nom@mines-paristech.fr
Plus en détailTP1 : 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
Plus en détailJaCarTA : un framework d exploit Java Card
JaCarTA : un framework d exploit Java Card Julien Lancia (j.lancia@serma.com) Abstract: Dans le domaine des cartes à puce, et plus précisément en ce qui concerne les plateformes Java Card, de nouvelles
Plus en détailPrincipes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle
2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle 1 Principes 2 Architecture 3 4 Aperçu d utilisation
Plus en détailOpenPaaS 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étailMachines 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
Plus en détailInfo0101 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
Plus en détailArbres 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
Plus en détailVotre premier projet Android
3 Votre premier projet Android Maintenant que le SDK Android est installé, il est temps de créer votre premier projet. La bonne nouvelle est qu il n exige aucune ligne de code les outils Android créent
Plus en détailTraitement de données
Traitement de données Présentation du module TINI Présentation du module : Le module Tini se décline en plusieurs versions, il est constitué d une carte d application et d un module processeur : Les modules
Plus en détailMachines virtuelles Cours 1 : Introduction
Machines virtuelles Cours 1 : Introduction Pierre Letouzey 1 pierre.letouzey@inria.fr PPS - Université Denis Diderot Paris 7 janvier 2012 1. Merci à Y. Régis-Gianas pour les transparents Qu est-ce qu une
Plus en détailAlgorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/??
Algorithmique I Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr Télécom 2006/07 Algorithmique I 20-09-06 p.1/?? Organisation en Algorithmique 2 séances par semaine pendant 8 semaines. Enseignement
Plus en détailGroupe Eyrolles, 2004, ISBN : 2-212-11274-2
Groupe Eyrolles, 2004, ISBN : 2-212-11274-2 Table des matières Remerciements.................................................. Avant-propos.................................................... Structure
Plus en détailNFP111 Systèmes et Applications Réparties
NFP111 Systèmes et Applications Réparties 1 de 34 NFP111 Systèmes et Applications Réparties Cours 7 - CORBA/Partie 1 Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon
Plus en détailRemote Method Invocation (RMI)
Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe
Plus en détailClasses et Objets en Ocaml.
Classes et Objets en Ocaml. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/2/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/2/ Cours Exercices Slide 1 1. Objets 2.
Plus en détailCorrigé des exercices sur les références
Corrigé des exercices sur les références Exercice 3.1.1 dessin Pour cet exercice, vous allez dessiner des structures de données au moyen de petits schémas analogues à ceux du cours, comportant la pile
Plus en détailChapitre I Notions de base et outils de travail
Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement
Plus en détailThème 3 Conception et vérification d architectures de systèmes sur puce
Thème 3 Conception et vérification d architectures de systèmes sur puce Conception et simulation Frédéric Pétrot Vérification Laurence Pierre Conception et vérification d architectures de systèmes sur
Plus en détailACTIVITÉ 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étailGenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion
GenDbg : un débogueur générique Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion 2008 Qui sommes nous? Centre d électronique de l Armement (CELAR) Maîtrise et protection
Plus en détailApplet pour visualiser les variables «automate» notifiées
Applet pour visualiser les variables «automate» notifiées Sommaire 1. Introduction...2 2. Lecture de variables «automate» notifiées...2 2.1. IHM servant au test :...2 2.2. Codage de l'applet :...2 3. Codage
Plus en détail2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free.
2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES 2.2 Architecture fonctionnelle d un système communicant Page:1/11 http://robert.cireddu.free.fr/sin LES DÉFENSES Objectifs du COURS : Ce cours traitera essentiellement
Plus en détailINTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE
I N T E RS Y S T E M S INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE David Kaaret InterSystems Corporation INTERSySTEMS CAChé CoMME ALTERNATIvE AUx BASES de données RéSIdENTES
Plus en détailLMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour
LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections
Plus en détailPour 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& collaborative workspace. the new multitouch CONNECT & SHARE COLLABORATE BETTER & DECIDE FASTER CREATE & INNOVATE SAVE & TAKE THE DATA WITH YOU
CONNECT & SHARE COLLABORATE BETTER & DECIDE FASTER SAVE & TAKE THE DATA WITH YOU CREATE & INNOVATE the new multitouch & collaborative workspace O1 Connect & Share O2 Create & Innovate O3 Collaborate better
Plus en détailObjets 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
Plus en détailPolycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5
UNIVERISTE MOHAMMED PREMIER Faculté des Sciences d Oujda Oujda - Maroc Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5 Pr. El Mostafa DAOUDI Département de Mathématiques
Plus en détailModèles système, modèles logiciel et modèles de code dans les applications spatiales
GÉNIE LOGICIEL N o 97 JUIN 2011 Modèles système, modèles logiciel et modèles de code dans les applications spatiales É RIC C ONQUET, FRANÇOIS-XAVIER D ORMOY, IULIA D RAGOMIR, A LAIN L E G UENNEC, DAVID
Plus en détailIntroduction aux systèmes temps réel. Iulian Ober IRIT ober@iut-blagnac.fr
Introduction aux systèmes temps réel Iulian Ober IRIT ober@iut-blagnac.fr Définition Systèmes dont la correction ne dépend pas seulement des valeurs des résultats produits mais également des délais dans
Plus en détailEPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Plus en détailGé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
Plus en détailTable 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étailChapitre 2 : Abstraction et Virtualisation
Virtualisation et Cloud Computing Chapitre 2 : Abstraction et Virtualisation Objectifs Présenter la notion de niveaux d abstraction séparés par des interfaces bien définies Description des avantages et
Plus en détailJava 1.5 : principales nouveautés
Cours 6 - TEP - UPMC - 2008/2009 p. 1/34 Java 1.5 : principales nouveautés classes paramétrées : generics encapsulation des valeurs de types primitifs : auto[un]boxing itération sur les boucles types énumérés
Plus en détailProgrammation Objet Java Correction
INSA - 4 AE 2007 2008 Durée : 1H00 Contrôle Programmation Objet Java Correction Consignes Tous les documents sont autorisés, mais ils seront peu utiles. Indiquez vos nom et prénom sur chaque feuille. Le
Plus en détailRN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java
RN2-Programmation Orientée Objet - JAVA CH 1 à la POO et Java Licence Professionnelle 2006 Agnès Guerraz INRIA Rhône-Alpes agnes.guerraz@inria.fr LP UPMF, Grenoble Septembre 2006 Ce cours reprend en grande
Plus en détailCours Bases de données 2ème année IUT
Cours Bases de données 2ème année IUT Cours Bilan : Des vues à PL/SQL corrigé Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Cas exemple 2 Les tables... 3 Vues et index 4 Privilèges 5 Fonctions
Plus en détailGestion mémoire et Représentation intermédiaire
Gestion mémoire et Représentation intermédiaire Pablo de Oliveira March 23, 2015 I Gestion Memoire Variables locales Les variables locales sont stockées: Soit dans un registre,
Plus en détailCours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java
Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page
Plus en détailObject 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étailUne introduction rapide à Coq
Une introduction rapide à Coq Yves Bertot Janvier 2009 1 Démarrer le système Pour utiliser Coq on dispose de trois commandes, une commande qui sert à compiler des fichiers (coqc), une commande qui fournit
Plus en détailRappel. 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étailJADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.
: Java Agent DEvelopment framework Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.fr Introduction à la plateforme JADE 1) Modèle d agent 2) Services 3) Norme FIPA
Plus en détailTypes d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles
Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce
Plus en détail