NMSU branding

New Mexico State University

New Mexico State University

News Center




NMSU prof studies software development techniques

What do cars, airplanes, televisions, defibrillators and computers have in common? They all depend on software to perform their roles effectively. If the software malfunctions, serious problems can arise, says Jonathan Cook, an assistant professor of computer science at New Mexico State University. He is working to help developers of large software systems ensure the quality of their products.


Cook, with help from a three-year, $108,000 National Science Foundation grant, will identify and analyze methods of software development that contribute to the quality of the end software product. He then wants to support software developers in following the techniques in future projects.

Cook said he essentially will work backward in his research. First he will decide which software is high in quality by tracking how well the software performs once it is in use. Then he will analyze the process by which that software was built to determine which development activities contributed to the quality of the end software product.

In a previous study at Lucent Technologies, Cook discovered a development technique that serves as an example for this project. He found that long delays during the development process tended to introduce errors in the resulting software. He believes the longer the developers are delayed in performing their steps of the development process, the more knowledge they lose about those steps. "Had they worked on it right away, they would have remembered all the little things gained from working straight through the process," Cook said.

As a result, the project managers instituted a mechanism for detecting when delays in the process occur, and they take steps to ensure the delays are minimized. The study illustrates the benefits of analyzing the software development process, he said.

Researchers have examined development processes for 10-15 years, Cook said, but not until the last few years have they taken such a detailed look. In this project "we are looking not at generalizations like developers should have code inspection techniques,'" he said, "but specific, detailed steps, such as how to implement those techniques in the best way to realize optimum results."

"The benefits of this study are numerous," Cook said. "Virtually every machine or device we use today or in the future will have software, including cars, planes and medical equipment. If all cars and planes are made safer because they have higher quality software, everyone benefits."

In the first year and a half of the study, the researchers will develop new techniques to analyze the performance data for software processes, Cook said. Then they will conduct more studies with industrial software and apply those techniques. "We will take what we learn and refine the techniques, or go in different directions if we need to," he said.

Ultimately he hopes to release the results to the public for all software developers to use. "One of the goals of the project is to produce tools the public can use that embody what we learned in this research," he said.