Title: Danocops : Collaboration de Solveurs
1Danocops Collaboration de Solveurs
- Réunion du 11 juillet 2005
2Planning à partir de T11/10/2004
3SP1 Etude UML/OCL
- 1.1 Identification de non-conformités aux
spécifications - 1.2 Extraction des objectifs de non-conformités
- 1.3 Document Principes de conversion en
contraintes des objectifs - 1.4 Document couche contrainte pour traiter
OCL - 1.5 Extension des mécanismes de résolution
- 1.6 Prototypage d un outil de détection de
non-conformités - 1.7 Evaluation
4SP1 Etude UML
1.1
1.2
1.3
1.4
1.5
5SP3 Etude B
6Fournitures
- La réunion à T1 6 Avril 2005
- Document Plan de management consultable
- Document Projet de Protocole daccord entre les
partenaires consultable - Document Etude UML Définition des objectifs de
non-conformités consultable - Document Etude UML Principes dextraction des
non-conformités à partir doutils de modélisation
UML/OCL consultable - Document Etude B Définition des objectifs de
non-conformités consultable - Document Compte-Rendu avancement T06
livrable - La réunion à T1 12 Octobre 2005
- Document Etude UML Principes de conversion en
contraintes des objectifs de non-conformités
consultable - Document Etude UML Spécification de la couche
contrainte représentant les objectifs de
non-conformités consultable - Logiciel Prototype du module ResolCont(UML-OCL,C
) démontrable privé - Document Etude B Principes dextraction des
non-conformités à partir doutils de modélisation
B consultable - Document Etude Lustre Architecture de
lenvironnement Lutess intégrant les
contraintes consultable - Document Compte-Rendu avancement T012
livrable
7SP1 Etude UML/OCL
- 1.1 définition des non-conformités ?
fourniture - Design By Contract (Pré-conditions,
Post-conditions,Invariants) - Types de non-conformités (client, fournisseur,
intégrité) - Héritage, Terminaison
- 1.2 Extraction ? fourniture
- Utilisation langage dassertion intermédiaire
- Outils danalyse
- Formats de données cibles (TS, ASA)
- 1.3 Conversion en contraintes
- Revue architecture clp(s)
- 1.4 Couche contrainte
- Revue couche contrainte pour programme
(assertion, extension langage, ) - Introduction des opérateurs logico-ensemblistes
- 1.5 Mécanismes de résolution
- Étude de cas
8SP3 Etude B
- 3.1 Identification de non-conformités entre
spécifications et programme - 3.2 Extraction des objectifs de non-conformités
- 3.3 Extension des mécanismes de résolution
- 3.4 Prototypage d un outil de détection de
non-conformités - 3.5 Evaluation
9SP3 Etude B
- 3.1 Identification de non-conformités aux
spécifications ?fourniture - 3.2 Extraction à contrainte des objectifs de
non-conformités - Etude de la formalisation des points de
connexions - Etude de la collaboration des solveurs
- 3.3 Couche contrainte
- Refonte architecture clp(S)
10Objectifs de Non-conformités Héritage
- C1 sous-classe de C0
- C2 sous-classe de C1
- C0 invariant I0
- m opération
- o precond Pr0
- o postcond Po0
- C1 Invariant I1
- m
- o precond Pr1
- o postcond Po1
- C2 Invariant I2
- m
- o precond Pr2
- o postcond Po2.
-
- Les propriétés résultantes sont
- Invariant(C1) I1 /\ I0
- Invariant(C2) I2 /\ I1 /\ I0
- Precondition(C1m) Pr0 \/ Pr1
- Precondition(C2m) Pr0 vPr1 vPr2
- Postcondition(C1m)
- (Pr0 gt Po0) /\ (Pr1gtPo1)
- Postcondition(C2m)
- (Pr0 gt Po0)
- /\(Pr1gtPo1)
- /\(Pr2 gtPo2)
11Types de non-conformités
- Fournisseur
- Vérifier quune classe respecte toujours son
contrat de fournisseur, cest à dire que dans des
conditions licites dutilisation, ses opérations
fournissent le service attendu - Client
- vérifier que chaque classe utilise les autres en
respectant ses obligations de client cest à dire
leurs conditions dutilisations - Intégrité
- vérifier que les objets des classes conservent
leur intégrité, cest à dire que sur tout point
observable (à lentrée ou à la sortie de
lexécution de chaque opération), ils respectent
leurs invariants
12Non-conformité fournisseur
- Soit lopération m de la classe C,
- dont la postcondition agrégée par héritage est
- ?i 1..n (Precondi gtPostCondi)
- soit ?p (Invarp) les invariants hérités par cette
classe. - La non-conformité fournisseur sexprimera par
- (i, O C, Arg),
- (?p(Invar)(O) et Precondi) O.m(Arg)
not(PostCondi)
13Terminaison exceptionnelle
- Precondition gt Terminaison_Exceptionnelle(E) gt
ExceptionPostCondition - Où Terminaison_Exceptionnelle(E) exprime que
lopération renvoie lexception E - On peut envisager trois cas
- Si ExceptionPostcondition true cela signifie
que si la précondition est vérifiée, lopération
est autorisée à produire lexception E - Si ExceptionPostcondition false cela signifie
que si la précondition est vérifiée, lopération
ne doit jamais produire lexception E - Sinon cela signifie que si la précondition est
vraie, lopération ne peut produire lexception E
que si la postcondition est vraie.
14Terminaison normale
- Precondition gt Terminaison_Normale gt
PostCondition -
-
- Si Postcondition true cela signifie que si la
précondition est vérifiée, que lopération est
autorisée à terminer normalement. - Si Postcondition false cela signifie que si
la précondition est vérifiée, lopération ne doit
jamais terminer normalement. -
- Sinon cela signifie que si la précondition est
vraie, lopération ne peut terminer normalement
que si la postcondition est vraie.
15Non-conformité fournisseur
- Soit lopération m de la classe C,
- dont la postcondition agrégée par héritage est
- ?i 1..n (Precondi gtTerminaisonigtPostCondi)
- et
- soit ?p (Invarp) les invariants hérités par cette
classe. - La non-conformité fournisseur sexprimera par
- (i, O C, Args),
- (?p(Invar)(O) et Precondi)
- O.m(Arg)
- (Terminaisoni ? not(PostCondi))
16Questions
- Conversion des objectifs en contraintes (1.3)
- Comment obtenir/gérer les propriétés (analyse
stockage) - Comment traduire un objectif
- décomposition des spécifs (négations, quantifs)
- pose du programme et désignation
- API de soumission dobjectifs
- Spécification couche contraintes (1.4)
- Couche contrainte pour les spécifs
- Couche contrainte pour le programme
- Connexion couches
- Intégration des solveurs
- Prototype de résolution conjointe
- Exemples
- Démonstration de pose des objectifs et résolution
conjointe - Démontrer la génération de tests ?
17INKA V2 Architecture
Source C
ASA/TS
Normalisation
FINOP
Objectif
Contrôles (if,while,..)
Cas de test
Mémoire
Structures
Interpréteur
Pilote
Tableaux
Flottants
Cas de test
Solveur
Pointeurs
Couverture
Entiers
18Responsabilités
- Conversion des objectifs en contraintes (1.3)
- Comment obtenir/gérer les propriétés (analyse
stockage) - Comment traduire un objectif
- décomposition des spécifs (négations, quantifs)
- pose du programme et désignation
- API de soumission dobjectifs
- Spécification couche contraintes (1.4)
- Couche contrainte pour les spécifs
- Couche contrainte pour le programme
- Connexion couches
- Intégration des solveurs
- Prototype de résolution conjointe
- Exemples
- Démonstration de pose des objectifs et résolution
conjointe - Démontrer la génération de tests ?
TAS/EM LIFC/?
LIFC/?
TAS/BB
TAS/BB
LIFC/?
TAS/BB
TAS/SL LIFC/
TAS/BB LIFC/?
TAS/SL LIFC/FD
19Actions
- Pour 1 septembre
- chacun rédige une première version de ses parties
- Mise au point de la démo
- Points a réfléchir et à intégrer en septembre
- Connexions
- Gestion des propriétés
- Décomposition des objectifs en contraintes
20InKa/JMLTT
- Prototype de collaboration
21Plan
- Structure de la collaboration
- Interface InKa/JMLTT
- Sous objets
22Structure de la collaboration
InKa
JMLTT
Analyse
Normalisation
Init
Constructeur2
ExecuteMethod
Lien entre les paramètres
Solve
Énumération
23- Entrée
- Fichier .cpp
- Sortie
- ASA
- TS
- TNS
InKa
JMLTT
Analyse
Normalisation
Init
Constructeur2
ExecuteMethod
Lien entre les paramètres
Solve
Énumération
24InKa
JMLTT
Analyse
- Entrée
- ASA
- TS
- TNS
- Sortie
- FINOP
- def_struct
Normalisation
Init
Constructeur2
ExecuteMethod
Lien entre les paramètres
Solve
Énumération
25InKa
JMLTT
Analyse
- Entrée
- Fichier .bzp
- Sortie
- Environnement vide
Normalisation
Init
Constructeur2
ExecuteMethod
Lien entre les paramètres
Solve
Énumération
26InKa
JMLTT
Analyse
Normalisation
Init
- Entrée
- Nom de la classe
- Environnement vide
- Sortie
- Environnement avec objet this
- Nom de this
Constructeur2
ExecuteMethod
Lien entre les paramètres
Solve
Énumération
27InKa
JMLTT
Analyse
Normalisation
- Entrée
- Nom de la méthode
- Environnement avec objet this
- Paramètres
- Sortie
- Environnement avec this modifié
Init
Constructeur2
ExecuteMethod
Lien entre les paramètres
Solve
Énumération
28- Entrée
- Environnement avant ExecuteMethod
- Environnement après ExecuteMethod
- Mémoire entrée FINOP
- Mémoire sortie FINOP
- Noms des paramètres de la fonction
- Noms des attributs de this
- Effet
- Lien CLPFD entre les paramètres et attributs
InKa
JMLTT
Analyse
Normalisation
Init
Constructeur2
ExecuteMethod
Lien entre les paramètres
Solve
Énumération
29InKa
JMLTT
Analyse
Normalisation
Init
Constructeur2
ExecuteMethod
- Entrée
- Mémoire entrée FINOP
- Mémoire sortie FINOP
- Contraintes du code source
- Effet
- Résout les contraintes
Lien entre les paramètres
Solve
Énumération
30InKa
JMLTT
Analyse
Normalisation
Init
Constructeur2
ExecuteMethod
Lien entre les paramètres
- Entrée
- Mémoire entrée FINOP
- Mémoire sortie FINOP
- Effet
- Énumère les solutions
Solve
Énumération
31Interface InKa/JMLTT
- Identifiants
- JMLTT b_id
- InKa id.clef_asa
- Lien entre variables
- Paramètres de la fonction
- Attributs de this
- Dans le cas de sous-objets, quelle initialisation
? - Pas de static pour les attributs dans InKa pour
linstant - Globales ?
- Parcours des structures pour lier les attributs ?
32Exemple de sous-objets
- public class A public int a, b, c
- public class B public A _a
- constructeur2(B, This)
- Comment est initialisé This-gt_a ?
- Quel solveur gère _a ? Réveils ?
33Types traités dans JMLTT
- Types traités ?
- Entiers
- Flottants
- Objets
- Pointeurs ? (pas en Java)