0"); > 0") this.table = new int[t]; assert("this.size() == t") == t") } public int size(){…}">

La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

1 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

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

3 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(){…}

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

5 ESCPI 5 Bibliographie Jass : iContract : DBCProxy : Obligate : https://obligate.dev.java.net/https://obligate.dev.java.net/ Une présentation en Master/Jussieu Annotations et génération de code

6 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


Télécharger ppt "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."

Présentations similaires


Annonces Google