You need to expand this story into Model-Driven Development (MDD), where code is generated from models/diagrams. CASE tools also did this back int the 1990's. Programmers need not fear automation, as there are not enough programmers to meet demand, and career interest is falling, at least in the USA. "Easy" code should be generated, so programmers can focus on new, difficult problems that can't be automated yet. Otherwise, we will not have all the software that our businesses and economy needs.
David Wright
http://it.toolbox.com/people/davidwright
Computer Software That Writes Itself
Email To A Friend
Please fill in the following information and we'll email this link.
Software is a messy business. Last March the U.S. Federal Bureau of Investigation publicly abandoned a $170 million software overhaul because of unforeseen technical problems. Even when big projects go well, they often take so long to complete that the software is out of date by the time it's rolled out. Corporations often don't bother to upgrade obsolete software for fear that they're opening a can of worms. As software gets more elaborate and complex, the problem only gets worse.
The situation has triggered interest in using computer programs to generate other programs automatically. The benefits of automatic software are compelling. Companies would need fewer programmers and could ratchet up productivity. Humans writing computer code are also prone to errors. "If a programmer can sit down, specify what you want and push a button, you end up much more productive," says Doug Smith, a researcher at the Kestrel Institute, a nonprofit R&D center in Palo Alto, California. "It's the next stage in the evolution of computer programming."
Smith and his colleagues at Kestrel have developed a program that translates a description of a problem into guidelines a computer can understand. They've used this tool to develop software for scheduling cargo deployment for the U.S. military. The program runs faster than comparable ones developed manually and speeds up the programming process. A software designer can also return later with additional requirements and quickly crank out a new version. Some testing is still needed, however, to prove the program's reliability.
One automatic programming tool has already made it into the financial marketplace. SciComp, based in Austin, Texas, has developed a product that helps investment banks design programs to price financial derivatives. It takes complex mathematical models and translates them into something a computer can solve, allowing banks to flexibly change pricing models as they introduce new products and guidelines.
The bigger challenge is to enable laypeople to write complex software without putting rigid restrictions on the kind of software that can be produced. Utah-based Tenfold has gotten around this problem in part by concentrating on corporate software, which usually performs relatively simple tasks. Tenfold's automatic programming product generalizes the software requirements of vastly different corporations, ranging from insurance companies calculating policies to banks managing customer accounts, and provides for some tailoring for specific companies. The tool can generate corporate software in three weeks, compared with more than a year when done by hand. Gordon Novak, a computer scientist at the University of Texas at Austin, is working on a program in which problems can be depicted as geometric shapes connected with arrows.
Researchers at NASA hope to be able to generate programs on the fly during emergencies. If a space shuttle has to abort a launch, an automatically generated program could figure out whether it can make it into orbit or find a landing site. By using software to handle such a situation, "you eliminate an error-prone activity that humans are engaged in," says Dan Cooke, chairman of Texas Tech University's computer-science department, who's developing the software for NASA.
- 1
- 2
- Next Page »







