Difference between revisions of "Development of a flash-based filestore"

From Event-B
Jump to navigationJump to search
imported>Kriangsak
imported>WikiSysop
 
(21 intermediate revisions by 2 users not shown)
Line 1: Line 1:
=== [http://deploy-eprints.ecs.soton.ac.uk/22/ Modelling and proof of a Tree-structured File System] ===
+
Nowadays, many formal methods are used in the area of software development accompanied by a number of advanced theories and tools. However, more experiments are still required in order to provide significant evidence that will convince and encourage users to use, and gain more benefits from, those theories and tools. Event-B is a formalism used for specifying and reasoning about systems. Rodin is an open and extensible toolset for Event-B specification, refinement and proof. The flash file system is a complex system that is challenging to specify and verify at this moment in time. This system was chosen as a case study for our experiments, carried out using Event-B and the Rodin tool. The experiments were aimed at developing a rigorous model of flash-based file system, and providing useful evidence and guidelines to developers and the software industry. We believe that these would convince users and make formal methods more accessible.  
By ''Damchoom, Kriangsak and Butler, Michael and Abrial, Jean-Raymond''.
 
  
  
=== [http://deploy-eprints.ecs.soton.ac.uk/243/ An Incremental Refinement Approach to a Development of a Flash File System] ===
+
===An Incremental Refinement Approach to a Development of a Flash-Based File System in Event-B===
 +
 
 +
The work on the development of a flash-based file system in Event-B is reported in a PhD thesis by Kriangsak Damchoom<ref>[http://eprints.ecs.soton.ac.uk/21655/ Damchoom, K. (2010) An Incremental Refinement Approach to a Development of a Flash-Based File System in Event-B. PhD thesis, University of Southampton.]
 +
</ref>.
 +
 
 +
Other papers and Rodin achives are available below.
 +
 
 +
=== Modelling and proof of a Tree-structured File System===
 +
By ''Damchoom, Kriangsak and Butler, Michael and Abrial, Jean-Raymond''.<ref>[http://deploy-eprints.ecs.soton.ac.uk/22/ Damchoom, Kriangsak and Butler, Michael and Abrial, Jean-Raymond (2008) Modelling and proof of a Tree-structured File System. In: ICFEM 2008.]</ref>
 +
 
 +
We present a verified model of a tree-structured file system which was carried out using Event-B and the Rodin platform. The model is focused on basic functionalities affecting the tree structure including create, copy, delete and move. This work is aimed at constructing a clear and accurate model with all proof obligations discharged. While constructing the model of a file system, we begin with an abstract model of a file system and subsequently refine it by adding more details through refinement steps. We have found that careful formulation of invariants and useful theorems that can be reused for discharging similar proof obligations make models simpler and easier to prove.
 +
 
 +
=== Applying Event and Machine Decomposition to a Flash-Based Filestore] ===
 +
By ''Damchoom, Kriangsak and Butler, Michael.<ref>[http://deploy-eprints.ecs.soton.ac.uk/125/ Damchoom, Kriangsak and Butler, Michael Applying Event and Machine Decomposition to a Flash-Based Filestore in Event-B. In: SBMF 2009, 19-21 August 2009, Gramado, Brazil.]</ref>
 +
 
 +
=== An Incremental Refinement Approach to a Development of a Flash File System [http://deploy-eprints.ecs.soton.ac.uk/243/  archive] ===
 
By ''Damchoom, Kriangsak and Butler, Michael''.
 
By ''Damchoom, Kriangsak and Butler, Michael''.
  
Nowadays, many formal methods are used in the area of software development accompanied
+
An incremental refinement was chosen as a strategy in our development. The refinement
by a number of advanced theories and tools. However, more experiments are still required in order to
 
provide significant evidence that will convince and encourage users to use, and gain more benefits from,
 
those theories and tools. Event-B is a formalism used for specifying and reasoning about systems. Rodin is
 
an open and extensible toolset for Event-B specification, refinement and proof. The flash file system is a
 
complex system that is challenging to specify and verify at this moment in time. This system was chosen as a
 
case study for our experiments, carried out using Event-B and the Rodin tool. The experiments were aimed
 
at developing a rigorous model of flash-based file system, and providing useful evidence and guidelines to
 
developers and the software industry. We believe that these would convince users and make formal methods
 
more accessible. An incremental refinement was chosen as a strategy in our development. The refinement
 
 
was used for two different purposes: feature augmentation and structural refinement (covering event and
 
was used for two different purposes: feature augmentation and structural refinement (covering event and
 
machine decomposition). Several techniques and styles of modelling were investigated and compared; to
 
machine decomposition). Several techniques and styles of modelling were investigated and compared; to
Line 24: Line 29:
 
development acts as an exemplar that other developers can learn from.
 
development acts as an exemplar that other developers can learn from.
  
=== [http://deploy-eprints.ecs.soton.ac.uk/243/ Multi-Levelled Refinement and Evolution of a Flash File System Model in Event-B and Rodin] ===
+
=== Multi-Levelled Refinement and Evolution of a Flash File System Model in Event-B and Rodin [http://deploy-eprints.ecs.soton.ac.uk/243/ archive ] ===
 
By ''Damchoom, Kriangsak and Butler, Michael''.
 
By ''Damchoom, Kriangsak and Butler, Michael''.
Event-B is a formal method used for specifying and reasoning about systems. Rodin is a toolset
+
 
for Event-B specification, refinement and proof. The flash file system is a complex system that is challenging
+
This work is an extension of the work presented above. The focus of this work is to outline an evolution of the model when the requirements change. Evolution of the models is necessary when
to specify and verify at this moment in time. This system was chosen as a case study for our experiments,
+
the requirements change. The point is how to deal with this. How much changes that impact the models? How reusability
carried out using Event-B and the Rodin tool. The experiments were aimed at developing a rigorous model of
+
can be achieved? and how flexibility of the language and tool are?
flash-based file system, and providing useful evidence and guidelines to developers and the software industry.
+
 
We believe that these would convince users and make formal methods more accessible. An incremental
+
==References==
refinement was chosen as a strategy in our development. Evolution of the models are also necessary when
+
<references/>
the requirements have changes. In this work, we outline some changes that impact the models, how reusability
 
can be achieved and how flexibility of the language and tool are. We believe our exemplar would be useful
 
for other developers to learn from.
 

Latest revision as of 13:06, 18 November 2010

Nowadays, many formal methods are used in the area of software development accompanied by a number of advanced theories and tools. However, more experiments are still required in order to provide significant evidence that will convince and encourage users to use, and gain more benefits from, those theories and tools. Event-B is a formalism used for specifying and reasoning about systems. Rodin is an open and extensible toolset for Event-B specification, refinement and proof. The flash file system is a complex system that is challenging to specify and verify at this moment in time. This system was chosen as a case study for our experiments, carried out using Event-B and the Rodin tool. The experiments were aimed at developing a rigorous model of flash-based file system, and providing useful evidence and guidelines to developers and the software industry. We believe that these would convince users and make formal methods more accessible.


An Incremental Refinement Approach to a Development of a Flash-Based File System in Event-B

The work on the development of a flash-based file system in Event-B is reported in a PhD thesis by Kriangsak Damchoom[1].

Other papers and Rodin achives are available below.

Modelling and proof of a Tree-structured File System

By Damchoom, Kriangsak and Butler, Michael and Abrial, Jean-Raymond.[2]

We present a verified model of a tree-structured file system which was carried out using Event-B and the Rodin platform. The model is focused on basic functionalities affecting the tree structure including create, copy, delete and move. This work is aimed at constructing a clear and accurate model with all proof obligations discharged. While constructing the model of a file system, we begin with an abstract model of a file system and subsequently refine it by adding more details through refinement steps. We have found that careful formulation of invariants and useful theorems that can be reused for discharging similar proof obligations make models simpler and easier to prove.

Applying Event and Machine Decomposition to a Flash-Based Filestore]

By Damchoom, Kriangsak and Butler, Michael.[3]

An Incremental Refinement Approach to a Development of a Flash File System archive

By Damchoom, Kriangsak and Butler, Michael.

An incremental refinement was chosen as a strategy in our development. The refinement was used for two different purposes: feature augmentation and structural refinement (covering event and machine decomposition). Several techniques and styles of modelling were investigated and compared; to produce some useful guidelines for modelling, refinement and proof. The model of the flash-based file system we have completed covers three main issues: fault-tolerance, concurrency and wear-levelling process. Our model can deal with concurrent read/write operations and other processes such as block relocation and block erasure. The model tolerates faults that may occur during reading/writing of files. We believe our development acts as an exemplar that other developers can learn from.

Multi-Levelled Refinement and Evolution of a Flash File System Model in Event-B and Rodin archive

By Damchoom, Kriangsak and Butler, Michael.

This work is an extension of the work presented above. The focus of this work is to outline an evolution of the model when the requirements change. Evolution of the models is necessary when the requirements change. The point is how to deal with this. How much changes that impact the models? How reusability can be achieved? and how flexibility of the language and tool are?

References