UT computer science professor Don Batory recently won the Test of Time award for his 2005 paper titled “Feature Models, Grammars, and Propositional Formulas.”
This award, given by the Software Product Line Conference, recognizes a paper which has influenced software product line research over the past 20 years. This award has never been given before.
In order to understand software product lines, it’s helpful to start with their smallest components: features. Features contain the lines of code necessary to perform an action, such as counting data sets or solving a math problem.
Similar features are grouped into programs, which in turn are collected to build a software product line. Batory said that computer scientists can use these to build software quickly, because different actions can be selected like items on a restaurant menu.
“You’re handed a menu from which you pick items for dinner, [and] how exactly your dinner is prepared in the kitchen, you don’t know or want to know,’” Batory said. “Each item on that menu is a feature — an increment in program functionality, and each program of [the SPL] is identified with a unique set of features.”
Batory’s paper explores different methods that bring useful new capabilities to feature modeling tools.
According to Batory, software product lines are significant engineering achievements because they automate the development of certain programs.
“One of the grand challenges of software engineering is to elevate programming beyond traditional languages like C, C++ or Java to ‘declarative programming,’ where you state what you want, rather than how to do it,” Batory said.
Batory said that after designing many versions of a program, researchers are better able to program computers to work on their own.
“When you have built many variants of the same program, it dawns on you how to automate their development,” said Batory. “These programs are all very similar, but they differ in well-understood ways, and experience tells you the good ways to program and the ways to avoid.”
Before the publication of the 2005 paper, Batory said there were many inconsistent theories about how to build constraints and relationships among their features.
“It was common to see a flurry of papers on ‘Bob’s method’ to specify SPL products’ and ‘Ray’s method,’” Batory said. “My instinct was to reduce the ideas of features, products and product lines to fundamental ideas of computer science that had been known for decades.”
Batory said the paper has two main points: features can be understood in the context of other well-known commands, such as tokens, and software product line solutions are unique because they function similarly to boolean expressions, or logical statements that are true or false.
“These [two] connections opened a floodgate to new results on automated analyses of SPLs,” Batory said. “Papers on “Bob” and “Ray’s” methods for writing and evaluating feature selections eventually lost importance and were replaced by more scientific approaches based on sound analysis and automation.”
Recently, Batory and his colleagues created a new Integrated Development Environments refactoring engine, which restructures and simplifies an existing body of code without changing its external behavior.
“We invented a radically new way to build refactoring engines,” Batory said. “Our engine is tiny — about 5,000 lines of Java — runs 10 to 100 times faster than [the standard] Eclipse Java IDE and preserves the ability to script refactorings.”
Batory said analysis for this new refactoring engine builds upon the 2005 paper and ensures the software product line code remains correct after refactoring.
“We have developed, using the 2005 technology, a SPL refactoring technology of the future,” Batory said. “This will help propel SPL development more into the mainstream of today’s programming technologies.”