présentée pour obtenir le titre de DOCTEUR EN SCIENCES DE L UNIVERSITÉ DE PARIS 7 Spécialité : INFORMATIQUE présentée et soutenue publiquement par

Size: px
Start display at page:

Download "présentée pour obtenir le titre de DOCTEUR EN SCIENCES DE L UNIVERSITÉ DE PARIS 7 Spécialité : INFORMATIQUE présentée et soutenue publiquement par"

Transcription

1 UNIVERSITÉ PARIS 7 - DENIS DIDEROT UFR INFORMATIQUE THÈSE présentée pour obtenir le titre de DOCTEUR EN SCIENCES DE L UNIVERSITÉ DE PARIS 7 Spécialité : INFORMATIQUE présentée et soutenue publiquement par NÉSTOR CATAÑO COLLAZOS MÉTHODES FORMELLES POUR LA VÉRIFICATION DES PROGRAMMES JAVA Dirigée par : Me. Marieke HUISMAN Soutenue le : Novembre 2004 JURY M. Guy COUSINEAU,Président M. John HATCLIFF,Rapporteur M. Erik POLL,Rapporteur Me. Marieke HUISMAN M. Thomas JENSEN M. Hubert GARAVEL

2 .

3 . FORMAL METHODS FOR JAVA PROGRAMS

4 .

5 Acknowledgments I wish to thank Dr. Marieke Huisman for leading me during this thesis; her rigor and endeavor in every undertaken activity is worthy of admiration. Thanks to Dr. Willem Visser for inviting me to NASA Ames and discussing topics on model checking and symbolic methods, also thanks to Dr. Corina Pasareanu with whom I had fruitful discussions on automatic loop-invariant generation. Many thanks to Dr. Juan-Francisco Díaz-Frías who first introduced me to research; I will always remember pleasantly the time spent in the AVISPA team. Finally, thanks to Dr. Guy Cousineau who gave me the opportunity of starting studies in France, and thanks to Karina Olmos for reading carefully the previous of this thesis.

6 .

7 Contents French Summary / Résumé français 11 1 Introduction Motivation Context Thesis overview Formal methods for Java Specification languages for Java JML: The Java Modeling Language The ESC/Java specification language BSL:The Bandera Specification Language Tools using JML as specification language ESC/Java An overview of other tools Formal specification and static checking of Gemplus s electronic purse using ESC/Java General outline of the electronic purse Specifications for Smart Card applets Lightweight vs. heavyweight specifications Defensive vs. offensive specifications Level of abstraction of specifications Specifications for the Java Card API Specification and checking of the electronic purse Specifying when the implementation does not match the informal documentation Implementation mistakes Class invariants On the use of ESC/Java Formal verification of the class Decimal Conclusion

8 8 CONTENTS 4 Chase: a static checker for JML s assignable clause JML s assignable clause A syntactical method to check assignable clauses The rules defining mod, modfe and modsuf The extended membership relation Limitations of our method Chase: a checker for assignable expressions Experiences using Chase Derivation example for checking the JML s assignable clause Conclusion and future work Combining symbolic execution and model checking to reduce dynamic program analysis overhead Semantics of the observer Symbolic execution of programs A simple example syntax for our programs Symbolic execution as a means of showing program correctness Symbolic execution in more detail Program correctness for infinite symbolic execution trees Proving loop invariants by property strengthening Symbolic execution in Java PathFinder Eliminating useless emissions for Java sequential programs Eliminating useless emissions in cycles Compositional Instrumentation Conclusion Event spaces: a model for multi-threaded Java programs Java event spaces Generating and model checking Java event spaces Keeping track of the parallel behavior Event spaces as finite-state automata JEvent: a tool to generate Java event spaces Model checking event spaces Slicing event spaces in a context without aliasing Slicing event spaces in a context with aliasing PVS formalization of the slicing algorithm Modeling aspects related to the proof Proving the slicing algorithm Conclusion Conclusion 185 A Rules for checking the JML s assignable clause 195

9 List of Figures 1 Automate pour (ab) Le modèle de mémoire de Java Guide de lecture Fragment of the annotated class Decimal Structure of the purse package Relation diagram for purse classes Differences between offensive and defensive specifications Relation diagram for packages in the purse Inheritance diagrams for utils and pacapinterfaces packages Specifications for class TransactionInterface Syntax for assignable expressions Syntax for full expressions and suffix expressions Derivation example from the electronic purse Automaton for (ab) A simple Java imperative language Symbolic execution tree for AbsValue program Symbolic execution tree for GreatestCommonDivisor program k-step for GreatestCommonDivisor Base case for GreatestCommonDivisor Loop invariant strengthening Mapping for (ab) Java Memory Model formalization Java event space generation Keeping track of the parallel behavior Event spaces as finite-state automata Model checking event spaces Sliced event space Sliced event space when considering aliasing PVS proof tree for preserving slice if PVS proof tree for preserving slice fi

10 .

11 Résumé français Il nous a paru nécessaire de commencer la rédaction finale de cette thèse en recherchant pour méthodes formelles des définitions qui fussent elles-mêmes formelles. Il nous semblait utile de les confronter avec celle que nous avions forgée pendant les années de recherches et de travaux préparatoires à cette thèse et à laquelle nous avait amené les références bibliographiques. La première d entre elles non seulement coïncide avec notre propre définition mais va encore beaucoup plus loin : A broad view of formal methods includes all applications of (primarily) discrete mathematics to software engineering problems. This application usually involves modeling and analysis where the model and analysis procedure are derived from or defined by an underlying mathematically precise foundation. Elle émane de Nancy Leveson, professeur en aéronautique et astronautique au MIT. Cette définition fournit une vue assez ample des méthodes formelles en les considérant comme tout ce qui concerne l application des mathématiques au problème de la construction des logiciels. D autres définitions moins générales que celle-là non seulement coïncident avec la définition que nous en avions tirée au cours de ces années mais aussi avec la définition communément admise qui existe dans le monde de la recherche. Celle qui suit 1 considère les méthodes formelles comme étant : mathematically based techniques for the specification, development and verification of software and hardware systems. Cette définition conçoit les méthodes formelles du point de vu de sa composante formelle. À son tour, cette composante formelle considère qu il existent deux champs où la formalisation peut être utilisée : l un pour décrire le système, et l autre pour raisonner sur le système lui-même. Les langages pour la spécification formelle des propriétés sont donc une partie fondamentale de l étude des méthodes formelles. 1 Elle a été prise du site de la bibliothèque virtuelle de méthodes formelles, fmnet.info/

12 12 Résumé français Pourtant, la définition qui s approche peut être le plus à notre propre définition est la suivante 2 A formal method in software development is a method that provides a formal language for describing a software artifact (e.g. specifications, designs, source code) such that formal proofs are possible, in principle, about properties of the artifact so expressed. Cette dernière définition non seulement retient la composante formelle, mais incorpore aussi une composante méthode. Ces deux composantes ensemble nous permettent de raisonner correctement et, à travers de l utilisation des raisonnements logiques, nous offrent la possibilité de démontrer nos conjectures sur le fonctionnement d un système. Évidemment, il n est pas nécessaire d avoir fait des études en logique pour raisonner de manière correcte. Aristote disait que habituellement toutes nos facultés marchaient bien. Il existe donc une logique intrinsèque à chacun d entre nous ; ce que l on pourrait appeler le bon sens. Celui-ci non seulement suffit pour franchir les obstacles de notre quotidien, mais aussi pour le développement des sciences, puisque ni le physicien ni le mathématicien ne démarrent leurs études par la logique. Ils font confiance au bon jugement de la raison. À part cela, il est clair qu une culture intellectuelle complète comporte le besoin de ne pas se contenter de la logique spontanée de l esprit et de sa logique naturelle. On a besoin d élaborer une logique scientifique qui garantisse la rigueur de l activité intellectuelle. Cette dernière logique, appelons-la logique formelle, est précisément ce dont on parle dans notre définition de méthodes formelles et non celle où l on fait entière confiance à notre bon jugement. L idée d utiliser une logique formelle comme principe de nos raisonnements n est pas tout à fait nouvelle, elle date en réalité de l époque des grecs. Le premier individu à définir une logique formelle fut Aristote qui inventa la théorie du syllogisme. Ceci est constitué d une argumentation où, à partir d un antécédent qui compare deux termes avec un troisième, s en déduit forcement un conséquent qui relie ou sépare les deux premiers termes. Cette théorie, ainsi que son système de déduction, même primitifs, ont constitué une source d inspiration pour la conception des logiques de actuelles. Ces nouvelles logiques et les méthodes de déduction sous-jacentes sont des parties fondamentales des outils modernes faisant des méthodes formelles. On ne devrait donc pas être traité d audacieux en affirmer qu Aristote, même de façon simple, utilisait des méthodes formelles dans ses raisonnements, sûrement pas pour décider si un certain programme C avait des effets de bord, mais peut être pour décider si la bonheur appartient aux hommes qui dorment, sujet qui d ailleurs me semble nettement plus compliqué. Seul le sujet d étude a changé, l objet lui reste le même. Par bonheur pour moi et pour celui de ma directrice de thèse, le sujet de ma thèse s adapte plutôt à la première catégorie, donc ne nous faisons pas de souci. 2 Cette définition a été prise du site Web du DACS, abstracts/formal.html.

13 13 En plus d avoir besoin d une logique pour démontrer nos raisonnements, nous avons besoin d un langage de spécification pour pouvoir les exprimer. Dans la suite, nous aborderons le sujet des langages de spécification et de leur importance pour les méthodes formelles. Les langages de spécification. En bref, on définit une spécification comme une description abstraite du comportement d un système. On est donc intéressé à décrire ce que le système fait, plutôt qu à chercher à savoir de quelle manière le système le fait. Un des avantages de spécifier un système est que, même dans le processus de rédaction des spécifications, on est obligé de penser sérieusement au problème réel, et donc beaucoup d erreurs peuvent être détectées dès la spécification. Les spécifications sont souvent rédigées en langage naturel. Cependant, ceci n est pas souhaitable, car le langage naturel prête aux confusions et à l interprétation des individus. Pour donner un exemple, à partir de la seule phrase Espagnole ella duerme mientras que yo trabajo surviennent trois interprétations différentes en Français. À savoir, elle dort pendant que je travaille (au même temps), elle dort alors que (ou tandis que) je travaille (il y a un contraste), elle dort tant que je travaille (aussi longtemps que je travaille elle dormira). Pour cet exemple en particulier, on s aide en Espagnol, soit de la tonalité de sa voix, ou soit d un geste de contentement ou mécontentement, pour faire remarquer laquelle d entre ces trois interprétations notre interlocuteur est censé comprendre. Néanmoins, nous serions tout de même d accord pour affirmer que l interprétation humaine se prête aux ambiguïtés, et que deviner l intention de quelqu un en prenant comme point du départ la tonalité de la voix ou la couleur de sa peau est une affaire assez compliquée. Dans les systèmes formels de telles ambiguïtés ne sont guère désirables et doivent être évitées à tout prix. Une alternative aux langages naturels est donc de considérer l utilisation d un langage mathématique comme langage de spécification, évitant ainsi toute ambiguïté. Cette option est néanmoins difficile à mettre en oeuvre, car les langages mathématiques sont pleins de symboles compliqués à assimiler pour la plupart des utilisateurs de méthodes formelles. Dans nos temps modernes, une condition obligée pour un langage de spécification est qu il puisse être aisément utilisé par quelqu un qui n a a priori aucune connaissance des notations complexes de la logique. À quoi servirait-il d avoir un langage de spécification si finalement on ne peut pas l utiliser pour exprimer des propriétés auxquelles on est intéressé?. Ceci rejoint un des problèmes que je me suis posé pendant le déroulement de ma thèse : la spécification adéquate des applications, mais aussi le développement de techniques qui permettent d améliorer les langages de spécification déjà existants. En conséquence, on doit considérer des langages spécialement créés pour être utilisés en tant que langages de spécification, en ayant une syntaxe bien définie et une sémantique précise. Ces langages devraient être formels aussi, car autrement il existerait toujours le risque d introduire des ambiguïtés : si la propriété que

14 14 Résumé français l on veut spécifier ne coïncide pas fidèlement avec la propriété telle qu elle est interprétée par le langage de spécification, on serait donc en train de discuter sujets différents. On se sert souvent des langages de spécification pour faire des méthodes formelles. Ce dernier sujet est donc abordé dans la suite. À quoi ça sert les méthodes formelles? Les méthodes formelles peuvent concerner tout le cycle de développement des applications, dès l étape d élaboration du cahier de charges, en passant par la spécification, la conception de l application, le codage, et finalement les étapes de test et maintenance. De plus, les méthodes formelles ont influencé fortement le développement de plusieurs langages de programmation et des outils associés à ces langages. Les méthodes formelles permettent d assurer la fiabilité des applications, et par conséquent immédiate, elles nous permettent d empêcher la présence des comportements indésirables. Mais les méthodes formelles ont-elles aussi leurs limites. Prenons l exemple d un extrait de la revue Scientific American de 1994, repris de [67] : Despite 50 year of progress, the software industry remains years perhaps decades short of the mature engineering discipline needed to meet the needs of an information-age society. Apparemment, ce jugement semble sans appel. Toutefois, il nous reste donc à travailler pour réduire cette brèche entre l état de l art des techniques de vérification formelle, et les besoins existants. Sur les techniques pour la vérification formelle des applications. Le model checking (model checking) et la preuve de théorèmes (theorem proving) sont des techniques pour la vérification formelle dont l utilisation assez répandue dans certains centres académiques. Malheureusement, ces techniques ne comptent pas autant d adeptes dans le monde industriel qu on le souhaiterait. Dans la suite nous décrivons brièvement ces deux techniques. Le model checking est une technique pour la vérification automatique de systèmes réactifs. Elle a été conçue pour être automatique. Avec le model checking, le système à vérifier est modélisé comme une structure de Kripke, une sorte d automate qui étiquette chacun de ses états avec les propriétés qui sont vraies dans cet état. Á leur tour, les structures de Kripke peuvent être vues comme des arborescences (computation trees), autrement dit, comme des graphes formés quand on prend l état initial de la structure comme le sommet du graphe, et on forme les arcs a partir du système de transitions. Le graphe ainsi formé est infini. Le model checking [25, 9] est une méthode exhaustive qui consiste à explorer une arborescence pour vérifier une certaine propriété qualifiée de temporelle. Si la propriété n est pas vérifiée, une trace qui mène au bogue est affichée. En pratique, le model checking n est appliqué qu à des systèmes qui peuvent être exprimés comme des systèmes de transition d états. En plus, il doit être combiné avec d autres techniques, telles que les méthodes symboliques, pour

15 15 réussir à gérer des systèmes de grande taille. L idée sous-jacente aux méthodes symboliques consiste à représenter puis manipuler plusieurs états comme s ils n étaient qu un seul. Contrairement au model checking, la preuve de théorèmes est une technique déductive. Quand on fait de la preuve de théorèmes, on exprime en logique les propriétés auxquelles on s intéresse, et puis on utilise le système de déduction sous-jacent pour prouver que ces propriétés sont vérifiées. Le gros problème avec la preuve de théorèmes est son manque d automatisation. En outre, le processus de preuve est dispendieux et requiert l intervention de quelqu un qui maîtrise aussi bien la sémantique de la logique derrière le prouver que l outil implémente. Lorsque la mise en oeuvre de telles techniques formelles s avère impossible, on est souvent obligé d utiliser des techniques de vérification plus légères, c.à.d. moins formelles mais plus faisables. Il existe une ample gamme de ce genre de techniques, depuis le test (testing), en passant par l analyse statique (static checking) et arrivant à la vérification dynamique (runtime verification). Nous ne donnerons aucune description de telles techniques dans la suite ; remarquons seulement que dans le déroulement de cette thèse nous avons utilisé autant de techniques formelles que d informelles. Nous arguons même de l utilisation de telles techniques légères au préalable est souhaitable pour rendre la charge de la vérification formelle moins lourde. Dans le déroulement de ma thèse je me suis intéressé aux cartes intelligentes comme un des champs d application des techniques formelles de vérification. Cela constitue le sujet abordé dans la suite. Les cartes intelligentes : un premier champ d application pour les méthodes formelles. Comme conséquence de l influence de Internet dans le monde moderne, les types de transactions tendent à évoluer vers un système où le plus grand défi consisterait à s asseoir face à un ordinateur, de taper un code, et finalement de faire clic avec notre souris pour confirmer une transaction. La réussite d une transaction, faite que ce soit par Internet ou par un dispositif électronique, dépend en grande mesure de la fiabilité de la transaction. Les cartes intelligentes constituent un moyen efficace pour assurer le commerce. La fiabilité et la sécurité deviennent donc des sujets d étude importantes pour les personnes qui travaillent sur les cartes intelligentes. Les champs d application pour les cartes intelligents comportent l industrie de télécommunications, les cartes téléphoniques prépayées et les systèmes GSM (Global System for Mobile communication). Un téléphone GSM sans-fil est équipé d une puce qui se situe dans une rainure à l intérieur du téléphone. La puce est capable non seulement d identifier le porteur de la carte, mais aussi de lui fournir des clefs cryptées pour la communication vocale. La clef temporaire cryptée générée pour la puce est régénérée après chaque utilisation du téléphone. Cela afin de réduire la malveillance. Quand à leur apparence physique, les cartes intelligentes ont la même taille qu une carte de crédit, mais à la différence de celle-ci, elles sont fournies d une

16 16 Résumé français puce en silicone qui porte une mémoire et qui est capable de lancer (exécuter) un programme. Ce programme est capable de stocker et de traiter de l information, donc il ne requiert point de faire une transaction à longue distance. Une autre application pour les cartes intelligentes constitue les porte-monnaie électroniques. Un porte-monnaie électronique fournit à l utilisateur une appliquette (applet) capable de réaliser des opérations bancaires telles que crédit, débit et changement de monnaie. Ainsi par exemple, si la valeur de la transaction actuelle est au-dessus du balance du porte-monnaie, celui fera une requête à la centrale bancaire pour un crédit qui permettra de couvrir la différence. Si la centrale bancaire donne son feu vert à cette pétition, alors l utilisateur pourra finir normalement la transaction, et le crédit actuel sera donc mise à jour conformément à la valeur créditée pendant la transaction. Si la centrale en refuse, l utilisateur a encore une option. Puisque les cartes à puce gèrent un système de fidélité, à chaque fois que l utilisateur du porte-monnaie fait un achat, une somme de points de fidélité seront accumulés. Ces points de fidélité servent à jouer le rôle de points d achat (crédit) au moment où il n y aura plus de crédit disponible dans le porte-monnaie. Pendant le déroulement de ma thèse je me suis intéressé à la spécification et à la vérification de cartes intelligentes, en particulier à celles programmées en Java Card. Dans la suite nous donnons une description brève de Java Card, puis nous abordons le sujet des langages de spécification pour les applications Java. Java Card. Le langage Java Card possède la plupart des constructions du langage Java mais, pour des raisons de mise en oeuvre, quelques caractéristiques de Java ont été supprimées, notamment les types de données long, double et float, ainsi que les chaînes de caractères, les tableaux à plusieurs dimensions, le chargement dynamique de classes, le ramasse-miettes, les opérations multitâches, et finalement le clonage d objets. Toutefois, ce n est pas pour autant que Java Card manque d intérêt ; au contraire, l existence d un ensemble d instructions bien défini et une spécification plus claire (que Java) fait de Java Card une bonne base de travail pour les méthodes formelles. Les langages pour la spécification de programmes Java et Java Card. Quand on développe des applications de grande taille, une partie importante de notre temps se passe à rédiger la documentation de l application de manière claire et précise. La documentation sert aux développeurs pour la maintenance du code puisqu elle permet de mieux comprendre les décisions prises au moment de l écriture du code. Cependant, la documentation n est vraiment utile que si elle décrit l implémentation de manière exacte. Une façon d atteindre ce but consiste à écrire une spécification formelle, autrement dit, une description logique du fonctionnement du programme, et puis à vérifier sa correction. Récemment, des progrès importants ont été faits au niveau des langages de programmation et des outils de support à la programmation. D abord, on a vu apparaître des langages de spécification avec une syntaxe très proche

17 17 des langages de programmation. Cette décision cherche à faciliter la tâche de spécification menée par les programmeurs. Le langage de programmation Eiffel [69] fut le premier exemple d un langage de spécification qui ressembla à son propre langage de programmation. Également, plusieurs langages de spécification pour Java tels que JML [58, 59] (Java Modeling Language), ESC/Java [33] et Jass [49] furent créés. Ces langages suivent la même stratégie de Eiffel de ressembler à son langage de programmation. JML a été introduit par G. Leavens à l université de l Iowa, puis amélioré successivement par des personnes du monde de la recherche. Il existe également un groupe de nouveaux utilisateurs et de développeurs pour discuter de l amélioration du langage. Plusieurs aspects font de JML un langage intéressant pour spécifier des applications Java : i. il a été spécialement conçu pour cela et offre une syntaxe claire et intuitive pour quelqu un qui maîtrise la syntaxe de Java, ii. il compte beaucoup d adeptes non seulement en milieu académique, mais aussi récemment dans le monde industriel, iii. finalement, il existe de nombreux outils qui utilisent JML comme langage de spécification (dont JML lui-même) et qui font de la vérification formelle. Nous avons utilisé JML comme langage de spécification pour les applications Java Card auxquelles nous nous sommes intéressés. Dans la suite, nous donnons plus de détails sur le modèle général de spécification utilisé par JML, puis nous nous concentrons sur ESC/Java, un sous-ensemble de JML [30]. JML et le modèle de spécification par contrat. L idée de base qui soustend la spécification par contrat est qu il existe un contrat entre toute classe et tout objet (appelé client) qui se sert des méthodes de cette classe. Pour pouvoir appeler les méthodes d une classe, un client doit vérifier certaines conditions (les préconditions de la méthode). En retour, si un client vérifie la précondition d une méthode, une classe doit garantir qu après son exécution une certaine postcondition sera vérifiée. L idée d utiliser des préconditions et des postconditions pour spécifier des programmes n est pas tout à fait récente ; on la trouve déjà dans un article sur la vérification formelle écrit par C.A.R. Hoare en 1969 [45]. En revanche, ce qui est récent est l idée de rendre exécutables les contrats. JML a été conçu pour être facile à comprendre pour la moyenne des programmeurs de Java. En JML, les spécifications sont données en syntaxe Java et sont placées dans le code sous forme de commentaires. Les marques spéciales /*@...@*/ permettent aux outils de vérification utilisant JML de reconnaître les spécifications. Pour écrire des spécifications tenant sur une seule ligne, on utilise en JML la marque spéciale //@. Une spécification JML consiste à ajouter des préconditions et des postconditions à une méthode quelconque. Par exemple, une spécification telle que requires P; exprime que le prédicat P doit être vrai avant que la méthode puisse être appelée. La spécification ensures Q; dit que si la méthode ter-

18 18 Résumé français mine son exécution normalement, c.à.d. sans déclencher une exception, alors le prédicat Q sera vrai. En JML on peut spécifier aussi des postconditions d exception (exceptional postcondition) avec le mot-clé exsures ou signals. Une spécification telle que exsures (E) R; dit que si l exécution d une méthode déclenche une exception de type E, alors le prédicat R sera vrai. Il est courant par exemple de spécifier qu une exception est déclenchée avant qu un champ puisse être modifié. Cela permet de préserver l invariant d une classe. En JML, une spécification telle que invariant I; déclare un invariant I pour une certaine classe. Il est possible aussi de spécifier des conditions de modification (frame conditions) pour une méthode. Ainsi, une spécification telle que modifies L; dit que L représente le seul ensemble de cellules mémoire que la méthode en question peut modifier. En JML, les spécifications pour les préconditions, les postconditions et les conditions de modification sont placées juste à l avant de la déclaration de la méthode. Les prédicats P, Q et R ci-dessus sont formés par toute expression booléenne en Java n ayant pas d effets de bord. Ceci signifie par exemple que les opérateurs d incrémentation et de décrémentation, ++ et --, sont interdits dans les spécifications JML. Il en va de même pour les opérateurs =, +=, -=, etc. Une autre restriction imposée par JML est que les méthodes utilisées dans les spécifications ne peuvent effectuer d effet de bords. Expressions en JML. Nous décrivons dans la suite les extensions JML au langage Java. Premièrement, JML utilise le mot-clé \result pour décrire le résultat d une méthode. Ce mot-clé ne peut être utilisé que dans la postcondition normale d un méthode. Également la notation \old(e) décrit la valeur d une expression E avant l appel à la méthode respective. Cette notation est utilisée par exemple pour exprimer comment la nouvelle valeur d une variable quelconque dépend de son ancienne valeur. Remarquez que le seul endroit où l on peut utiliser \old dans une spécification est dans la postcondition (normale ou d exception). En aucun cas, il n est possible d utiliser \old dans une précondition, car la précondition est évaluée avant que l appel de la méthode ait eu lieu. JML comporte aussi des notations pour l implication logique, ==> et <==, pour l équivalence logique, <==>, et pour la non-équivalence, <=!=>. D autres opérateurs plus élaborés donnent à JML une flexibilité plus grande. Par exemple, les quantificateurs universel et existentiel (\forall T V; E) et (\exists T V; E), où T V déclare une variable V de type T, et E est l expression à vérifier. Nous illustrons notre propos avec l exemple de la méthode setheure de la classe Heure, une des classes spécifiées dans le cas d étude présenté au chapitre 3. La classe Heure déclare deux champs, heure et minute, qui ont comme fonction de modéliser les heures et les minutes. Le mot-clé /*@ permet à un champ privé d être utilisé dans une spécification publique. La précondition de la méthode setheure mot-clé requires dit que l on peut mettre à jour la valeur de l heure actuelle, à condition que cette valeur

19 19 soit entre 0 et 24. De même, les minutes doivent être entre 0 et 60. La spécification modifies heure, minute; dit que les seules variables que la méthode setheure peut modifier sont heure et minute. La postcondition normale mot-clé ensures assure qu après l appel à la méthode, heure aura la valeur h et minute la valeur m. Enfin, la postcondition d exception mot-clé exsures dit qu en aucun cas la méthode ne déclenchera une exception de type HeureException. public class Heure extends Object { private /*@ byte heure; private /*@ byte minute; requires h >= 0 && h < 24 && m >= 0 && m < modifies heure, ensures heure == h && minute == exsures (HeureException) public void setheure(byte h, byte m) throws HeureException{ if ( 0 <= h && h < 24 ){ if ( 0 <= m && m < 60 ){ heure = h; minute = m; else HeureException.throwIt(HeureException.ERREUR_MINUTE); else HeureException.throwIt(HeureException.ERREUR_HEURE); Les invariants et les contraintes en JML. Le comportement attendu d une classe quelconque peut être restreint par la déclaration d un invariant. Les invariants sont des propriétés qui doivent être vérifiées dans tout état visible. Les états visibles sont le début et la fin de toute méthode publique, mais aussi la fin de tous les constructeurs de classe. Les spécifications pour les invariants sont placées tout au début de la classe. Par exemple, l invariant suivant pour la classe Heure déclare que les champs heure et minute auront toujours des valeurs dans des intervalles acceptables. public class Heure extends Object{ //@ invariant heure >= 0 && heure < 24; //@ invariant minute >= 0 && minute < 60;.

20 20 Résumé français.. Il est possible aussi de restreindre l ensemble d états atteignables par un objet, en utilisant des spécifications du type constraint. Une contrainte est une relation entre la précondition et la postcondition d une méthode qui restreint la façon dont une variable peut évoluer. Par exemple, on pourrait spécifier qu une variable est en fait une constante, ou que cette variable peut seulement être incrémentée. Remarquez qu il est possible d exprimer des invariants et des contraintes en termes des préconditions et postconditions des méthodes de la classe. Toutefois, si l on spécifie explicitement un invariant ou une contrainte, on gagnera en abstraction. Les assertions. Il peut arriver aussi que l on souhaite rendre explicite l intention qu une condition doit être vérifiée à un certain point du programme. Pour cela, JML fournit la construction assert. Si une méthode possède une spécification assert P; à un certain point de contrôle, cela indiquera qu à chaque fois que l exécution atteint ce point de contrôle, la condition P doit être vérifiée. Cela sert, par exemple, à établir que certains points de contrôle dans une méthode ne seront pas atteints. Également, on utilise les constructions assert pour dessiner des traces de preuve, autrement dit, pour indiquer tous ces points intermédiaires qu une preuve doit respecter. Les variables abstraites. Finalement, pour atteindre un certain niveau d abstraction dans les spécifications, JML nous permet de déclarer des variables abstraites (model variables). Ces variables existent seulement au niveau de la spécification et non au niveau de l implémentation. Les variables abstraites se déclarent de la même façon que les variables normales mais, à la différence d une variable concrète, une variable abstraite est précédée par le mot-clé model. On peut exprimer une relation entre une variable abstraite et une variable normale à travers l un des mots-clés represents ou depends. Le mot-clé represents sert à spécifier comment la valeur d une variable abstraite peut être calculée à partir de la valeur d une variable concrète. Le mot-clé depends spécifie de quelles variables concrètes une variable abstraite dépend. Pour plus d information sur l utilisation des mots-clés represents et depends, et de leur utilisation en vérification modulaire, le lecteur est prié de consulter le travail de K.R.M. Leino en [60]. Maintenant, nous donnons plus de précisions sur ESC/Java. Le langage de spécification ESC/Java. Le langage de spécification utilisé par ESC/Java n est pas exactement un sous-ensemble de celui utilisé par JML [30]. Toutefois, dans le cadre de ce document, les différences exactes entre ces deux langages n ont aucune importance. La seule chose que l on doit savoir ici, c est que ESC/Java supporte tous les mots-clés déjà introduits pour JML, à l exception de constraint et model. En outre, ESC/Java fournit une variante

21 21 plus simple des variables abstraites : les variables ghost. Néanmoins, avec la construction ghost de ESC/Java, aucune clause depends ou represents n a été introduite. Maintenant, nous effectuons un survol des outils qui utilisent JML en tant que langage de spécification. Les outils qui utilisent JML comme langage de spécification. Il existe une large gamme d outils qui utilisent JML comme langage de spécification, est qui font que JML est devenu le langage standard pour spécifier les programmes Java. Puisque nous avons utilisé ESC/Java dans le déroulement de cette thèse, nous démarrons notre présentation par cet outil. Pour avoir une description complète des outils utilisant ESC/Java et JML comme langage de spécification, le lecteur est invité à consulter [13]. ESC/Java. ESC/Java a été développé à Compaq dans le groupe dirigé par K.R.M. Leino [63]. Actuellement, il n est plus maintenu par le groupe de Compaq, mais reste toujours disponible depuis leur site Web. Le but initial de ESC/Java était le développement d un outil pour trouver de manière efficace des erreurs qui apparaissent souvent en programmation, par exemple l accès à un tableau hors de ses bornes, ou la référence à l objet null. Pour vérifier une spécification, comment ESC/Java procède-t-il? D abord, il génère des obligations de preuve basées sur les spécifications et le code du programme. Les conditions de preuve sont ensuite envoyées vers l outil de preuve Simplify associé a ESC/Java 3. Si Simplify n arrive pas à vérifier l obligation de preuve, alors ESC/Java fait un rapport d erreur. Cependant, ce rapport d erreur n implique pas forcement que le programme est incorrect, car Simplify et ESC/- Java lui-même sont incorrects et incomplets. Les concepteurs de ESC/Java ont fait ce choix pour des raisons de simplicité et d efficacité. Nous présentons rapidement l un des cas qui rendent cet outil incomplet. Par exemple, ESC/Java effectue des abstractions sur des boucles en remplaçant toute instruction while(c){b par un simple test if(c){b, ce qui revient à remplacer plusieurs itérations par une seule. Le manuel de ESC/Java [63] fournit une liste complète de toutes les sources d incomplétudes de ESC/Java. LOOP. L outil LOOP a été développé à l université de Nimègue. Le but principal de cet outil est d offrir un environnement de vérification correct, afin que des programmes Java spécifiés avec JML puissent être vérifiés avec PVS [73]. Le fonctionnement de LOOP est assez simple. Grosso modo, le compilateur de LOOP est alimenté avec le code Java et les spécifications JML. À partir du code Java, le compilateur génère du code PVS. Cette génération de code est basée sur la définition PVS de la partie séquentielle de Java qui existe dans LOOP. Puis, les spécifications JML sont traduites sous forme de prédicats. Le 3 Pour plus d information sur Simplify, consultez Simplify.html.

22 22 Résumé français travail consiste donc à prouver (avec PVS) ces prédicats sur le code PVS généré à partir du code Java. Un survol d autres outils. Dans l intention d illustrer l ample gamme de techniques formelles pour JML qui sont disponibles aujourd hui, dans la suite nous donnons un survol d autres outils qui utilisent JML comme langage de spécification. Nous commençons par JML lui-même. Dès le départ, JML fut pensé pour être utilisé avec un vérificateur dynamique des assertions (runtime assertion checker). L outil JML, développé à l université d état de l Iowa, fait exactement cela : il traduit des spécifications JML sous forme de vérifications effectuées à l exécution. Lorsque le code traduit est exécuté, JML déclenche une exception si la spécification n est pas vérifiée. D autres outils ont été inspirés par ESC/Java. Par exemple, Chase (chapitre 4), développé à l INRIA de Sophia Antipolis, est un outil qui vérifie l utilisation correcte des spécifications modifies dans des annotations JML. Également, Calvin [37], développé à Compaq, est utilisé pour vérifier des propriétés de programmes Java multi-tâches. Calvin utilise une technique qui consiste à exprimer obligations de preuve multi-tâches en obligations de preuve mono-tâches qui seront ensuite vérifiées avec ESC/Java. Plan de cette thèse Cette thèse porte sur l utilisation adéquate des méthodes formelles pour la vérification de programmes Java. Nous défendons l idée que les techniques de vérification ne sont pas seulement importantes pour elles-mêmes, mais surtout par leurs domaines d application. Nous pensons même que seule l utilisation commune de plusieurs techniques de vérification rend possible la vérification d applications significatives. Le chapitre 3 est un exemple clair de ce genre de travail : nous démontrons que l utilisation des techniques d analyse statique telles qu elles sont conçues par ESC/Java et de la preuve de théorèmes à la manière de l outil LOOP peut augmenter notre confiance en la correction d une application. Grosso modo, on fait d abord de l analyse statique pour se débarrasser des bogues les grossières, qui compliqueraient sinon la vérification formelle proprement dite, et puis on fait de la vérification formelle sur les parties du code qui ont besoin d être certifiées. Le chapitre 4 poursuit cet esprit en améliorant la vérification telle qu elle est conçue par ESC/Java. En bref, ESC/Java ne vérifie pas les spécifications élaborées avec le mot-clé modifies. Pour résoudre cela, nous avons conçu et implémenté une méthode pour faire cette vérification. Ceci nous a permis aussi de corriger et d améliorer les spécifications élaborées au chapitre 3. Le chapitre 5 démontre que le model checking, lors qu il est complété par des techniques d exécution symbolique, s avère plus important, en tant que méthode de preuve, que le model checking explicite (explicit state model checking) 4. L uti- 4 Cette phrase met en avant le fait que nous considérons le model checking une technique de réfutation plutôt que de preuve.

23 Plan de cette thèse 23 lisation commune de ces deux techniques nous a permis de prouver que certaines parties du code d un programme sont inutiles, puisqu elles ne modifient pas la validité des propriétés sous-jacentes. Le chapitre 6 va au delà de la vérification de programmes séquentiels et aborde le sujet de la vérification de programmes Java multi-tâches. Nous proposons l utilisation des espaces d événements Java (Java event spaces) comme modèle pour nos programmes. L un des aspects le plus intéressants de l utilisation d espaces d événements Java comme modèle est qu ils considèrent finement l évolution des objets en mémoire. En plus, un espace d événements peut être mis sous une forme permettant le model checking. Nous démontrons que l utilisation d une technique telle que l abstraction par tranches (slicing) rend possible l utilisation du model checking sur le modèle proposé. Dans la suite nous décrivons en détail chaque chapitre de cette thèse. Chapitre 3. Spécification et vérification formelle d une application carte à puce. Le chapitre 3 présente la spécification et la vérification formelle d une appliquette Java Card qui implémente un porte-monnaie électronique. Pour cette appliquette, nous avons spécifié en JML 27 classes et 432 Ko entre le code et la documentation, puis nous avons vérifié cette spécification avec ESC/Java. Le travail fait dans ce chapitre cherche à démontrer comment notre approche de spécification et de vérification dans le cadre de ESC/Java complète parfaitement celle utilisée par C. Breunesse, B. Jacobs et J. van den Berg in [11, 12]. Ceux-ci ont vérifié des algorithmes mathématiques très complexes dans le cadre de LOOP [65]. En utilisant ESC/Java, ou d autres outils qui font de l analyse statique, ces algorithmes n auraient pas pu être vérifiés. En revanche, la vérification complète de l appliquette Java Card, telle que nous l avons faite, n aurais pas pu atteindre sa fin avec LOOP. Cet outil est plutôt utilisé pour vérifier des programmes de petite taille. Nous ne soutenons pas que l approche à la spécification et à la vérification telle que nous la concevons est meilleure que celle des auteurs cités auparavant. Au contraire, nous arguons que ces deux approches à la vérification se complètent de façon très naturelle, et doivent donc être utilisées ensemble. En bref, nous considérons que pour vérifier une grosse spécification, on devrait faire de l analyse statique au style ESC/Java au préalable. Cela permettrait de détecter des bogues qui troublent l application, et permettrait d augmenter notre niveau de confiance en la spécification, qui doit décrire fidèlement l implantation. Ensuite, on devrait faire de la vérification formelle à la manière de LOOP. Ainsi, l effort consacré à la vérification formelle serait nettement réduit. Ce chapitre présente les spécifications en JML que nous avons élaborées. Nous démontrons que la spécification formelle d un programme permet de créer une documentation libre d ambiguïtés. Nous discutons aussi sur la possibilité d améliorer le code source, en supprimant les parties qui ne seront jamais atteintes par l exécution d un programme. La réduction de la taille des programmes est un problème vital pour les applications Java Card, puisque en Java

24 24 Résumé français Card la quantité de mémoire utilisée par un programme lors de son exécution ne doit pas dépasser une certaine limite. Nous avons démarré la spécification du porte-monnaie électronique par des propriétés qui étaient décrites dans la documentation informelle de l application. Puis, lors de la vérification, nous avons trouvé que plusieurs de ces propriétés n étaient pas vérifiées. À la différence de la documentation informelle que l on incorpore dans le code source d un programme, les spécifications en JML n ont pas d ambiguïté. Par conséquent les spécifications en JML fournissent une description formelle du comportement attendu de l application. À notre connaissance, la spécification que nous avons élaborée en ESC/- Java constitue la plus grande spécification existante à ce jour. Ce travail de spécification et de vérification que nous avons mené a agréablement surpris l équipe de Gemplus, à tel point que ses ingénieurs ont construit leur propre outil de vérification appelé Jack [14] 5. Á partir des spécifications JML, Jack génère des obligations de preuve, lesquelles sont prouvées ensuite en utilisant les plates-formes de vérification supportées par Jack. Finalement, nous avons élaboré une liste des points faibles de ESC/Java. Ces points faibles comportent des problèmes avec le langage de spécification aussi bien que des inconvénients avec le vérificateur Simplify de ESC/Java. La plupart de ces points faibles ont été pris en compte dans la construction de la nouvelle version de ESC/Java, appelée ESC/Java 2. Cette nouvelle version de ESC/Java a comme but de rendre compatible les langages de spécification de JML et de ESC/Java. Le développement de cette nouvelle version est conduit par J. Kiniry, qui travaille à l université de Nimègue dans le group SoS, et D. Cok, qui travaille à Kodak. Chapitre 4. Chase : un vérificateur statique de la clause assignable de JML. Une des faiblesses de ESC/Java est qu il ne vérifie pas les spécifications construites en utilisant le mot-clé modifies. Nous considérons qu il s agit d une lacune importante à laquelle nous allons essayer de remédier. En JML, une spécification telle que modifies L; exprime le fait que l ensemble de cellules mémoire telles qu elles sont décrites par L sont les seules cellules que la méthode peut modifier. Pour mieux comprendre l importance de la vérification des spécifications construites en utilisant le mot-clé modifies, nous devons d abord parler sur la vérification modulaire dans ESC/Java. En ESC/Java la vérification est faite de façon modulaire, chaque méthode à la fois. À cause de la liaison dynamique (Dynamic binding), quand on fait de l analyse statique, on ne peut pas établir à l avance laquelle des implémentations une méthode est censée utiliser à l exécution : si celle de le type de l objet dans la déclaration, ou celles des ses sous-classes. Nous avons donc décidé de suivre l approche proposée dans [64] qui utilise le type statique de l objet qui appel la méthode. En plus, pour réduire l incorrection (unsoundness), on doit démontrer que la méthode dans la sous-classe vérifie la spécification de la méthode dans la 5 Jack est développé actuellement au sein du groupe Everest [34] à l INRIA de Sophia Antipolis

25 Plan de cette thèse 25 sur-classe. Quand on raisonne de cette façon, la seule spécification fonctionnelle d une méthode (voir préconditions et postconditions) ne suffisent pas pour la vérifier. On a besoin de savoir aussi quelles variables la méthode est capable de modifier. Pour mieux comprendre cela, prenons le code suivant : public class C { int[] arr; //@ postcondition arr.length >= 4; public void m(){ arr = new int[5]; p(); //@ modifies \nothing; public void p(){ arr = new int[2]; Pour établir la postcondition de la méthode m, laquelle dit que le nombre d éléments du tableau arr ne sera jamais inférieur à 4, la méthode p (appelée depuis m) doit garantir qu elle ne modifie pas l état de la mémoire, c.à.d. elle modifies \nothing;. Si la spécification de p n est pas vérifiée, alors la vérification de m devient impossible. Pour corriger cela, nous avons défini un ensemble de règles syntaxiques qui vérifient que l implémentation d une méthode ne modifie pas de cellules mémoire autres que celles spécifiées par le mot-clé modifies. Puis, nous avons fourni une implémentation sous le nom de Chase. Pour donner un exemple de comment la vérification des spécifications construites utilisant le mot-clé modifies fonctionne, prenons le cas de la vérification de l assignation x = E ; contre la spécification modifies L;. Pour vérifier cette assignation, on doit vérifier que x est compris dans L, et puis récursivement vérifier E contre L. Cela peut être exprimé pour la règle Assg présentée en bas. Dans cette règle, ce qu il y à gauche du symbole mod corresponde á l expression à être vérifiée, et ce qu il y a à sa droite les seules cellules mémoire qui peuvent être modifiées. x L E mod L (Assg) x = E mod L Nous ne donnerons plus de détails sur ces règles, cela constitue le sujet auquel le chapitre 4 a été consacré. Nous voulons tout simplement remarquer ici que la vérification en question devient plus compliquée lorsque l on considère la syntaxe de Java et des expressions modifies en leurs totalité. Ainsi par exemple, dans L, il n est seulement possible de faire allusion à un tableau a à une certaine position i, a[i], ou faire allusion à tous les éléments du tableau, a[*], mais aussi aux champs d un objet o quelconque, \fields_of(o). Chapitre 5. Utilisation de l exécution symbolique comme un moyen pour réduire des émissions inutiles. Le chapitre 5 traite le problème de

Langages Orientés Objet Java

Langages Orientés Objet Java Langages Orientés Objet Java Exceptions Arnaud LANOIX Université Nancy 2 24 octobre 2006 Arnaud LANOIX (Université Nancy 2) Langages Orientés Objet Java 24 octobre 2006 1 / 32 Exemple public class Example

More information

Méthodes ensemblistes pour une localisation robuste de robots sous-marins

Méthodes ensemblistes pour une localisation robuste de robots sous-marins Méthodes ensemblistes pour une localisation robuste de robots sous-marins Jan Sliwka To cite this version: Jan Sliwka. Méthodes ensemblistes pour une localisation robuste de robots sous-marins. Automatique

More information

Laurent Hubert. Foundations and Implementation of a Tool Bench for Static Analysis of Java Bytecode Programs

Laurent Hubert. Foundations and Implementation of a Tool Bench for Static Analysis of Java Bytecode Programs N o d ordre : 4243 ANNÉE 2010 THÈSE / UNIVERSITÉ DE RENNES 1 sous le sceau de l Université Européenne de Bretagne pour le grade de DOCTEUR DE L UNIVERSITÉ DE RENNES 1 Mention : Informatique École doctorale

More information

FATMAS : A Methodology to Design Fault-tolerant Multi-agent Systems

FATMAS : A Methodology to Design Fault-tolerant Multi-agent Systems SEHL MELLOULI FATMAS : A Methodology to Design Fault-tolerant Multi-agent Systems Thèse présentée à la Faculté des études supérieures de l Université Laval dans le cadre du programme de doctorat en Informatique

More information

Introduction au BIM. ESEB 38170 Seyssinet-Pariset Economie de la construction email : contact@eseb.fr

Introduction au BIM. ESEB 38170 Seyssinet-Pariset Economie de la construction email : contact@eseb.fr Quel est l objectif? 1 La France n est pas le seul pays impliqué 2 Une démarche obligatoire 3 Une organisation plus efficace 4 Le contexte 5 Risque d erreur INTERVENANTS : - Architecte - Économiste - Contrôleur

More information

EPREUVE D EXPRESSION ORALE. SAVOIR et SAVOIR-FAIRE

EPREUVE D EXPRESSION ORALE. SAVOIR et SAVOIR-FAIRE EPREUVE D EXPRESSION ORALE SAVOIR et SAVOIR-FAIRE Pour présenter la notion -The notion I m going to deal with is The idea of progress / Myths and heroes Places and exchanges / Seats and forms of powers

More information

General Certificate of Education Advanced Level Examination June 2012

General Certificate of Education Advanced Level Examination June 2012 General Certificate of Education Advanced Level Examination June 2012 French Unit 4 Speaking Test Candidate s Material To be conducted by the teacher examiner between 7 March and 15 May 2012 (FRE4T) To

More information

Archived Content. Contenu archivé

Archived Content. Contenu archivé ARCHIVED - Archiving Content ARCHIVÉE - Contenu archivé Archived Content Contenu archivé Information identified as archived is provided for reference, research or recordkeeping purposes. It is not subject

More information

Requirements engineering process according to automotive standards in a model-driven framework

Requirements engineering process according to automotive standards in a model-driven framework Requirements engineering process according to automotive standards in a model-driven framework UNIVERSITY OF PARIS SUD XI Graduate School ÉCOLE DOCTORALE D INFORMATIQUE DE PARIS SUD To achieve the degree

More information

THÈSE. présentée. devant l Université de Rennes 1. pour obtenir. par

THÈSE. présentée. devant l Université de Rennes 1. pour obtenir. par N o d ordre: 3243 THÈSE présentée devant l Université de Rennes 1 pour obtenir le grade de : DOCTEUR DE L UNIVERSITÉ DE RENNES 1 Mention INFORMATIQUE par Martín VARELA RICO Équipe d accueil : ARMOR - IRISA

More information

Note concernant votre accord de souscription au service «Trusted Certificate Service» (TCS)

Note concernant votre accord de souscription au service «Trusted Certificate Service» (TCS) Note concernant votre accord de souscription au service «Trusted Certificate Service» (TCS) Veuillez vérifier les éléments suivants avant de nous soumettre votre accord : 1. Vous avez bien lu et paraphé

More information

Personnalisez votre intérieur avec les revêtements imprimés ALYOS design

Personnalisez votre intérieur avec les revêtements imprimés ALYOS design Plafond tendu à froid ALYOS technology ALYOS technology vous propose un ensemble de solutions techniques pour vos intérieurs. Spécialiste dans le domaine du plafond tendu, nous avons conçu et développé

More information

Consultation on a possible European Private Company Statute

Consultation on a possible European Private Company Statute COOPERATIVES EUROPE ASBL EUROPEAN REGION OF ICA EUCC LEGAL WORKING GROUP Consultation on a possible European Private Company Statute 1. Context In February 2007 the European Parliament adopted a resolution

More information

---------------------------------------------------------------------------------

--------------------------------------------------------------------------------- Hume Fogg Academic Magnet Summer Review for Students Entering AP French Language Student Name --------------------------------------------------------------------------------- Teacher: Jessica Sexton Email:

More information

POB-JAVA Documentation

POB-JAVA Documentation POB-JAVA Documentation 1 INTRODUCTION... 4 2 INSTALLING POB-JAVA... 5 Installation of the GNUARM compiler... 5 Installing the Java Development Kit... 7 Installing of POB-Java... 8 3 CONFIGURATION... 9

More information

High performance traffic monitoring for network security and management

High performance traffic monitoring for network security and management N o d ordre : 2014telb0316 Sous le sceau de l Université européenne de Bretagne Télécom Bretagne En accréditation conjointe avec l école Doctorale Sicma High performance traffic monitoring for network

More information

ACP-EU Cooperation Programme in Science and Technology (S&T II) / Programme de Coopération ACP-UE pour la Science et la Technologie

ACP-EU Cooperation Programme in Science and Technology (S&T II) / Programme de Coopération ACP-UE pour la Science et la Technologie ACP Science and Technologie Programme Programme Management Unit ACP-EU Cooperation Programme in Science and Technology (S&T II) / Programme de Coopération ACP-UE pour la Science et la Technologie EuropeAid/133437/D/ACT/ACPTPS

More information

HEALTH CARE DIRECTIVES ACT

HEALTH CARE DIRECTIVES ACT A11 HEALTH CARE DIRECTIVES ACT Advances in medical research and treatments have, in many cases, enabled health care professionals to extend lives. Most of these advancements are welcomed, but some people

More information

Remote Method Invocation

Remote Method Invocation 1 / 22 Remote Method Invocation Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer M2 Informatique 2010-2011 2 / 22 Plan Plan 1 Introduction 2 RMI en détails

More information

Sun Management Center Change Manager 1.0.1 Release Notes

Sun Management Center Change Manager 1.0.1 Release Notes Sun Management Center Change Manager 1.0.1 Release Notes Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. Part No: 817 0891 10 May 2003 Copyright 2003 Sun Microsystems, Inc. 4150

More information

Finance immobilière Essais sur la gestion de portefeuille et des risques

Finance immobilière Essais sur la gestion de portefeuille et des risques UNIVERSITÉ DE CERGY-PONTOISE E.D. ÉCONOMIE, MANAGEMENT, MATHÉMATIQUES CERGY LABORATOIRE DE RECHERCHE THEMA Thèse pour obtenir le grade de Docteur en Sciences de Gestion de l Université de Cergy-Pontoise

More information

AP FRENCH LANGUAGE 2008 SCORING GUIDELINES

AP FRENCH LANGUAGE 2008 SCORING GUIDELINES AP FRENCH LANGUAGE 2008 SCORING GUIDELINES Part A (Essay): Question 31 9 Demonstrates STRONG CONTROL Excellence Ease of expression marked by a good sense of idiomatic French. Clarity of organization. Accuracy

More information

Étude formelle des distributions de logiciel libre

Étude formelle des distributions de logiciel libre Université Paris Diderot Paris 7 École doctorale de Sciences Mathématiques de Paris Centre THÈSE pour obtenir le grade de DOCTEUR DE L UNIVERSITÉ PARIS DIDEROT Spécialité : Informatique présentée par Jacob

More information

TIMISKAMING FIRST NATION

TIMISKAMING FIRST NATION Post-Secondary Financial Assistance Forms TFN EDUCATION 2014-05-01 TIMISKAMING FIRST NATION 0 Education Dept. Application Check List Please enclose the following when applying: Form: Statement of Intent

More information

Flexible Quality of Service Management of Web Services Orchestrations

Flexible Quality of Service Management of Web Services Orchestrations Flexible Quality of Service Management of Web Services Orchestrations Ajay Kattepur To cite this version: Ajay Kattepur. Flexible Quality of Service Management of Web Services Orchestrations. Web. Université

More information

Providing solutions for more secure exchanges

Providing solutions for more secure exchanges Providing solutions for more secure exchanges Stéphanie Delaune November 18, 2014 Stéphanie Delaune (LSV) Providing solutions for more secure exchanges 1 / 44 Cryptographic protocols Cryptographic protocols

More information

Survey on Conference Services provided by the United Nations Office at Geneva

Survey on Conference Services provided by the United Nations Office at Geneva Survey on Conference Services provided by the United Nations Office at Geneva Trade and Development Board, fifty-eighth session Geneva, 12-23 September 2011 Contents Survey contents Evaluation criteria

More information

«Object-Oriented Multi-Methods in Cecil» Craig Chambers (Cours IFT6310, H08)

«Object-Oriented Multi-Methods in Cecil» Craig Chambers (Cours IFT6310, H08) «Object-Oriented Multi-Methods in Cecil» Craig Chambers (Cours IFT6310, H08) Mathieu Lemoine 2008/02/25 Craig Chambers : Professeur à l Université de Washington au département de Computer Science and Engineering,

More information

Marks Communication /10 Range and Accuracy of Language /10 Pronunciation and Intonation /5 Interaction and Fluency /5 TOTAL /30

Marks Communication /10 Range and Accuracy of Language /10 Pronunciation and Intonation /5 Interaction and Fluency /5 TOTAL /30 Controlled Speaking Assessment Preparation Once you have prepared your answers to the questions record your answers and listen back to them as you listen, complete the check sheet below : Time it to ensure

More information

IMPROVING EFFICIENCY AND PRODUCTIVITY IN THE CONSTRUCTION SECTOR THROUGH THE USE OF INFORMATION TECHNOLOGIES

IMPROVING EFFICIENCY AND PRODUCTIVITY IN THE CONSTRUCTION SECTOR THROUGH THE USE OF INFORMATION TECHNOLOGIES IMPROVING EFFICIENCY AND PRODUCTIVITY IN THE CONSTRUCTION SECTOR THROUGH THE USE OF INFORMATION TECHNOLOGIES SEPTEMBER 2011 CEFRIO is the centre that facilitates organizational research and innovation

More information

Parallel Discrepancy-based Search

Parallel Discrepancy-based Search Parallel Discrepancy-based Search T. Moisan, J. Gaudreault, C.-G. Quimper Université Laval, FORAC research consortium February 21 th 2014 T. Moisan, J. Gaudreault, C.-G. Quimper Parallel Discrepancy-based

More information

Introduction. GEAL Bibliothèque Java pour écrire des algorithmes évolutionnaires. Objectifs. Simplicité Evolution et coévolution Parallélisme

Introduction. GEAL Bibliothèque Java pour écrire des algorithmes évolutionnaires. Objectifs. Simplicité Evolution et coévolution Parallélisme GEAL 1.2 Generic Evolutionary Algorithm Library http://dpt-info.u-strasbg.fr/~blansche/fr/geal.html 1 /38 Introduction GEAL Bibliothèque Java pour écrire des algorithmes évolutionnaires Objectifs Généricité

More information

A model-based method to manage time properties in component based software systems

A model-based method to manage time properties in component based software systems A model-based method to manage time properties in component based software systems Viet Hoa Nguyen To cite this version: Viet Hoa Nguyen. A model-based method to manage time properties in component based

More information

Processus de Lévy en Finance: Modélisation de Dépendance

Processus de Lévy en Finance: Modélisation de Dépendance Thèse présentée pour obtenir le titre de DOCTEUR DE L ECOLE POLYTECHNIQUE specialité: Mathématiques Appliquées par Peter TANKOV Processus de Lévy en Finance: Problèmes Inverses et Modélisation de Dépendance

More information

FOR TEACHERS ONLY The University of the State of New York

FOR TEACHERS ONLY The University of the State of New York FOR TEACHERS ONLY The University of the State of New York REGENTS HIGH SCHOOL EXAMINATION F COMPREHENSIVE EXAMINATION IN FRENCH Friday, June 16, 2006 1:15 to 4:15 p.m., only SCORING KEY Updated information

More information

Importance Sampling of Realistic Light Sources

Importance Sampling of Realistic Light Sources Importance Sampling of Realistic Light Sources Heqi Lu To cite this version: Heqi Lu. Importance Sampling of Realistic Light Sources. Graphics [cs.gr]. Université de Bordeaux, 2014. English. .

More information

Qu est-ce que le Cloud? Quels sont ses points forts? Pourquoi l'adopter? Hugues De Pra Data Center Lead Cisco Belgium & Luxemburg

Qu est-ce que le Cloud? Quels sont ses points forts? Pourquoi l'adopter? Hugues De Pra Data Center Lead Cisco Belgium & Luxemburg Qu est-ce que le Cloud? Quels sont ses points forts? Pourquoi l'adopter? Hugues De Pra Data Center Lead Cisco Belgium & Luxemburg Agenda Le Business Case pour le Cloud Computing Qu est ce que le Cloud

More information

Licence Informatique Année 2005-2006. Exceptions

Licence Informatique Année 2005-2006. Exceptions Université Paris 7 Java Licence Informatique Année 2005-2006 TD n 8 - Correction Exceptions Exercice 1 La méthode parseint est spécifiée ainsi : public static int parseint(string s) throws NumberFormatException

More information

Vérification de bytecode et ses applications

Vérification de bytecode et ses applications Thèse de Doctorat Préparée pour obtenir le titre de Docteur en Sciences de l Université de Nice Sophia Antipolis Discipline : Informatique Préparée à l Institut National de Recherche en Informatique et

More information

Intégration de politiques de sécurité dans des systèmes ubiquitaires

Intégration de politiques de sécurité dans des systèmes ubiquitaires Département de formation doctorale en informatique École doctorale EDMI Bordeaux N o d ordre : 4735 Intégration de politiques de sécurité dans des systèmes ubiquitaires THÈSE soutenue le 17 Janvier 2013

More information

A Document Visualization Tool Customized to Explore DRDC Reports. Peter Kwantes

A Document Visualization Tool Customized to Explore DRDC Reports. Peter Kwantes A Document Visualization Tool Customized to Explore DRDC Reports Peter Kwantes Defence R&D Canada Technical Memorandum DRDC Toronto TM 2011-131 August 2011 A Document Visualization Tool Customized to

More information

Proposition d intervention

Proposition d intervention MERCREDI 8 NOVEMBRE Conférence retrofitting of social housing: financing and policies options Lieu des réunions: Hotel Holiday Inn,8 rue Monastiriou,54629 Thessaloniki 9.15-10.30 : Participation à la session

More information

BILL C-665 PROJET DE LOI C-665 C-665 C-665 HOUSE OF COMMONS OF CANADA CHAMBRE DES COMMUNES DU CANADA

BILL C-665 PROJET DE LOI C-665 C-665 C-665 HOUSE OF COMMONS OF CANADA CHAMBRE DES COMMUNES DU CANADA C-665 C-665 Second Session, Forty-first Parliament, Deuxième session, quarante et unième législature, HOUSE OF COMMONS OF CANADA CHAMBRE DES COMMUNES DU CANADA BILL C-665 PROJET DE LOI C-665 An Act to

More information

Office of the Auditor General / Bureau du vérificateur général FOLLOW-UP TO THE 2010 AUDIT OF COMPRESSED WORK WEEK AGREEMENTS 2012 SUIVI DE LA

Office of the Auditor General / Bureau du vérificateur général FOLLOW-UP TO THE 2010 AUDIT OF COMPRESSED WORK WEEK AGREEMENTS 2012 SUIVI DE LA Office of the Auditor General / Bureau du vérificateur général FOLLOW-UP TO THE 2010 AUDIT OF COMPRESSED WORK WEEK AGREEMENTS 2012 SUIVI DE LA VÉRIFICATION DES ENTENTES DE SEMAINE DE TRAVAIL COMPRIMÉE

More information

I will explain to you in English why everything from now on will be in French

I will explain to you in English why everything from now on will be in French I will explain to you in English why everything from now on will be in French Démarche et Outils REACHING OUT TO YOU I will explain to you in English why everything from now on will be in French All French

More information

UNIVERSITÉ DE MONTRÉAL A DELAY-CONSTRAINED MIDDLEWARE ARCHITECTURE FOR DISSEMINATING INFORMATION IN WIRELESS SENSOR NETWORKS JHON-FREDY LLANO-RUIZ

UNIVERSITÉ DE MONTRÉAL A DELAY-CONSTRAINED MIDDLEWARE ARCHITECTURE FOR DISSEMINATING INFORMATION IN WIRELESS SENSOR NETWORKS JHON-FREDY LLANO-RUIZ UNIVERSITÉ DE MONTRÉAL A DELAY-CONSTRAINED MIDDLEWARE ARCHITECTURE FOR DISSEMINATING INFORMATION IN WIRELESS SENSOR NETWORKS JHON-FREDY LLANO-RUIZ DÉPARTEMENT DE GÉNIE INFORMATIQUE ET GÉNIE LOGICIEL ÉCOLE

More information

Modeling and simulation of wireless sensor networks

Modeling and simulation of wireless sensor networks Modeling and simulation of wireless sensor networks Wan Du To cite this version: Wan Du. Modeling and simulation of wireless sensor networks. Other. Ecole Centrale de Lyon, 2011. English. .

More information

Thursday, February 7, 2013. DOM via PHP

Thursday, February 7, 2013. DOM via PHP DOM via PHP Plan PHP DOM PHP : Hypertext Preprocessor Langage de script pour création de pages Web dynamiques Un ficher PHP est un ficher HTML avec du code PHP

More information

In-Home Caregivers Teleconference with Canadian Bar Association September 17, 2015

In-Home Caregivers Teleconference with Canadian Bar Association September 17, 2015 In-Home Caregivers Teleconference with Canadian Bar Association September 17, 2015 QUESTIONS FOR ESDC Temporary Foreign Worker Program -- Mr. Steve WEST *Answers have been updated following the conference

More information

Office of the Auditor General / Bureau du vérificateur général FOLLOW-UP TO THE 2007 AUDIT OF THE ENVIRONMENTAL COMMITMENTS IN THE OTTAWA 20/20

Office of the Auditor General / Bureau du vérificateur général FOLLOW-UP TO THE 2007 AUDIT OF THE ENVIRONMENTAL COMMITMENTS IN THE OTTAWA 20/20 Office of the Auditor General / Bureau du vérificateur général FOLLOW-UP TO THE 2007 AUDIT OF THE ENVIRONMENTAL COMMITMENTS IN THE OTTAWA 20/20 GROWTH MANAGEMENT STRATEGY 2009 SUIVI DE LA VÉRIFICATION

More information

Archived Content. Contenu archivé

Archived Content. Contenu archivé ARCHIVED - Archiving Content ARCHIVÉE - Contenu archivé Archived Content Contenu archivé Information identified as archived is provided for reference, research or recordkeeping purposes. It is not subject

More information

PEDECIBA Informática Instituto de Computación Facultad de Ingeniería Universidad de la República Montevideo, Uruguay. Tesis de Doctorado

PEDECIBA Informática Instituto de Computación Facultad de Ingeniería Universidad de la República Montevideo, Uruguay. Tesis de Doctorado PEDECIBA Informática Instituto de Computación Facultad de Ingeniería Universidad de la República Montevideo, Uruguay Tesis de Doctorado en Informática Propiedades y métodos de cálculo de la confiabilidad

More information

Future Entreprise. Jean-Dominique Meunier NEM Executive Director www.nem-initiative.org. Nov. 23, 2009 FIA Stockholm

Future Entreprise. Jean-Dominique Meunier NEM Executive Director www.nem-initiative.org. Nov. 23, 2009 FIA Stockholm Future Entreprise Jean-Dominique Meunier NEM Executive Director www.nem-initiative.org Nov. 23, 2009 FIA Stockholm 1 Nov. 23, 2009 FIA Stockholm Source : @JDM 2 Nov. 23, 2009 FIA Stockholm Source : @JDM

More information

A Summary of the Canadian Firearm Act (FTA)

A Summary of the Canadian Firearm Act (FTA) PLEIAD CANADA INC. FINAL Risks and Benefits of Proposed Firearms Legislation Prepared for: RCMP/Canadian Firearms Program (CFP) Prepared by: Peter Hall Senior Consultant Final Table of Contents Page RISK

More information

CSS : petits compléments

CSS : petits compléments CSS : petits compléments Université Lille 1 Technologies du Web CSS : les sélecteurs 1 au programme... 1 ::before et ::after 2 compteurs 3 media queries 4 transformations et transitions Université Lille

More information

Guillaume SMITH le jeudi 4 décembre 2014

Guillaume SMITH le jeudi 4 décembre 2014 Institut Supérieur de l Aéronautique et de l Espace(ISAE) Guillaume SMITH le jeudi 4 décembre 2014 Concevoir des applications temps-réel respectant la vie privée en exploitant les liens entre codes à effacements

More information

Bicultural child in the Dordogne English classroom to be French or not to be? NORAH LEROY ESPE D AQUITAINE - UNIVERSITÉ DE BORDEAUX

Bicultural child in the Dordogne English classroom to be French or not to be? NORAH LEROY ESPE D AQUITAINE - UNIVERSITÉ DE BORDEAUX Bicultural child in the Dordogne English classroom to be French or not to be? NORAH LEROY ESPE D AQUITAINE - UNIVERSITÉ DE BORDEAUX The Context The Dordogne has experienced an escalating number of British

More information

Open call for tenders n SCIC C4 2014/01

Open call for tenders n SCIC C4 2014/01 EUROPEAN COMMISSION DIRECTORATE GENERAL FOR INTERPRETATION RESOURCES AND SUPPORT DIRECTORATE Open call for tenders n SCIC C4 2014/01 Accident and sickness insurance for Conference Interpreting Agents Questions

More information

Archived Content. Contenu archivé

Archived Content. Contenu archivé ARCHIVED - Archiving Content ARCHIVÉE - Contenu archivé Archived Content Contenu archivé Information identified as archived is provided for reference, research or recordkeeping purposes. It is not subject

More information

An In-Context and Collaborative Software Localisation Model: Demonstration

An In-Context and Collaborative Software Localisation Model: Demonstration An In-Context and Collaborative Software Localisation Model: Demonstration Amel FRAISSE Christian BOITET Valérie BELLYNCK LABORATOIRE LIG, Université Joseph Fourier, 41 rue des Mathématiques, 38041 Grenoble,

More information

Solaris 10 Documentation README

Solaris 10 Documentation README Solaris 10 Documentation README Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. Part No: 817 0550 10 January 2005 Copyright 2005 Sun Microsystems, Inc. 4150 Network Circle, Santa

More information

Archived Content. Contenu archivé

Archived Content. Contenu archivé ARCHIVED - Archiving Content ARCHIVÉE - Contenu archivé Archived Content Contenu archivé Information identified as archived is provided for reference, research or recordkeeping purposes. It is not subject

More information

Évariste Galois and Solvable Permutation Groups

Évariste Galois and Solvable Permutation Groups Évariste Galois and Solvable Permutation Groups David A. Cox Department of Mathematics Amherst College dac@math.amherst.edu Bilbao May 2012 Prologue Most mathematicians know about Galois: He introduced

More information

Machine de Soufflage defibre

Machine de Soufflage defibre Machine de Soufflage CABLE-JET Tube: 25 à 63 mm Câble Fibre Optique: 6 à 32 mm Description générale: La machine de soufflage parfois connu sous le nom de «câble jet», comprend une chambre d air pressurisé

More information

Study on Foreign Language Proficiency and Employability. Final Report

Study on Foreign Language Proficiency and Employability. Final Report 7 Study on Foreign Language Proficiency and Employability Final Report EUROPEAN COMMISSION Directorate-General for Employment, Social Affairs and Inclusion Directorate E Skills Unit E.2 Skills and qualifications

More information

Archived Content. Contenu archivé

Archived Content. Contenu archivé ARCHIVED - Archiving Content ARCHIVÉE - Contenu archivé Archived Content Contenu archivé Information identified as archived is provided for reference, research or recordkeeping purposes. It is not subject

More information

Technical Service Bulletin

Technical Service Bulletin Technical Service Bulletin FILE CONTROL CREATED DATE MODIFIED DATE FOLDER OpenDrive 02/05/2005 662-02-25008 Rev. : A Installation Licence SCO sur PC de remplacement English version follows. Lors du changement

More information

CentraleSupélec. THÈSE DE DOCTORAT (PhD THESIS)

CentraleSupélec. THÈSE DE DOCTORAT (PhD THESIS) CentraleSupélec École doctorale STITS «Sciences et Technologies de l Information des Télécommunications et des Systèmes» THÈSE DE DOCTORAT (PhD THESIS) Domaine : STIC Spécialité : Informatique Laboratoire

More information

The Need For Speed. leads to PostgreSQL. Dimitri Fontaine dimitri@2ndquadrant.fr. 28 Mars 2013

The Need For Speed. leads to PostgreSQL. Dimitri Fontaine dimitri@2ndquadrant.fr. 28 Mars 2013 The Need For Speed leads to PostgreSQL Dimitri Fontaine dimitri@2ndquadrant.fr 28 Mars 2013 Dimitri Fontaine dimitri@2ndquadrant.fr The Need For Speed 28 Mars 2013 1 / 23 Dimitri Fontaine 2ndQuadrant France

More information

Analysis and Data Mining of Moving Object Trajectories

Analysis and Data Mining of Moving Object Trajectories Analysis and Data Mining of Moving Object Trajectories Mohamed Khalil El Mahrsi To cite this version: Mohamed Khalil El Mahrsi. Analysis and Data Mining of Moving Object Trajectories. Machine Learning

More information

Introduction ToIP/Asterisk Quelques applications Trixbox/FOP Autres distributions Conclusion. Asterisk et la ToIP. Projet tuteuré

Introduction ToIP/Asterisk Quelques applications Trixbox/FOP Autres distributions Conclusion. Asterisk et la ToIP. Projet tuteuré Asterisk et la ToIP Projet tuteuré Luis Alonso Domínguez López, Romain Gegout, Quentin Hourlier, Benoit Henryon IUT Charlemagne, Licence ASRALL 2008-2009 31 mars 2009 Asterisk et la ToIP 31 mars 2009 1

More information

Software Architecture for Pervasive Systems

Software Architecture for Pervasive Systems Software Architecture for Pervasive Systems Rami YARED, Xavier DEFAGO JAIST Japan Advanced Institute of Science and Technology 1-1 Asahidai, Tatsunokuchi, Ishikawa, 923-1292 Japan Tel: (+81) 0761-51-1224

More information

June 2016 Language and cultural workshops In-between session workshops à la carte June 13-25 2 weeks All levels

June 2016 Language and cultural workshops In-between session workshops à la carte June 13-25 2 weeks All levels June 2016 Language and cultural workshops In-between session workshops à la carte June 13-25 2 weeks All levels We have designed especially for you a new set of language and cultural workshops to focus

More information

Office of the Auditor General / Bureau du vérificateur général FOLLOW-UP TO THE 2007 AUDIT OF THE DISPOSAL OF PAVEMENT LINE MARKER EQUIPMENT 2009

Office of the Auditor General / Bureau du vérificateur général FOLLOW-UP TO THE 2007 AUDIT OF THE DISPOSAL OF PAVEMENT LINE MARKER EQUIPMENT 2009 Office of the Auditor General / Bureau du vérificateur général FOLLOW-UP TO THE 2007 AUDIT OF THE DISPOSAL OF PAVEMENT LINE MARKER EQUIPMENT 2009 SUIVI DE LA VÉRIFICATION DE L ALIÉNATION D UNE TRACEUSE

More information

SunFDDI 6.0 on the Sun Enterprise 10000 Server

SunFDDI 6.0 on the Sun Enterprise 10000 Server SunFDDI 6.0 on the Sun Enterprise 10000 Server Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303-4900 USA 650 960-1300 Fax 650 969-9131 Part No.: 806-3610-11 November 1999, Revision A Send

More information

Archived Content. Contenu archivé

Archived Content. Contenu archivé ARCHIVED - Archiving Content ARCHIVÉE - Contenu archivé Archived Content Contenu archivé Information identified as archived is provided for reference, research or recordkeeping purposes. It is not subject

More information

at à 02 :00 PM on le 2016-01-25

at à 02 :00 PM on le 2016-01-25 RETURN BIDS TO : Shared Services Canada / Services partagés Canada C/O Andrew Nimmo (Contracting Authority) Andrew.nimmo@canada.ca 180 Kent St.,13th Floor, Ottawa, ON, K1G 4A8 REQUEST FOR PROPOSAL DEMANDE

More information

Appendix R Canadian Regulatory Review

Appendix R Canadian Regulatory Review Appendix R Canadian Regulatory Review Draft EIS Keystone XL Pipeline Project Canadian Environmental Assessment Act CANADA CONSOLIDATION CODIFICATION Canadian Environmental Assessment Act Loi canadienne

More information

Rio de Janeiro. Tout simplement, HISTORIQUE! RESULTATS SPORTIFS Christophe PINNA NICE ELITE SPORT 21, bd Carnot 06300 Nice Tél. : +33 (0)6 08 45 80 07 Fax : +33 (0)4 93 56 78 77 Email : c.pinna@wanadoo.fr

More information

AgroMarketDay. Research Application Summary pp: 371-375. Abstract

AgroMarketDay. Research Application Summary pp: 371-375. Abstract Fourth RUFORUM Biennial Regional Conference 21-25 July 2014, Maputo, Mozambique 371 Research Application Summary pp: 371-375 AgroMarketDay Katusiime, L. 1 & Omiat, I. 1 1 Kampala, Uganda Corresponding

More information

Calcul parallèle avec R

Calcul parallèle avec R Calcul parallèle avec R ANF R Vincent Miele CNRS 07/10/2015 Pour chaque exercice, il est nécessaire d ouvrir une fenètre de visualisation des processes (Terminal + top sous Linux et Mac OS X, Gestionnaire

More information

Parameterized Human Body Modeling

Parameterized Human Body Modeling UNIVERSITÉ DE GENÈVE Département d informatique FACULTÉ DES SCIENCES Professeur J. Rolim FACULTÉ DES SCIENCES ÉCONOMIEQUES ET SOCIALES Département de systèmes d information Professeur N. Magnenat-Thalmann

More information

AP FRENCH LANGUAGE AND CULTURE 2013 SCORING GUIDELINES

AP FRENCH LANGUAGE AND CULTURE 2013 SCORING GUIDELINES AP FRENCH LANGUAGE AND CULTURE 2013 SCORING GUIDELINES Interpersonal Writing: E-mail Reply 5: STRONG performance in Interpersonal Writing Maintains the exchange with a response that is clearly appropriate

More information

THÈSE / UNIVERSITÉ DE RENNES 1 sous le sceau de l Université Européenne de Bretagne. pour le grade de DOCTEUR DE L UNIVERSITÉ DE RENNES 1

THÈSE / UNIVERSITÉ DE RENNES 1 sous le sceau de l Université Européenne de Bretagne. pour le grade de DOCTEUR DE L UNIVERSITÉ DE RENNES 1 ANNÉE 2014 THÈSE / UNIVERSITÉ DE RENNES 1 sous le sceau de l Université Européenne de Bretagne pour le grade de DOCTEUR DE L UNIVERSITÉ DE RENNES 1 Mention : Informatique Ecole doctorale MATISSE présentée

More information

Applying this template to your existing presentation

Applying this template to your existing presentation Session TIV06 Intégration des outils ztivoli de supervision, automatisation et ordonnancement Marc AMADOU, Technical Sales Tivoli Mathieu DALBIN, Technical Sales Tivoli 1 La supervision et l automatisation

More information

"The Indicative Power of A Key Word System. A Quantitative Analysis of the Key Words in the Translation Studies Bibliography"

The Indicative Power of A Key Word System. A Quantitative Analysis of the Key Words in the Translation Studies Bibliography Article "The Indicative Power of A Key Word System. A Quantitative Analysis of the Key Words in the Translation Studies Bibliography" Luc Van Doorslaer Meta : journal des traducteurs / Meta: Translators'

More information

«Environnement Economique de l Entreprise»

«Environnement Economique de l Entreprise» MASTER Administration des Entreprises Apprentissage Stéphane Saussier Saussier@univ-paris1.fr «Environnement Economique de l Entreprise» Séance 5 - Incentives in Organization - SSA 2015-1 Incentive Theory

More information

Formulaire de Modification de Données de l Emploi/Job Data Change Form France

Formulaire de Modification de Données de l Emploi/Job Data Change Form France Formulaire de Modification de Données de l Emploi/Job Data Change Form France Instructions du Formulaire de Modification de données de l emploi / JOB DATA CHANGE FORM INSTRUCTIONS Ce formulaire est à l'usage

More information

Il est repris ci-dessous sans aucune complétude - quelques éléments de cet article, dont il est fait des citations (texte entre guillemets).

Il est repris ci-dessous sans aucune complétude - quelques éléments de cet article, dont il est fait des citations (texte entre guillemets). Modélisation déclarative et sémantique, ontologies, assemblage et intégration de modèles, génération de code Declarative and semantic modelling, ontologies, model linking and integration, code generation

More information

Classification automatique d images par arbres de décision

Classification automatique d images par arbres de décision Classification automatique d images par arbres de décision Raphaël Marée Thèse de Doctorat en Informatique Institut Montefiore, Université de Liège 8 février 2005 Raphaël Marée Classification d images

More information

2013 Languages: French GA 3: Examination

2013 Languages: French GA 3: Examination 2013 Languages: French GA 3: Written component GENERAL COMMENTS Most students responded well to the 2013 French examination. Students made an effort to incorporate complex grammatical structures such as

More information

Finding a research subject in educational technology

Finding a research subject in educational technology Finding a research subject in educational technology Finding a research subject in educational technology thesis-subject (version 1.0, 1/4/05 ) Code: thesis-subject Daniel K. Schneider, TECFA, University

More information

Fondation Rennes 1. Atelier de l innovation. Fondation Rennes 1. Fondation Rennes 1 MANAGEMENT AGILE. Fondation Rennes 1 ET INNOVATION

Fondation Rennes 1. Atelier de l innovation. Fondation Rennes 1. Fondation Rennes 1 MANAGEMENT AGILE. Fondation Rennes 1 ET INNOVATION Atelier de l innovation MANAGEMENT AGILE ET INNOVATION Chaire Economie de l innovation - Mourad Zeroukhi 2012-2014 Centre de Recherche en иconomie et Management UniversitИ de Rennes 1 Chaire Economie de

More information

THE CANADIAN PATENT OFFICE RECORD LA GAZETTE DU BUREAU DES BREVETS

THE CANADIAN PATENT OFFICE RECORD LA GAZETTE DU BUREAU DES BREVETS Vol. 140 No. 49 December 4, 2012 Vol. 140 No 49 le 4 decembre 2012 THE CANADIAN PATENT OFFICE RECORD LA GAZETTE DU BUREAU DES BREVETS Sylvain Laporte Commissioner of Patents The Canadian Patent Office

More information

COLLABORATIVE LCA. Rachel Arnould and Thomas Albisser. Hop-Cube, France

COLLABORATIVE LCA. Rachel Arnould and Thomas Albisser. Hop-Cube, France COLLABORATIVE LCA Rachel Arnould and Thomas Albisser Hop-Cube, France Abstract Ecolabels, standards, environmental labeling: product category rules supporting the desire for transparency on products environmental

More information

Doctorat ParisTech T H E S E. TELECOM ParisTech. Algorithmes de classification répartis. sur le cloud

Doctorat ParisTech T H E S E. TELECOM ParisTech. Algorithmes de classification répartis. sur le cloud 2012-ENST-055 EDITE - ED 130 Doctorat ParisTech T H E S E pour obtenir le grade de docteur délivré par TELECOM ParisTech Spécialité «Informatique» présentée et soutenue publiquement par Matthieu DURUT

More information

The Register of the Domain of the State A Revolution in the Registration of Land Rights

The Register of the Domain of the State A Revolution in the Registration of Land Rights The Register of the Domain of the State A Revolution in the Registration of Land Rights Daniel ROBERGE, Canada Key words: government, rights in public land, Internet, Register, Registration system, Cadastre

More information

THE CITY OF TORONTO S JOB DEMANDS ANALYSIS AND JOB MATCH SYSTEM

THE CITY OF TORONTO S JOB DEMANDS ANALYSIS AND JOB MATCH SYSTEM THE CITY OF TORONTO S JOB DEMANDS ANALYSIS AND JOB MATCH SYSTEM RAYBOULD KAREN, MCILWAIN LINDA, HARDY CHRISTINE, BYERS JANE City of Toronto, Occupational Health Safety & Workers Compensation, 55 John Street,

More information

Time Management. Meaning of Work

Time Management. Meaning of Work Time Management & Meaning of Work Time Management & Meaning of Work b y Pierre Moniz-Barreto 28th April 2015 P i e r r e M o n i z - B a r r e t o / A b b a y e d e B a s s a c ( C o g n a c ) WHY such

More information