Analysis and design
FAD: A Functional Analysis and Design Methodology
It is a Phd thesis written by Dan Russell. Computing Laboratory, University of Kent at Canterbury, January 2001.
This thesis presents the functional analysis and design methodology FAD. By functional we mean that it naturally supports software development within the functional programming paradigm (FP).
Every popular methodology has a graphical modelling language which presents various pictorial representations of a system. FAD's modelling language provides the typical elements of functional programming, types and functions, plus elements to support modular development such as modules, subsystems and two forms of signature which specify an interface or a behavioural requirement. The language also includes relationships and associations between these elements, and provides simple representations of functional designs. The methodology has an integrated set of techniques which guide the development of an implementable solution from the deliverables of requirements engineering. FAD's data dictionary provides an organised repository for entities during and after development.
The thesis thus provides a development medium which has hitherto been absent from the functional programming paradigm.
Camila is a system for software development using formal methods.
The Camila project explores how concepts from the VDM specification language and the functional programming language Haskell can be combined. On the one hand, it includes experiments of expressing VDM's data types (e.g. maps, sets, sequences), data type invariants, pre- and post-conditions, and such within the Haskell language. On the other hand, it includes the translation of VDM specifications into Haskell programs.