UOA11-01: Automated Software Design and Verification
Submitting Institution
University of OxfordUnit of Assessment
Computer Science and InformaticsSummary Impact Type
TechnologicalResearch Subject Area(s)
Information and Computing Sciences: Computation Theory and Mathematics, Computer Software, Information Systems
Summary of the impact
    Analytical Software Design (ASD), based on Communicating Sequential
      Processes (CSP) and the
      Failures Divergences Refinement tool (FDR), has been developed and
      patented by the specially
      created Dutch company Verum. The new software, based on research in the
      UoA, was released in
      2009 and has allowed customers to build rigorous, error-free software
      systems automatically by
      specifying state machines. ASD, using FDR as its verification engine, has
      produced many millions
      of lines of verified code for customers including Philips Medical Systems,
      Ericsson, FEI and ASML,
      who typically report at least a 50% reduction in costs and a 90% reduction
      in errors.
    Underpinning research
    Verum's technology incorporates Oxford's Failures Divergences Refinement
      (FDR). FDR is a
      model checker which itself uses Communicating Sequential Processes (CSP),
      a process algebra
      designed to help understand and analyse how systems interact with each
      other [2]. While the initial
      development of CSP dates back to the 1970s, it continues to be researched
      and developed at the
      University of Oxford [4, 5, 6], and it is these later works that underpin
      the impact.
    The second, heavily updated and completely re-written version, FDR2,
      became available in 1994.
      The key designer of FDR and its algorithms has been Professor Bill Roscoe
      from the UoA
      throughout its history, though until 2007 the program was released and
      maintained by Oxford Spin-out
      Formal Systems. FDR development has been entirely the responsibility of
      the UoA since 2008
      with releases of FDR2 up to 2.94 in 2012, and the completely re-written
      FDR3 in 2013. FDR's
      main function is to verify or refute refinement relations over a variety
      of semantic models—
      essentially it establishes that abstract specifications are satisfied by
      concrete programs. FDR is an
      extremely powerful process-algebra based model checker, and as such has
      been widely used in
      research and industry.
    Between 1998 and 2001 at the University of Oxford, Guy Broadfoot studied
      the part-time MSc in
      Software Engineering. This included courses on CSP and FDR, the latter
      with Bill Roscoe.
      Broadfoot then investigated the possibility of combining the theory behind
      the Box Structure
      Development Method (BSDM), a technique created by IBM to develop
      commercial software, with
      CSP and FDR in order to use the power of formal verification in the
      context of a standard
      development process used for practical software engineering.
    The concept was built upon between 2001 and 2005 by Dr Philippa Hopcroft,
      while a Research
      Fellow and Research Assistant at Oxford, funded latterly by Verum. This
      research took Broadfoot's
      insight and built on it, exploiting CSP's compositional properties and
      stepwise refinement to create
      software verification systems that could work on an industrial scale. This
      laid the foundations for
      systems capable of automated construction and verification of software —
      in theory providing
      commercial software developers with the power of formal verification
      tools, without having to learn
      anything about CSP or FDR [1]. This idea lies at the core of ASD.
    Verum makes considerable use of CSP and FDR innovations developed by
      Roscoe and his group
      in the UoA since 1994, including the stable failures model [5], priority
      [5], lazy abstraction [3], the
      theory of expressibility in CSP [5] and compression [4,5]. In addition
      Verum has inspired new
      theoretical work such as the discovery of connections between priority,
      and a form of abstraction
      related to fairness [6].
    Verum currently supports research on FDR3, which it plans to adopt by the
      end of 2013, and
      regularly consults with Roscoe and other UoA researchers about its use of
      CSP and FDR.
    References to the research
    The three asterisked outputs best indicate the quality of the
      underpinning research.
    
[1] G.H. Broadfoot and P.J. Hopcroft. Combining the box structure
      development method and CSP.
      Proc IEEE conference on Automated Software Engineering 2004.
      DOI 10.1109/ASE.2004.1342760
      The key paper on ASD. Written when Hopcroft was an RA at Oxford.
     
[3]* A.W. Roscoe. CSP and determinism in security modelling. IEEE
        Security and Privacy
        Symposium 1995.
      DOI http://dx.doi.org/10.1109/SECPRI.1995.398927
      Introduced the concept of lazy abstraction, crucial in Verum's
          models.
     
[4]* A.W. Roscoe. The Theory and Practice of Concurrency,
        Prentice-Hall 1997.
      http://dl.acm.org/citation.cfm?id=550448
      Heavily cited book on CSP, described compressions, implementation of
          FDR2, specification
          techniques crucial to Verum.
     
[5]* A.W. Roscoe. Understanding Concurrent Systems. Springer 2010.
      http://www.springer.com/computer/swe/book/978-1-84882-257-3
      Sequel to [4], described priority, new compressions, built
          foundations for FDR3, introduced
          compilation-and-compression model for imperative state, all crucial to
          Verum.
     
[6] P. Hopcroft and A.W. Roscoe, Slow abstraction through priority. In
      Theories of Programming
      and Formal Methods. Springer LNCS volume 8051, 2013.
      http://dx.doi.org/10.1007/978-3-642-39698-4_20
      Reports theoretical research inspired by Verum, and its implementation
        and its use within ASD.
     
Details of the impact
    Attempts to use automated formal verification in industrial-scale
      examples go back several
      decades, the motivation being that bringing verification into the software
      engineering process
      should ultimately replace most or all testing, create more reliable
      systems, and save
      both costs and time. This has proved a more challenging activity than was
      first hoped, though
      improvements both in verification technology such as model checkers (tools
      which explore a
      system's reachable states and report any errors found) and the computers
      available for running
      this technology are now enabling real progress.
    The path to impact began with Guy Broadfoot's learning UoA
      research on his SEP MSc and
      formulating a plan to use it. After Hopcroft in the UoA researched and
      developed this idea with him
      [1], the path continued in 2004 when Broadfoot and a business partner set
      up Verum to develop
      this research into a product now known as Analytical Software Design
      (ASD). The company's goal
      was to convert the theoretical principles into a commercial system that
      could mathematically verify
      all possible outcomes during software design, and go on to automatically
      generate defect-free
      code. In turn that would save money, cut development time, and improve
      accuracy—attractive to
      businesses because software consumes over 50% of the development costs of
      technological
      products, and of that more than 40% is spent on testing and defect
      removal. [A]
    The impact since 2008 is represented by Verum's product:
      ASD:Suite, released in 2009, and by
      this product's impact on other organisations as detailed below
    ASD:Suite is a design automation tool that combines industrial
      model-driven design with
      automated formal verification and code generation. In simple terms,
      developers use the high level
      ASD language to develop models which represent embedded systems as
      networks of state
      machines that are linked hierarchically; the network of components are
      wired together
      automatically to reflect the semantics of the runtime code generated.
      Verum has received US,
      European and Hong Kong patents for ASD.
    The verification technology central to ASD:Suite is completely based on
      the UoA research set out
      above. The models are automatically translated into the process algebra
      CSP, enabling properties
      such as well-formedness of the original specification, deadlock and
      livelock freedom, correctness
      with respect to the specification, and responsiveness to be automatically
      verified or refuted using
      the model checker FDR. Once verification is complete, semantically
      equivalent source program
      code is automatically generated, in any one of a number of commercial
      software languages.
      Crucially, because the software system translates the state machines into
      CSP and the verified
      code is automatically generated, clients never have to interact with
      either CSP or FDR, but can
      take advantage of their power to test the design models automatically.
      Broadfoot (CTO at Verum)
      writes (to Bill Roscoe) as follows [F]:
    "The ability to express a sufficiently broad class of systems and the
        necessary correctness
        properties, as well as our ability to push the boundaries of scalability
        in practice have resulted from
        your research, including the abstraction operations, compression and
        chase functions, and
        advanced specification techniques based for example on one-to-many
        renaming. We see our
        continued involvement with the on-going development of FDR and your
        development of new
        CSP/FDR techniques for us as vital to the successful creation and
        ongoing advances of our
        ASD:Suite product."
    Verum sells licenses to use ASD:Suite, in which models developed by
      clients' engineers are
      processed and verified on servers operated by Verum. Between 2009 and
      2013, ASD:Suite's users
      have included Philips Medical Systems, Ericsson, electron microscopy
      company FEI, and
      lithography systems firm ASML. The benefits of using ASD are reduced cost,
      reduced time-to-market,
      and improved accuracy. These have been demonstrated practically by its
      clients:
    
      - FEI has reported a 4x reduction in cost per line of code [B].
 
      - Ericsson has produced essentially error free software, with a
        sevenfold increase in
        productivity and up to 50% cost saving over conventional software
        development
        techniques. They also report being able to use only `three or four
        people' when using
        Verum, rather than the 20 that would have been needed previously [B, G].
        Ard-Jan
        Moerdijk, manager of the Dutch subsidiary of Ericsson
        Telecommunications, says that
        Verum's work is `faultless' and T-Mobile and other of Ericsson's clients
        have not come
        across a single error in the programs created using Verum's package [G].
 
      - The Technical University of Eindhoven has shown that use of the
        ASD:Suite at Philips
        Healthcare led to a 10x decrease in software defects [C].
 
    
    Initially set up with funding supplied by the founders, in 2010 Verum
      secured an additional €1.5M
      to continue developing ASD [D]. In 2012 Verum was ranked 5th in the SMB
      (MKB) Innovation Top
      100 in the Netherlands, being labelled the most innovative ICT technology
      company in the country
      [E]. In the period July 2009 — July 2013, ASD:Suite was used to create
      more than 250 million lines
      executable lines of code in the languages C, C++, C#, and Java [F], with
      individual generated
      systems frequently being over 500,000 lines of code. All of the models
      from which this code was
      generated had been verified on FDR. Each month in January — July 2013,
      ASD:Suite had on
      average over 74 active users. In July 2013, Verum had a workforce of 23
      people.
    While there have been many impressive applications of formal verification
      technology by
      verification experts, and a few generally usable applications for
      extremely restricted applications,
      such as Microsoft's SLAM applied to device driver compliance, we are not
      aware of any other
      application which, like ASD:Suite, has made verification of a very wide
      range of software
      accessible to software engineers who are not verification experts.
    Sources to corroborate the impact 
    [A] http://www.vdcresearch.com/webcasts/?id=168,
      Searching for the Total Size of the Embedded
      Software Engineering Market, VDC Research Inc.
      Presentation assessing the size of the embedded software market in
        2011.
    [B] Verum ASD Suite Introduction, document held by University of Oxford.
      Description of Verum's product ASD:Suite.
    [C] http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=6081983,
      Analyzing the effects of formal
      methods on the development of industrial control software.
      Paper describing the application of ASD to an X-Ray machine.
    [D] http://fd.nl/entrepreneur/young-entrepreneur/452776-1206/doorbraak-voor-softwarebedrijf-
        verum,
      Translated here
      http://www.verum.com/company/news-and-press/12-06-04/Breakthrough_for_Software_Company_Verum.aspx
      `Breakthrough for Software Company Verum' article from "Het Financieele
      Dagblad" on 4 June
      2012, by Hans de Jongh.
      Newpaper article describing adoption of ASD by ASML.
    [E] http://www.syntens.nl/innovatietop100/top-100-2012/Nummer-5.aspx,
      MKB Innovation Top 100.
      Winners of Dutch innovation awards.
    [F] Email correspondence with CTO of Verum and other Verum employees.
      Testimonials about the role of the UoA's research in Verum's product
        and various aggregated
        statistics about the use of ASD by Verum's clients.
    [G] http://fd.nl/entrepreneur/wereldveroveraars/634621-1211/brabantse-vinding-verslaat-indiase-
        softwaremakers, article from "Het Financieele Dagblad" on 26
      November 2012, by Hans de Jongh.
      Translated:
      http://www.verum.com/company/news-and-press/12-11-
        26/Netherlands_invention_beats_Indian_Software_Developers.aspx
      Article on Ericsson study demonstrating cost-effectiveness of using ASD
        in Europe versus
        outsourcing conventional development to India.