Mathematical proof techniques, automated requirements tracing lead trends in software verification tools

Product intelligence -- Complex application software increasingly is finding its way into mission- and life-critical applications like medical equipment, surveillance and reconnaissance systems, and even high-end passenger cars. Despite the importance of this software, however, much of today's sophisticated code is developed in somewhat of a haphazard manner.

Jul 5th, 2011
Pennwell web 420 322
By John KellerProduct intelligence, 5 July 2011. Complex application software increasingly is finding its way into mission- and life-critical applications like medical equipment, surveillance and reconnaissance systems, and even high-end passenger cars. Despite the importance of this software, however, much of today's sophisticated code is developed in somewhat of a haphazard manner with little fool-proof debugging going on, and even less code verification based on formal methods."The modern car has more lines of code than a typical commercial jetliner," says Robert Dewar, president and chief executive officer of AdaCore Technologies Inc. in New York. "Medical instrumentation has critical software that also is written in a haphazard way," he says.Software in these kinds of mission- and life-critical systems could learn a thing or two from aerospace and defense technology, such as avionics and military systems in which formal certification is mandatory, and where the use of software verification tools are seeing increasing use not only to find software bugs, but also to exercise the software automatically in a wide variety of scenarios to ensure the code will work every time.

Approaches to software verification tools are widely varied, but tend to segment into static tools, which work with the source code itself, and dynamic test tools, which execute the code with test cases to verify that the software works correctly. New kinds of dynamic software code verification tools seek to automate the process of following software verification requirements.

In addition, software engineers are working on developing formal, mathematical proof techniques to ensure code quality. Among the companies invested in formal mathematical proof techniques for software code verification is The MathWorks in Natick, Mass.

"There is a new class of verification tools that actually analyzes the code to check to make sure there won't be a certain class of runtime errors," says Jon Friedman, aerospace and defense industry marketing manager at The MathWorks. "These check to make sure that the engineer hasn't left openings for those kinds of problems."

Formal, mathematically provable methods are absolutely essential for removing all doubt that software will work when called on, says Jay Abraham, product marketing manager at The MathWorks. "You cannot do exhaustive software testing without formal methods," Abraham says. "Formal mathematics can boil down these complicated problems into smaller problems that you can prove."

AdaCore's Dewar says use of mathematical proof techniques is a major trend in software verification tools today. He says this technology should be mature within the next five years. "It is being used today, but it is not yet standard industry practice," Dewar says.

Today's high-performance and relatively inexpensive computing is helping software engineers implement formal methods in software code verification. In years past, the kind of computing necessary to run formal methods was unavailable to most engineers.

Following a set process for software code verification is not new, but in the recent past has been a laborious process. Today, software engineers are trying to automate that process of tracing requirements all the way down to testing on a target, says Chris Murray, vice president of business development at LDRA Ltd. U.S. office in San Bruno, Calif.

"It is most important to be able to find out which software artifact is connected upstream or downstream to another artifact," Murray says. "You need to do that quickly and efficiently. LDRA does that with a tool called Object Box, which is a component of the LDRA Tool Suite that includes static and dynamic software testing and requirements traceability.

Company information

AdaCore Technologies Inc.
New York
212-620-7300
www.adacore.com

Altran Praxis Ltd.
Bath, England
+44 (0)1225 466991
www.altran-praxis.com

ASTA USA
Boise, Idaho
866-446-1860
www.asta-usa.com

Atlassian
San Francisco
415-701-1110
www.atlassian.com

Boston Business Computing Ltd.
Acton, Mass.
978-725-3222
www.bosbc.com

Concept Engineering GmbH
Freiburg, Germany
+49-761-47094-0
www.concept.de

Coverity Inc.
San Francisco
415-321-5200
www.coverity.com

DDC-I Inc.
Phoenix
602-275-7172
www.ddci.com

Digital Rapids
Markham, Ontario
905-946-9666
www.digital-rapids.com

Discover Video
Wallingford, Conn.
203-626-5267
www.discovervideo.com

Green Hills Software
Santa Barbara, Calif.
805-965-6044
www.ghs.com

Guzik Technical Enterprises
Mountain View, Calif.
650-625-8000
www.guzik.com

Intel Corp.
Santa Clara, Calif.
408-765-8080
www.intel.com

James Heires Consulting Inc.
Cedar Rapids, Iowa
319-551-2825
www.jamesheiresconsulting.com

KLOCwork Inc.
Burlington, Mass.
866-556-2967
www.klocwork.com

LDRA Ltd.
Wirral, England
0151 649 9300
www.ldra.com

LynuxWorks Inc.
San Jose, Calif.
408-979-3900
www.lynuxworks.com

The MathWorks Inc.
Natick, Mass.
508-647-7001
www.mathworks.com

Obsidian Software Inc.
Austin, Texas
512-330-9818
www.obsidiansoft.com

Open Controller
Berlicum, The Netherlands
+ 31 (0)73 6449992
www.opencontroller.com

Programming Research Inc.
Boston
617-273-8448
www.programmingresearch.com

Reasoning LLC
Raleigh, N.C.
866-379-6618
www.reasoning.com

Scientific Toolworks Inc.
St. George, Utah
435-627-2529
www.scitools.com

Taurus teleSYS Inc.
Newport News, Va.
757-873-2700
www.tgate.com

TESTCo Inc.
Del Valle, Texas
888-254-9709
www.testco.com

Wind River Systems Inc.
Alameda, Calif.
510-748-4100
www.windriver.com

XGC Software
Farnborough, England
011 44 1483 433312
www.xgc.com

More in Communications