Wednesday, April 10, 2002

Software Development: A unified theory of software evolution

by Sam Williams,, 8 April 2002
"Software evolution, i.e. the process by which programs change shape, adapt to the marketplace and inherit characteristics from preexisting programs, has become a subject of serious academic study in recent years. Partial thanks for this goes to Lehman and other pioneering researchers. Major thanks, however, goes to the increasing strategic value of software itself. As large-scale programs such as Windows and Solaris expand well into the range of 30 to 50 million lines of code, successful project managers have learned to devote as much time to combing the tangles out of legacy code as to adding new code. Simply put, in a decade that saw the average PC microchip performance increase a hundredfold, software's inability to scale at even linear rates has gone from dirty little secret to industry-wide embarrassment."

ACM tech news reports:
"Imperial College of Technology's Meir Lehman has seen his theory on software evolution move from relative obscurity to major academic focus, especially as software's scalability limitations become plain in the face of climbing microchip performance levels. His work sprang from his years as an IBM researcher, when he studied the development of the OS/360 mainframe and discovered that debugging activity was declining as lines of software code were increasing, and predicted that the product would be mired in over-complexity; his warning was largely ignored, and his prediction came to pass. Lehman has formulated eight software laws that often use a physical template: The Second Law of software evolution, for example, takes its cue from the Second Law of Thermodynamics. More recent laws include the Law of Continuing Growth, which states that "the functional capability of E-type [evolutionary] systems must be continually increased to maintain user satisfaction over the system lifetime." By expanding the graphs and data he compiled 30 years ago, Lehman demonstrates that the growth rate of large software programs follows an inverse square pattern before over-complexity cripples them. Getting a handle on the feedback loops that direct software development--such as internal debugging, desires of individual developers, and market demand--will rein in the software's complexity, he postulates. "I believe that a theory of software evolution could eventually translate into a theory of software engineering," Lehman says. Other researchers are applying and refining his theory to gain insight on the development of open-source software and invent new technologies, such as the Beagle tool created by Rick Holt of the University of Waterloo."


Post a Comment

<< Home