Friday 25. march 2016: Dear backers, unfortunately, the project was not successfully funded. I will now focus on FRP (Functional Reactive Programming) applied to real-time critical system specification and simulation.
Wednesday 24. february 2016: Kickstarter project now live!
Friday 19. february 2016: Kickstarter project submitted for review
Sunday 24. january 2016: slideshow updated with applications that will be covered by the book
Tuesday 1. september 2015: concept of executable specifications applied to tests
Friday 22 May 2015: model of the temporal aspect of real time softwares
FUN is a book on functional software specifications. This book deals with real time embedded softwares but the concept can be applied to many other types of softwares.
In this book, fun has four meanings:
I’m Christophe Delord. You may (or may not) already know my website. On CDSoft.fr, I share free softwares for fun and now I’m starting this funny project.
But I also have been working for many years in the aerospace industry in Toulouse and Paris, France. You can learn more about me here: Resume. Designing, coding, testing, documenting embedded softwares has been my main occupation for the last 17 years.
These softwares are real time, critical and designed to run with restricted resources:
The most frustrating point in my professional activity is that we have no time to do it well:
To make it short, we loose a lot of time instead doing interesting and useful things: designing, coding, debugging, testing, documenting…
The aim of FUN is to show how to specify a system in order to ease all the subsequent development phases. A clean, unambiguous specification that just works is the better way to:
I’ll also provide some examples. In fact all the tools that will be written for this project will be specified with fun.
The project FUN is a home project to avoid all the operational short term constraints that kill innovation.
A slideshow of the FUN project is available. Don’t worry, a modern browser or a PDF reader is enough to view it. No need for a fat and expensive office suite to display a few slides!
The HTML slideshow has been tested with Firefox and Chromium. If the HTML version doesn’t work in your browser, try the PDF one.
Unfortunately, the project was not successfully funded. In the mean time, I have worked on a way to model time varying variables in a functional fashion. Freezing the time and representing a variable by a list of all its values was a nice solution to write functional specifications without any side effect. After looking for more information on similar approaches, I came across Functional Reactive Programming (FRP), which is being formalized by lots of clever people for years… and decided not to reinvent the wheel.
The new objective of this project is the application of FRP to the specification and simulation of real-time critical systems.
The project is now live on Kickstarter.
You can support it here.
New version of the slideshow!
The new version of the slideshow presents a few applications that will be covered by the book.
This may be the last teaser before starting a Kickstarter ;-)
The concept of executable specification can be applied to tests!
Usually people write a test plan, then implement these tests, then run the tests, and finally write a test report… That’s a quite long, boring and error prone process. Why not writting a test plan that contains executable tests that generate the test report. Less human copy/paste operations, less errors… More fun!
This is easy to do with Pandoc, my diagram preprocessor (http://cdsoft.fr/dpp) and my future documentation coverage tool. It is currently being implemented with this concept. And soon available on
I started to model the temporal aspect of a real time software.
In my model, the time is simulated, split into equal small slices. Each state is a value associated to a slice. The global evolution of the software can then be represented as a stream (potentially infinite), each value of the stream is the state of the software at a specific time slice.
In Haskell, this is very nice and simple to describe. Looks promising.
FUN is a personal project but I need time.
I think that crowdfunding is the way to achieve my goal. The project is now live on Kickstarter. You can support it here.
You can contact me:
Waiting for your feedback ;-)