Vous avez dit raffinement

Résumé Le raffinement constitue une notion très importante des méthodes de spécification formelles. On peut distinguer principalement deux formes de dérivations : le raffinement algorithmique et le raffinement de détails. D’un côté, le raffinement algorithmique permet de passer d’une formulation abstraite des spécifications à une description de plus en plus proche du code. Le raffinement de détails sert d’un autre côté à rajouter des détails comme de nouveaux événements ou de nouvelles variables d’état. Dans les deux cas, les transformations apportées par le raffinement préservent la correction des nouveaux programmes vis-à-vis de la spécification initiale. L’objet de cet article est de présenter un état de l’art sur le raffinement et sur ses modalités de vérification dans les méthodes formelles. Dans la plupart des cas, le raffinement d’un programme ou d’une spécification est prouvé à l’aide d’une relation de simulation. Ces moyens ne sont pas tous équivalents. Notre motivation est que l’activité de raffinement doit constituer un critère de sélection d’une méthode au même titre que l’expressivité du langage ou la disponibilité des outils.

[1]  Christophe Darlot,et al.  Reformulation et vérification de propriétés temporelles dans le cadre du raffinement de systèmes d'évènements , 2002 .

[2]  Jean-Raymond Abrial,et al.  Introducing Dynamic Constraints in B , 1998, B.

[3]  Jim Davies,et al.  A comparison of refinement orderings and their associated simulation rules , 2002, Refine.

[4]  Ralph-Johan Back,et al.  Duality in specification languages: a lattice-theoretical approach , 1990, Acta Informatica.

[5]  Tommaso Bolognesi,et al.  Tableau methods to describe strong bisimilarity on LOTOS processes involving pure interleaving and enabling , 1994, FORTE.

[6]  Graeme Smith,et al.  The Object-Z Specification Language , 1999, Advances in Formal Methods.

[7]  Christie Marr,et al.  On the refinement of state-based and event-based models , 2002 .

[8]  John Derrick,et al.  Specification, Refinement and Verification of Concurrent Systems—An Integration of Object-Z and CSP , 2001, Formal Methods Syst. Des..

[9]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[10]  J. W. de Bakker,et al.  Mathematical theory of program correctness , 1980, Prentice-Hall international series in computer science.

[11]  Joseph M. Morris,et al.  A Theoretical Basis for Stepwise Refinement and the Programming Calculus , 1987, Sci. Comput. Program..

[12]  Françoise Bellegarde,et al.  Ready-Simulation Is Not Ready to Express a Modular Refinement Relation , 2000, FASE.

[13]  Martín Abadi,et al.  The existence of refinement mappings , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[14]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[15]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

[16]  Jim Woodcock,et al.  On the Refinement and Simulation of Data Types and Processes , 1999, IFM.

[17]  Yiannis N. Moschovakis,et al.  The game quantifier , 1972 .

[18]  W. D. Duthie Review: Alfred Tarski, On the Calculus of Relations , 1942 .

[19]  Peter Aczel Quantifiers; Games and Inductive Definitions , 1975 .

[20]  Marc Frappier,et al.  EB3: an entity-based black-box specification method for information systems , 2003, Software & Systems Modeling.

[21]  DPhil John Derrick BSc,et al.  Refinement in Z and Object-Z , 2001, Formal Approaches to Computing and Information Technology.

[22]  Ralph-Johan Back,et al.  A calculus of refinements for program derivations , 1988, Acta Informatica.

[23]  C. A. R. Hoare,et al.  Data Refinement Refined , 1986, ESOP.

[24]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[25]  Kai Engelhardt,et al.  Data Refinement: Model-Oriented Proof Methods and their Comparison , 1998 .

[26]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[27]  Alfred Tarski,et al.  Relational selves as self-affirmational resources , 2008 .

[28]  Ali Mili A relational approach to the design of deterministic programs , 2004, Acta Informatica.

[29]  Andrew William Roscoe,et al.  The Theory and Practice of Concurrency , 1997 .

[30]  Jim Woodcock,et al.  Using Z - specification, refinement, and proof , 1996, Prentice Hall international series in computer science.

[31]  Mark B. Josephs A state-based approach to communicating processes , 2005, Distributed Computing.

[32]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .