Friday, June 10, 2016

Introduction

Elon Musk has called for us to "get super good at making large complex objects", which I take to mean "large complex systems".  I believe that the reason we are not already "super good" at this has mostly to do with the problem of system specification.  Current methods of specifying large, complex systems suffer from the following conundrum:
  • A specification which is complete and unambiguous is necessarily incomprehensible.
  • A specification which is comprehensible is necessarily incomplete and ambiguous.
  • All such specifications are incorrect in that they fail to match the actual implementation.
"Functional Flat Active Specification" (FFAS for short) refers to a method of specifying systems which seeks to address the Elon Musk challenge. Unlike current specification methods, I believe that the simplifications imposed by the rules of FFAS methodology enable a specification to be all things--complete, unambiguous, comprehensible and correct.

FFAS has the following characteristics:
  • It is functional, in a sense such as that used in computer science, by which I mean that a specification module
    • ...is stateless, which in the computer science sense means it does not use variables.
    • ...does not have "side effects", which means that the explicit result is the only effect.
    • ...does not use iteration or recursion.
    • ...does not imply the order of operations.
  • It is flat, meaning that the input of a module is a list of simple elements and the output is a single simple element.
  • It is active, meaning that the specification "drives" or "controls" the system in some way.


No comments:

Post a Comment