muc_2009_2010_lecture3
Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
muc_2009_2010_lecture3 [2010/01/04 12:43] – créée tigli | muc_2009_2010_lecture3 [2010/01/05 07:25] (Version actuelle) – tigli | ||
---|---|---|---|
Ligne 7: | Ligne 7: | ||
- | There are currently two families of formal methods. These two approaches are complementary. | + | ===== Part 1 : How to Design Components in a Middleware for Ubiquitous Computing WComp 2.0 ===== |
- | ===== Proof-based verification ===== | ||
- | Example | + | * Date : December, 15th 2009 |
+ | * Instructor : A. Ressouche - J-Y. Tigli | ||
+ | * Duration : 3h | ||
- | In proof-based methods, the model is described by | + | ==== Ressources : ==== |
- | means of axioms, properties are theorems to be verified using a theorem prover. | + | |
- | Proof-based techniques allow the analysis of infinite systems. However, the use of a theorem prover is a very difficult | + | * Tutorial slides : [[http:// |
+ | * Tutorial paper : [[http:// | ||
- | === References === | ||
- | * Abrial, J., “Z: an introduction to formal methods,” Cambridge University Press, 1995. | ||
- | * Diller, A., “The B-book,” John Willey & SONS, 1994. | ||
- | ===== Model-checking ===== | ||
- | Example | + | * VMware WComp environment iw distributed on DVD and USB Key during the lecture. |
+ | * Remark | ||
+ | * Remark : Find here a Light UPnP server if you need [[http:// | ||
- | In model checking, the model is expressed using a language from which an exhaustive | + | * Correction : [[http:// |
- | execution can be computed (this usually requires a mathematically based | + | |
- | definition). An “execution engine” produces the exhaustive state space associated | + | |
- | to the system as a graph where actions (atomic instructions in the language) relate | + | |
- | to states (a given possible value of the system’s context). It is then possible to | + | |
- | explore the graph to check if a property is satisfied. | + | |
- | Model checking is dedicated to finite-state systems but modeling and verification can be done using graphical toolkits and most steps can be automated | + | ==== References : ==== |
- | === References | + | * [[http:// |
+ | * Vincent Hourdin, Jean-Yves Tigli, Stéphane Lavirotte, Gaëtan Rey, Michel Riveill, “SLCA, Composite Services for Ubiquitous Computing”, | ||
+ | * J.-Y. Tigli, S. Lavirotte, G. Rey, V. Hourdin, M. Riveill, “Lightweight Service Oriented Architecture for Pervasive Computing” IJCSI International Journal of Computer Science Issues, Vol. 4, No. 1, September 2009, ISSN (Online): 1694-0784, ISSN (Print): 1694-0814, {{http:// | ||
+ | * J.-Y. Tigli, S. Lavirotte, G. Rey, V. Hourdin, D. Cheung, E. Callegari, M. Riveill “WComp middleware for ubiquitous computing: Aspects and composite event-based Web services” in Annals of Telecommunications, | ||
- | * Halbwachs, N., A tutorial of Lustre (1993). | + | ===== Part 2 : How to Design Proved Components in WComp Middleware |
- | + | ||
- | + | ||
- | ====== Ressources | + | |
- | + | ||
- | * Slides of the lecture " | + | |
- | + | ||
- | * Sample Lustre programs to illustrate the lecture | + | |
* Documentation for the tutorial 3 " Verification with Lustre and Lesar " : [[http:// | * Documentation for the tutorial 3 " Verification with Lustre and Lesar " : [[http:// | ||
- | |||
* Sample code in Lustre: [[http:// | * Sample code in Lustre: [[http:// | ||
- | |||
- | |||
* Documentation for the tutorial 2 " | * Documentation for the tutorial 2 " | ||
- | ===== References ===== | + | ===== Part 3 : Student Projects |
- | + | ||
- | * On the Formal Verification of Middleware Behavioral Properties, Jérôme Huguesa, Thomas Vergnauda, Laurent Pauteta, Yann Thierry-Miega, | + | |
- | + | ||
- | + | ||
- | ====== Tools : ====== | + | |
- | + | ||
- | + | ||
- | ===== Lustre ===== | + | |
- | + | ||
- | Software : [[http:// | + | |
- | + | ||
- | Lustre/ | + | |
- | + | ||
- | This distribution is experimental. | + | |
- | + | ||
- | == Requirements :== | + | |
- | + | ||
- | It requires a recent, fully installed version of the cygwin system for Windows (gcc, g++, tcl/tk etc). | + | |
- | [[http:// | + | |
- | == Installation :== | + | |
- | + | ||
- | Within a cygwin shell, extract the archive (typically in / | + | |
- | + | ||
- | export LUSTRE_INSTALL=/ | + | |
- | export PATH=$LUSTRE_INSTALL/ | + | |
- | export MANPATH=$MANPATH: | + | |
- | + | ||
- | [[http:// | + | |
- | + | ||
- | ===== NuSMV ===== | + | |
- | + | ||
- | [[http:// | + | |
- | NuSMV is a software tool for the formal verification of finite state systems. It has been developed jointly by ITC-IRST and by Carnegie Mellon University. | + | Students must provide : |
+ | * A Proved Bean Component (lustre checked code, corresponding C code generated, corresponding Bean code) | ||
+ | * A sample WComp assembly to illustrate how this proved component works. | ||
+ | * A document with all necessary explanations | ||
- | NuSMV allows to check finite state systems against specifications in the temporal logic CTL. The input language of NuSMV is designed to allow the description of finite state systems that range from completely synchronous to completely asynchronous. The NuSMV language (like the language of SMV) provides for modular hierarchical descriptions | + | Put all these files and documents on a web site and send them to JY Tigli before |
+ | Deadline : february, the 1st, 2010 | ||
+ | ^ Student Name ^ Cursus (SI5 / Uibnet) | ||
+ | | | | 0 | Barrier | ||
+ | | | | 1 | Lock | A lock is a synchronization mechanism for enforcing limits on access to a resource in an environment where there are many threads of execution. Locks are one way of enforcing concurrency control policies. Only one event is emitted at at time | | ||
+ | | | | 2 | Arbitration | Arbitration between input events | ||
+ | | | | 3 | Average | ||
+ | | | | 4 | Moving average | ||
+ | | | | 5* | Function* Allaccess | ||
+ | | | | 6* | Function* Oneaccess | ||
+ | | | | 7* | Function* Thisaccess | ||
+ | | | | 8* | Function* AllaccessNewvalue | ||
+ | | | | 9* | Function* OneaccessNewvalue | ||
+ | | | | 10* | Function* OneaccessNewvalue | ||
+ | | | | 11 | ||
+ | | | | 12 | ||
+ | | | | 13 | ||
+ | | | | 14 | ||
+ | | | | 15 | ||
+ | | | | 16 | ||
+ | | | | 17 | ||
+ | | | | 18 | ||
+ | | | | 19 | ||
+ | | | | 20 | ||
+ | | | | 21 | ||
+ | | | | 22 | ||
+ | | | | 23 | ||
+ | | | | 24 | ||
+ | | | | 25 | ||
+ | | | | 26 | ||
+ | | | | 27 | ||
+ | | | | 28 | ||
+ | | | | 29 | ||
+ | | | | 30 | ||
+ | | | | 31 | ||
+ | | | | 32 | ||
+ | | | | 33 | ||
+ | | | | 34 | ||
+ | | | | 35 | ||
+ | | | | 36 | ||
+ | | | | 37 | ||
+ | | | | 38 | ||
+ | | | | 39 |
muc_2009_2010_lecture3.1262609038.txt.gz · Dernière modification : 2010/01/04 12:43 de tigli