In the April 2 Economy & Business article “Boeing is still working on software fix,” R. John Hansman, a professor of aeronautics at the Massachusetts Institute of Technology, said, “One of the challenges though is, when you start messing around with software, you have to make sure you haven’t created some other problem or failure.” What a beautiful and sad description of software development today.
Software development remains more an art than a science, much less an engineering discipline. Engineering drawings provide a clear and understandable picture of the design of hardware systems. Computer-aided design tools facilitate this process. This approach can be and is being applied today to the design and implementation of software. While programmers may “mess around,” engineers design and can trace the implications of changes through the entire software system. Part of the problem is that the academic world often separates “computer science” from “computer engineering,” with the latter focusing on the physical hardware, leaving the software to programmers who typically lack engineering training.
There is a better way: computer-aided design and manufacturing systems that begin with drawings and end with automatically generated code. This has produced real-time operational planning tools that the Air Force used with great success in Afghanistan.
It’s time to elevate software development to a true engineering discipline.
Alan B. Salisbury, McLean
The writer, a retired Army general, is founding editor of the Journal of Systems and Software.