Skip to Main Content Skip to Search
Home |   Select Country  Choose Country  |  Contact Us  |  Cart Store 
Create Account | Log In
Products & Services Industries Academia Support User Community Company

 

User Stories

GlucoLight Ensures Reliable Software for Medical Trials Using PolySpace™ Products for C/C++


 Download this user story 249k

Challenge To identify and eliminate run-time errors in embedded glucose monitoring software
Solution Use PolySpace products to analyze C++ code and identify reliability issues
Results
  • Crashes eliminated
  • Code prepared for FDA certification
  • Code maintenance simplified


GlucoLight SENTRIS-100 glucose monitoring system.


Studies show that management of glucose levels reduces infection, length of hospital stay, and mortality for patients in intensive care. Current glycemic control methods are time-consuming and labor-intensive, however, requiring medical staff to draw blood samples and manually measure blood glucose levels.

GlucoLight Corporation is developing a noninvasive, continuous glucose monitoring system that uses imaging technology and requires no manual intervention.

GlucoLight used PolySpace™ Client for C/C++ and PolySpace™ Server for C/C++ to identify run-time errors and improve the reliability of the system’s embedded software. “PolySpace not only provided us with a way to measure software reliability, but it dramatically reduced the amount of work our software department had to perform to deliver highly reliable code, clearing the way for clinical trials to begin,” says GlucoLight chief operating officer Phil Wallace.

Challenge

GlucoLight originally outsourced the development of the software powering its device to a third-party supplier. When the software was delivered it was fully functional, but reliability was an issue. On the first day of a preliminary trial, the device crashed. “The code had hidden issues, such as out-of bound reads in static arrays, and failure to exhaustively check for pointer validity,” explains Bill Bennett, embedded systems developer at GlucoLight.

With projected costs of clinical trials at close to two million dollars, GlucoLight wanted to enter the trials with code that was as reliable as possible. “We needed a tool to accurately measure the reliability of our software and then debug it. We also needed a way to demonstrate to certification authorities that our software is safe,” says Wallace.

In addition, GlucoLight needed to test code exhaustively but without adding testing resources or delaying the project.

"PolySpace not only provided us with a way to measure software reliability, but it dramatically reduced the amount of work our software department had to perform in order to deliver highly reliable code, clearing the way for clinical trials to begin."

Phil Wallace
GlucoLight Corporation
 

Solution

After an initial analysis of the code with PolySpace exposed robustness and reliability issues, GlucoLight used PolySpace products for C/C++ to analyze every class in the C++ application powering its device.

PolySpace used color-coding to highlight degrees of software reliability. Operations coded green by PolySpace will never cause a software fault. Red operations will always cause a fault, while operations coded orange could cause a fault under certain conditions.

“I had never seen exhaustive analysis like this before," comments Wallace. "Most operations are green. Imagine knowing what was never going to be a problem. What a time-saver. No amount of traditional testing or code review could tell us this.”

The team immediately began correcting the problem areas in the code. “Red operations, although rare in good code, are a priority. Orange operations are interesting because they show where real faults can occur, albeit on an intermittent basis. These can be really difficult to spot with testing—if you don’t test with the ‘right’ input values, the faults might never show up until the product is used in the field. And obviously, non-exhaustive static analyzers can easily ignore them,” says Bennett.

GlucoLight used PolySpace repeatedly to verify new or changed code on a class-by-class basis. PolySpace also highlighted error-prone structures, enabling developers to avoid using them in later iterations of the code.

“The unique capability of PolySpace to pinpoint precisely which sections of the code are always error-free buys us peace of mind,” concludes Bennett.

GlucoLight is currently proceeding with clinical trials for its hospital-based monitor.


Results

  • Crashes eliminated.  Before using PolySpace, the device crashed after a few hours of operation. After identifying errors with PolySpace and correcting them, the team made substantial improvements to the code’s reliability. “Before the clinical trials began, we put our device under internal stress testing, and during two months, it never crashed,” says Wallace. 
  • Code prepared for FDA certification.  “After our trials, we will submit our data to the FDA for approval. We will use results from the exhaustive PolySpace analysis to show due diligence in our software validation efforts by flagging all sections of the code that cannot return a software fault and demonstrating that we dutifully reviewed operations that can. There is no stronger guarantee for code reliability.” 
  • Code maintenance simplified.  After the product is released, GlucoLight will continue to use PolySpace to verify that code changes do not affect reliability. “PolySpace will also help current or future employees maintain our software base and ensure that bugs are not inadvertently introduced,” Wallace concludes. 

Products Used

Contact sales
E-mail this page
Print this page