Feuille de TD 1 de Spécifications Formelles M1 2014-2015



Documents pareils
Université de Sherbrooke, Département d informatique

OCL - Object Constraint Language

UML et les Bases de Données

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

LES DECIMALES DE π BERNARD EGGER

I. Cas de l équiprobabilité

Utilisation du BDE pour la maintenance des fichiers DBF de l'application TopoCad:

NOTICE SIMPLIFIEE ER-A280F. I Initialisation avec Remise à Zéro de la caisse : ENTER PASSWORD ER-A280V. Ver1.02

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Génie Logiciel avec Ada. 4 février 2013

TD1 Signaux, énergie et puissance, signaux aléatoires

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

Simulation de Réseaux Ferroviaires

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Génération de code à partir d une spécification B : Application aux bases de données

Model checking temporisé

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Problèmes de Mathématiques Filtres et ultrafiltres

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

M1 : Ingénierie du Logiciel

TP 1. Prise en main du langage Python

Exercices sur les interfaces

Géométrie dans l espace Produit scalaire et équations

Programmation C++ (débutant)/instructions for, while et do...while

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Feuille TD n 1 Exercices d algorithmique éléments de correction

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Guide d installation logicielle

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Application 1- VBA : Test de comportements d'investissements

Chapitre 2. Eléments pour comprendre un énoncé

Bases de données documentaires et distribuées Cours NFE04

Correction du baccalauréat S Liban juin 2007

MIS 102 Initiation à l Informatique

Diplôme de Comptabilité et de Gestion. D é c r e t N d u 2 2 d é c e m b r e A r r ê t é d u 8 m a r s

Contrôleur de communications réseau. Guide de configuration rapide DN

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Cours 1 : introduction

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Suites numériques 3. 1 Convergence et limite d une suite

Le dossier de remboursement

Perl Orienté Objet BioPerl There is more than one way to do it

Écriture de journal. (Virement de dépense)

Ed 03/95 PAQ 1530 NON URGENTE (INFO PRODUIT) TEMPORAIRE DEFINITIVE

Isadora. Photo jpeg qualité 50% %, 320X240. Prérequis

Algorithmique des Systèmes Répartis Protocoles de Communications

Comment obtenir un identifiant PIC? Mode d emploi

Programmation Par Contraintes

Object Constraint Language (OCL)

Procédure d utilisation de la fonction TELETRANSMISSION

Pour l épreuve d algèbre, les calculatrices sont interdites.

Release Notes pour les utilisateurs

Ministère des Affaires étrangères et européennes. Direction de la politique culturelle et du français. Regards VII

Sommaire. Introduction Gestion des liquidités Planification financières. Rencontre de l incubateur The Ark

Nom : Groupe : Date : 1. Quels sont les deux types de dessins les plus utilisés en technologie?

LES MOTEURS DE RECHERCHE SUR INTERNET

Cours de mathématiques

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

OLYMPIADES ACADEMIQUES DE MATHEMATIQUES. 15 mars 2006 CLASSE DE PREMIERE ES, GMF

Guichet automatique de banque

Logique : ENSIIE 1A - contrôle final

Factorisation d entiers (première partie)

Activités numériques [13 Points]

UNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU

DOCM Solutions officielles = n 2 10.

Genie Logiciel Avancé Projet :Gestion d une chaîne hotelier low cost

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

La création de l'état de frais Déplacements temporaires

UML. Diagrammes de classes (suite) Delphine Longuet.

GUIDE D'UTILISATION DU LOGICIEL DU TRIDENT GRAPHIQUE : TRG_REPORT

Objets Combinatoires élementaires

ils entretiennent entre eux des flux, ils partagent des perceptions sur l environnement

PETIT GUIDE PEDAGOGIQUE DE L ETUDIANT EN DROIT A DISTANCE

BIRT (Business Intelligence and Reporting Tools)

MATH ELEMENTS DU CALCUL DES PROBABILITES

TP JAVASCRIPT OMI4 TP5 SRC

Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN

Plateforme de capture et d analyse de sites Web AspirWeb

Intégration et probabilités TD1 Espaces mesurés Corrigé

PARIS ROISSY CHARLES DE GAULLE

Le calcul formel dans l enseignement des mathématiques

Exercices de dénombrement

Complétez, signez la Convention ci-après et paraphez les conditions générales,

Numbers en EPS UN TUTORIEL POUR LA! NOUVELLE VERSION DE NUMBERS EST! DISPONIBLE SUR TICEPS.FREE.FR. ticeps.free.fr

Surveillance et maintenance prédictive : évaluation de la latence de fautes. Zineb SIMEU-ABAZI Univ. Joseph Fourier, LAG)

Programmation par les Objets en Java

Équations non linéaires

3 Approximation de solutions d équations

Développement d un interpréteur OCL pour une machine virtuelle UML.

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Cours 1 : La compilation

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

Intégration et probabilités TD1 Espaces mesurés

Responsive Web Design. Responsive Design avec HTML 5.0 et CSS3

Guide d installation de MySQL

modèles génériques applicables à la synthèse de contrôleurs discrets pour l Internet des Objets

Transcription:

Feuille de TD 1 de Spécifications Formelles M1 2014-2015 Les fichiers en format pdf des projections du cours sont disponibles, au fur et à mésure, sur la page : http://www.ibisc.univ-evry.fr/ serena 1 Introduction aux Abstract Machines Reprendre l opération serve next de l ébauche de spécification de la machine Tickets de la slide 12. On veut modifier cette opération en serve two, l idée étant que, sur l écran, ce sont les 2 prochaines personnes servies qui apparaîssent. Ecrire alors la spécification complète de cette opération, precondition et body inclus. Vérifier (à la main) que l invariante de Tickets est conservée (à condition que l initialisation soit reasonable, bien sûr). Exercice 2 Cette fois-ci, on veut modifier l ébauche de spécification de la machine Tickets de la slide 14. Supposons que l invariante contient une condition (un conjoint) de plus : next serve+20, qui indiquera que ne doivent pas exister plus que 20 tickets pas encore utilisés. Pourquoi l opération take ticket de la slide 14 n est pas cohérente avec cette nouvelle invariante? Comment pourrait on modifier la precondition de take-ticket pour rétablir la cohérence avec cette nouvelle invariante? Exercice 3 Est-ce que l operation tt replace ticket = THEN next := next 1 ; est cohérent avec l invariante de la machine T icket? 1

Exercice 4 Réprendre la spécification de Tickets de p. 14 et ajouter une operation reset, qui renvoi l état initial. Exercice 5 Modifier encore la spécification de Tickets, de façon telle que on peut distribuer seulement des tickets numerés jusqu à 500. NB : Il faudra modifier l invariante de la machine, et aussi l opération take tickets. Exercice 6 Ajoutez une autre variable record à la machine. Cette variable compte le nombre des personnes qui ont pris un ticket depuis la dernière opération serve next. Elle sera incrémentée lorsqu on invoque take ticket, et resettée à 0 lorsqu on invoque serve next. Ajoutez aussi une opération de requete, qui montre la valeur de record à chaque moment. Exercice 7 Est-ce que l opération undo serve = THEN serve := serve 1 ; est cohérent avec l invariante de la machine T icket? Exercice 8 Un parking a 640 places. Décrivez une abstract machine qui spécifie un système pour controler les voitures qui entrent dans le parking. Vous devez tenir le compte de nombre des voitures dans le parking à chaque moment, et fournir trois opérations: enter, qui régistre l entrée d une voiture; ça se passe seulement si le parking n est pas plein. leave, qui régistre la sortie d une voiture du parking. nn query, qui montre le nombre des voitures dans le parking à chaque fois. 2

2 Rappels de logique, et substitutions 1. Soit la formule x y(x = 2 y), interprété de la façon naturelle sur N. Quelle est sa valeur? 2. Même formule qu avant, mais sans le quantificateurs existentiel : y(y = 2 x) et toujours la même inteprétation. Cette fois ci, x est libre, donc l évaluation de la formule donne lieu à un ensemble. Lequel? 3. Avec la formule m x x n, que l on interprété toujours sur N de la façon naturelle, on a 3 variables libres, ainsi c est un ensemble de triplets que l on est en train de définir. Lequel? 4. Est il toujours vrai que, peut importe l intérprétation, la formule y xr(x, y) x yr(x, y) est toujours vraie? Justifiez la réponse. 5. Dire quel est le résultat de la substitution suivante : n(n N (serve < 4 + n 2 n < next))[n/next] 3 Espaces d états, et preconditions Soit C un ensemble qui contient une seule variable, office dont le type est déclaré par la formule ensembliste : office {Mike, Nell, Olivia}. 1. Ecrire l espace d états E correspondant à C. 2. Soit S l instruction office := office Olivia. Comme vu en cours pour l exemple des slide 27-28, indiquer graphiquement comme chaque état de E change une fois effectuée S. 3. En utilisant le diagramme que vous venez d écrire, calculer ce sous-ensemble des états de E qui assurent que la condition P = card(office) = 2 vaut. En autre mots, calculez (à la main) exactement le états de E où est vraie la weakest precondition [office := office {Olivia}] (card(office) = 2 } {{ } } {{ } S P 3

4 Examples des solutions 4.1 Introduction aux Abstract Machines Une solution possible est de produire les deux numéros qu on est en train de servir. Exercice 2 ss1, ss2 serve two = PRE serve next + 2 THEN ss1, ss2, serve := serve + 1, serve + 2, serve + 2 ; La precondition de take ticket actuelle est True (très faible!). Or si on appele cette opération dans un état où next = serve + 20, on violera la nouvelle invariante. Pour empêcher cette incohérence, il faudrait avoir next < serve + 20 dans la precondition de take ticket. Exercice 3 L opération replace ticket n est pas cohérente avec l invariante de la machine T icket, car si elle est invoquée lorsque serve = next, alors on obtient un état dans lequel serve > next, qui falsifie l invariante. Exercice 4 L opération reset n a aucun input ni output; la précondition est true est le résultat est de initialiser les variables serve et next à 0. Exercice 5 Une solution possible est MACHINE T icket reset = THEN serve, next := 0, 0 ; VARIABLES serve, next INTIALISATION serve, next := 0, 0 INVARIANT serve N next N serve next serve 500 4

OPERATIONS ss serve next = PRE serve < next THEN ss, serve := serve + 1, serve + 1 ; tt take ticket = PRE next < 500 THEN tt, next := next, next + 1 Exercice 6 Une solution possible est MACHINE T icket VARIABLES serve, next, record INTIALISATION serve, next, record := 0, 0, 0 INVARIANT serve N next N serve next OPERATIONS ss serve next = PRE serve < next THEN ss, serve := serve + 1, serve + 1 record := 0 ; tt take ticket = PRE next < 500 THEN tt, next := next, next + 1 record := record + 1 nn query = THEN nn := record Exercice 7 No, pourquoi? 5

Exercice 8 Une solution possible est MACHINE P arking VARIABLES n voiture INTIALISATION n voiture := 0 INVARIANT n voiture N n voiture 640 OPERATIONS enter = PRE n voiture < 640 THEN n voiture := n voiture + 1 ; leave = PRE n voiture > 0 THEN n voiture := n voiture 1 nn query = THEN nn := n voiture 4.2 Rappels de logique, et substitutions 1. La formule x yx = 2 y est fausse. Considèrez le cas pour x = 5. 2. L ensemble des nombres pairs. 3. L ensemble des triplettes (a, b, c) tels que a b c. 4. S il existe un y tel que pour tous les x, r(x, y), alors pour tous les x, la même y est tel que r(x, y). 5. le résultat est m(m N (serve < 4 + m 2 m < n)) Notez qu il faut remplacer les occurrences lié de n avec m. 6

4.3 Espaces d états, et preconditions {} {mike} {nell} {olivia} {mike, nell} {mike, olivia} {nell, olivia} {mike, nell, olivia} {} {mike} {nell} {olivia} {mike, nell} {mike, olivia} {nell, olivia} {mike, nell, olivia} {} {mike} {nell} {olivia} {mike, nell} {mike, olivia} {nell, olivia} {mike, nell, olivia} 7

{} {mike} {nell} {olivia} {mike, nell} {mike, olivia} {nell, olivia} {mike, nell, olivia} 8