Eindhoven, The Netherlands Verum Consultants, a European start-up has, in conjunction with the University of Oxford, developed a mathematical approach to software development, which should iron out inherent flaws in the most critical of software applications.
Verum has developed a technique called Analytical Software Design (ASD) that enables behaviourally complex software specifications to be described and verified mathematically prior to development.
Verum believes that ADS will ultimately enable software development projects to be delivered within a predictable timescale, at a fixed budget, with a known level of errors.
ASD ensures that a software specification is mathematically correct at the outset of a project, so reducing the number of errors introduced throughout the project, and ensuring that the code can be accurately verified for correctness at the end of this project.
Robert Howe, Chief Executive Officer of Verum Consultants, said, “You wouldn't start building an aeroplane or a skyscraper without first proving the design mathematically. Yet this happens every day in the software development industry as coders sit down in front of workstations. And as a result software failure and unpredictability is a norm.”
Mathematics is used to verify a design at the outset of a project and throughout its development in almost every other area of engineering. But software engineers traditionally go direct from a written specification to code development.
Under existing software development models Verum believes that testing as a means to removing software defects is flawed: because no design verification is possible, software testing involves finding and removing not only implementation defects, but all defects introduced through the development lifecycle, and the inherently non-deterministic nature of complex behavioural software means that it is essentially untestable.
Verum's consultants work with clients throughout the lifecycle of a development project to produce verifiable code, in precisely the same way that a structural engineer works in the civil engineering industry.
Guy Broadfoot, Verum's Chief Technical Officer, has spent the last 30 years as a software development manager and engineer. He developed Verum's Analytical Software Design (ASD) approach after studying software engineering, specialising in formal methods at the University of Oxford.
Based on completed assignments, Verum estimates that the application of ASD throughout a software development project reduces software defects by a factor of five, and more crucially, rework by a factor of four. Rework, the unpredictable component of a software development project usually accounts for an additional 40 to 50% of a project's effort.
Broadfoot added, “The software development industry is adolescent at best. The application of mathematical models to the software development process, which is common to every other area of engineering, is part of the process of growing up.”
As well as enabling software specifications to be described and verified mathematically prior to development, ASD also produces data sets that can be used for statistical testing of the end result. Verum adds this element to a client's own engineering process by working closely with the client's software architects and designers.
Because this technique is much like other mathematical verification methods, such as the finite element analysis used to verify structural designs, Verum's approach allows for the most complex concurrency and control errors to be discovered early on.
Verum is positioning its service for use in the software for the OEM, automotive, medical and telecoms markets.