ESCPI 1 Programmation par contrats Une méthode appelée Appel de la méthode Si le contrat est respecté : Pré-assertions Lappelant En retour le contrat est.

Slides:



Advertisements
Présentations similaires
Un environnement de développement éducatif
Advertisements

Ispirer Systems Présentation de la Société Copyright (c) Ispirer Systems Ltd. Tous Droits Réservés.
Cours n° 6 Standard Template Library I.
« Les Mercredis du développement » Introduction Office « 12 » Présenté par Bernard Fedotoff Microsoft Regional Director Agilcom.
1 Programmation dapplications BD WEB : un tutoriel Bruno Defude GET-INT Evry
CASTEL Dennis SARZEAUD Floriane TAKAHASHI Atsushi.
2002 Exploratoire ASTRÉE : Analyse Statique de logiciels Temps-RÉel Embarqués 1)Le problème considéré est de démontrer statiquement (à la compilation)
Première expérience d’utilisation des Web Services dans SmartTools Didier Parigot Projet OASIS INRIA Sophia www-sop.inria.fr/oasis/SmartTools Journée.
A propos de java Sun, fin 1995 C++ nettoyé semi-interprété
Introspection et Réflexion Manipulation dynamique de code Java.
Au programme du jour …. Ce que vous navez pas encore vu Constantes et variables de classe Main et Tests Utilisation de lAPI Existence des packages Existence.
SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
Android View, onClick, Activity, Modèle Vue Contrôleur
Redimensionner mes photos pour Sitra. Le Contexte Qui suis-je ? Un membre contributeur Sitra (OT, SI, CDT…) Quel est mon problème/besoin ? Ajouter des.
Des outils pédagogiques
Exposé de Système - Informatique et Réseau
TRANSFER Alger – Serveur Web Nicolas Larrousse Septembre Petit historique du Worl Wide Web Notion dHypertexte Extension à internet par Tim Berners.
Traduction française des formats UNIMARC
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
Application Android . pour étudiants de l’Esiee
Projet J2EE Maverick XMLBeans Garcel Jean-Baptiste – Le Loc Martin – Muller Thibaut.
Programmation par Objets et Java
Vous devez réaliser trois diaporamas.
Vous devez réaliser trois diaporamas.
Tests Programmation par contrats
2006/2007Denis Cabasson – Programmation Web Cours de programmation web ENSAE
BlueJ_XI 1 Java, les objets : tout de suite ! Gestion des erreurs : les exceptions Notes de cours associées au chapitre 11 tutorial BlueJ
Les Redirections et renvois non validés
XML-Family Web Services Description Language W.S.D.L.
pour les applications Web :
Outil daide à la planification de visites touristiques Étudiants : Fedaouche Nabil Gautier Gilles Sabas Romaric Simon Mathieu Tuteurs : Feillet Dominique.
Configuration Android
Comment faire pour qu’un document soit lisible par Tout Le Monde ?
Premier cours (23 septembre). Cours programmation- orientée objet en Java Licence dinformatique Hugues Fauconnier
Construire un site avec MapGuide Open Source
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Hibernate Search Réunion dunité – 23/10/2008 Erik Kimmel.
ProDoc – Dr. Anna Riepe ProDoc - Mobilité et Carrières des docteurs Dr. Anna Riepe Chef de Projet ProDoc.
Installation des programmes
Architecture dun site de vente au détail1 Modèle d'un site simple de vente Lexemple du livre Ruby on Rails Partie II Java Adventure Builder Demo Réalisé.
RPC / MOM : Comparaison.
PhP-MySQL Pagora 2012/2013 CTD 1 - Presentation de moi ^^
Style et conventions de programmation v1.2. Département de génie électrique 2 LOG120 : Style et conventions de programmation Automne 2003 Références Inspiré.
Java, les objets : tout de suite ! Rassembler, grouper les objets
Proxy et plus Cnam Paris jean-michel Douin, douin au cnam point fr
Savoir-faire "Saisie de caractères API Savoir-faire "Saisie de caractères API Univ. Paris 3, Ecole doctorale 268 Univ. Paris 3, Ecole doctorale 268 Alexis.
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
Initiation au web dynamique
Découverte de Jalbum Fenêtre principale Clicker ici pour ajouter des images à l’album Jalbum est un générateur.
l'information sur Internet
Ahmed Jebali – INSTA Ahmed Jebali INSTA mai 2007 Cours Chap 0 : Framework, cms, lib.. PHP.
Guillaume TORRENTE Marc BOUISSOU Recherche & Développement
La veille technologique au service de l’innovation CCI 28, le 14 avril 2009 Estelle SAPIN Chargée de mission Agence Régionale d’Informations Stratégiques.
Greta des monts du cantal
09/11/2006 CMS Content Management System Système de Gestion de Contenu.
Les Robots.
GERMANY CLAIRE LE 29 AVRIL 2012 Lois et exigences d’une utilisation des TICE.
François PESTY, Expert conseil, Pilotage « médico-économique » des produits de santé 1 Les dépenses de médicaments à l’hôpital, ont accéléré à partir de.
« Le plaisir du chercheur : retrousser les jupes de la nature » Jean Rostand Proposer une « Interface Homme Machine » en utilisant une technologie Client.
Introduction à la programmation objet en C++
3. Vie politique en France.
Moteurs de recherche ontologiques
TP Développement d’applications web.  Etapes de création  Quel type de pages créer?  Editeurs de sites web  Systèmes de gestion de contenu.
Le Système d’Education Béninois
Code Contracts Gilles TOURREAU - MVP C# Architecte .NET / Formateur
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Initiation au JavaScript
11 septembre 2008 Aspects juridiques du PCRD 7 Nathalie Poupaert UCL/ADRE.
 Environnement de développement intégré (IDE) open source qui comporte un plugin PDT qui permet de développer en Php  Accès à plus de plugins.
Retour sur les interfaces Les méthodes définies dans une interface sont des méthodes qui doivent absolument être implémentées par une ou des sous-classes.
Transcription de la présentation:

ESCPI 1 Programmation par contrats Une méthode appelée Appel de la méthode Si le contrat est respecté : Pré-assertions Lappelant En retour le contrat est garanti : Post-assertions

ESCPI 2 Exemple : une > == t") public Table(int t){ : Annotations en Java

ESCPI 3 Objectifs du projet Convertir ces annotations en une vérification des contrats public Table(int t){ assert ("t > 0"); > 0") this.table = new int[t]; assert("this.size() == t") == t") } public int size(){…}

ESCPI 4 Comment … Évaluées statiquement Avec un outil standard apt (annotation processing tool) un source instrumenté est généré Ou à lexécution En utilisant lintrospection un mandataire intercepte les appels de méthodes et vérifient les contrats Les deux solutions devront être maquettées, la seconde a notre préférence pour la version finale du projet …

ESCPI 5 Bibliographie Jass : iContract : DBCProxy : Obligate : Une présentation en Master/Jussieu Annotations et génération de code

ESCPI 6 Travail à réaliser Programmation par contrats ? Pour une classe Contrats entre une classe et ses sous-classes Utiliser quelques outils existants : modern-jass, DBCProxy, … En déduire les annotations et leur syntaxe Deux prototypes Génération de source Java (apt) Génération à la volée (introspection) Critiques puis choix Une extension/Plug-in pour BlueJ En vue dun TP en IN413 Documentation et exemples en ligne