You are on page 1of 10

REPORTS

SOFTWARE ASPECTS OF STRATEGIC


DEFENSE SYSTEMS

A former member of the SD10 Panel on Computing in Support of Battle


Management explains why he believes the “star wars” effort will not
achieve its stated goals.

DAVID LORGE PARNAS

On 28 lune 2985, David Large Parnas, a respected computer My conclusions are not based on political or policy
scientist who has consulted extensively on United States judgments. Unlike many other academic critics of the
defense projects, resigned from the Panel on Computing in SD1 effort, I have not, in the past, objected to defense
Support of Battle Management, convened by the Strategic efforts or defense-sponsored research. I have been
Defense lnitiattve Organization (SDIO). With his letter of deeply involved in such research and have consulted
resignation, he submitted eight short essays explaining why extensively on defense projects. My conclusions are
he believed the software required by the Strategic Defense based on more than 20 years of research on software
Initiative would not be trustworthy. Excerpts from Dr. Par- engineering, including more than 8 years of work on
nas’s letter and the accompanying papers have appeared real-time software used in military aircraft. They are
widely in the p.yess. The Editors of American Scientist be- based on familiarity with both operational military soft-
lieved that it would be useful to the scientific community to ware and computer science research. My conclusions
publish these essa,ys in their entirety to stimulate scientific are based on characteristics peculiar to this particular
discussion of the feasibility of the project. As part of the effort, not objections to weapons development in
activity of the Forum on Risks to the Public in the use of general.
computer systems the Editors of Communications are I am publishing the papers that accompanied my let-
pleased to reprint these essays.” ter of resignation so that interested people can under-
stand why many computer scientists believe that sys-
tems of the sort being considered by the SD10 cannot
This report comprises eight short papers that were com- be built. These essays address the software engineering
pleted while I was a member of the Panel on Comput- aspects of SD10 and the organization of engineering
ing in Support of Battle Management, convened by the research. They avoid political issues: those have been
Strategic Defense Initiative Organization (SDIO). SD10 widely discussed elsewhere, and I have nothing to add.
is part of the Office of the U.S. Secretary of Defense. In these essays I have attempted to avoid technical
The panel was, asked to identify the computer science jargon, and readers need not be computer programmers
problems that would have to be solved before an effec- to understand them. They may be read in any order.
tive antiballistic missile (ABM) system could be de- The individual essays explain:
ployed. It is clear to everyone that computers must play 1. The fundamental technological differences be-
a critical role in the systems that SD10 is considering. tween software engineering and other areas of engi-
The essays that constitute this report were written to neering and why software is unreliable:
organize my thoughts on these topics and were submit- 2. The properties of the proposed SD1 software that
ted to SD10 wj th my resignation from the panel. make it unattainable:
-
j Reprinted by perrnissicm of Anwricar~ Sciewfisf. journal of Sigma Xi:
3. Why the techniques commonly used to build mili-
Software Aspects c,f Strategic Defense Systems. David Large Parnas. Vol. tary software are inadequate for this job;
73. No. 5. pp. 432-440 4. The nature of research in software engineering,
Cc 1985 ACM OflOl-0782/85/120o-1326 750 and why the improvements that it can effect will not be

1326 Communications of the ACM December1985 Volume 28 Number 12


sufficient to allow construction of a truly reliable stra- carry a specific disclaimer of warranty. The lay public,
tegic defense system: familiar with only a few incidents of software failure,
5. Why I do not expect research in artificial intelli- may regard them as exceptions caused by inept pro-
gence to help in building reliable military software; grammers. Those of us who are software professionals
6. Why I do not expect research in automatic pro- know better: the most competent programmers in the
gramming to bring about the substantial improvements world cannot avoid such problems. This section dis-
that are needed; cusses one reason for this situation.
7. Why program verification (mathematical proofs of
correctness) cannot give us a reliable strategic defense II. System types
battle-management system; Engineering products can be classified as discrete state
8. Why military funding of research in software and systems, analog systems, or hybrid systems.
other aspects of computing science is inefficient and Discrete state or digital systems are made from com-
ineffective. This essay responds to the proposal that ponents with a finite number of stable states. They are
SD10 should be funded even if the ABM system cannot designed in such a way that the behavior of the system
be produced, because the program will produce good when not in a stable state is not significant.
research. Continuous or analog systems are made from compo-
nents that. within a broad operating range, have an
infinite number of stable states and whose behavior can
Why software is unreliable
be adequately described by continuous functions.
Hybrid systems are mixtures of the two types of com-
I. Introduction
ponents. For example, we may have an electrical cir-
People familiar with both software engineering and
cuit containing, in addition to analog components, a
older engineering disciplines observe that the state of
few components whose descriptive equations have dis-
the art in software is significantly behind that in other
continuities (e.g., diodes). Each of these components has
areas of engineering. When most engineering products
a small number of discrete operating states. Within
have been completed, tested. and sold, it is reasonable
these states its behavior can be described by continu-
to expect that the product design is correct and that it
ous functions.
will work reliably. With software products, it is usual to
find that the software has major “bugs” and does not
III. Mathematical tools
work reliably for some users. These problems may per-
Analog systems form the core of the traditional areas of
sist for several versions and sometimes worsen as the
engineering. The mathematics of continuous functions
software is “improved.” While most products come with
is well understood. When we say that a system is de-
an express or implied warranty, software products often
scribed by continuous functions we are saying that it
can contain no hidden surprises. Small changes in in-
puts will always cause correspondingly small changes
The requirements of a strategic defense system in outputs. An engineer who ensures, through careful
design, that the system components are always operat-
In March 1983, President Reagan said, “I call upon
ing within their normal operating range can use a
the scientific community, who gave us nuclear
mathematical analysis to ensure that there are no sur-
weapons, to turn their great talents to the cause of
prises. When combined with testing to ensure that the
mankind and world peace; to give us the means of
components are within their operating range, this leads
rendering these nuclear weapons impotent and
to reliable systems.
obsolete.” Before the advent of digital computers, when discrete
To satisfy this request the software must per- state systems were built, the number of states in such
form the following functions: systems was relatively small. With a small number of
-Rapid and reliable warning of attack states. exhaustive testing was possible. Such testing
-Determination of the source of the attack compensated for the lack of mathematical tools corre-
-Determination of the likely targets of the sponding to those used in analog systems design. The
attack engineers of such systems still had systematic methods
-Determination of the missile trajectories that allowed them to obtain a complete understanding
-Coordinated interception of the missiles or of their system’s behavior.
warheads during boost, midcourse, and termi- The design of many hybrid systems can be verified
nal phases, including assignment of responsi- by a combination of the two methods. We can then
bility for targets to individual sensors or identify a finite number of operating states for the com-
weapons ponents with discrete behavior. Within those states, the
-Discrimination between decoys and warheads system’s behavior can be described by continuous func-
-Detailed control of individual weapons tions. Usually the number of states that must be distin-
-Evaluation of the effectiveness of each at- guished is small. For each of those states, the tools of
tempt to destroy a target. continuous mathematics can be applied to analyze the
behavior of the system.

December 1985 Volume 28 Number 12 Communications of the ACM 1327


Computer Risks Forum

With the advent of digital computers, we found the the mathematical expressions describing a program are
first discrete s,tate systems with very large numbers of often notably harder to understand than the program
states. However, to manufacture such systems it was itself.
necessary to construct them using many copies of very
small digital subsystems. Each of those small subsys- V. The education of programmers
tems could be analyzed and tested exhaustively. Be- Worsening the differences between software and other
cause of the repetitive structure, exhaustive testing was areas of teclinology is a personnel problem. Most de-
not necessary to obtain correct and reliable hardware. signers in traditional engineering disciplines have been
Although design errors are found in computer hard- educated to understand the mathematical tools that are
ware, they are considered exceptional. They usually available to them. Most programmers cannot even be-
occur in those parts of the computer that are not repeti- gin to use the meager tools that are available to soft-
tive structures. ware engineers.
Software sy:jtems are discrete state systems that do
not have the repetitive structure found in computer Why the SD1 software system
circuitry. There is seldom a good reason to construct will he untrustworthy
software as highly repetitive structures. The number of
states in software systems is orders of magnitude larger I. Introduction
than the number of states in the nonrepetitive parts of In March 1983, the President called for an intensive
computers. The mathematical functions that describe and comprehensive effort to define a long-term re-
the behavior of these systems are not continuous func- search program with the ultimate goal of eliminating
tions, and traditional engineering mathematics does not the threat posed by nuclear ballistic missiles. He asked
help in their verification. This difference clearly con- us, as members of the scientific community, to provide
tributes to the relative unreliability of software systems the means of rendering these nuclear weapons impo-
and the apparent lack of competence of software engi- tent and obsolete. To accomplish this goal we would
neers. It is a fundamental difference that will not disap- need a software system so well-developed that we
pear with improved technology. could have extremely high confidence that the system
would work correctly when called upon. In this section,
IV. How can we understand software? I will present some of the characteristics of the required
To ameliorate the problems caused by this fundamental battle-management software and then discuss their im-
difference in technology two techniques arse available: plications on the feasibility of achieving that confi-
(1) the building of software as highly organized collec- dence.
tions of small programs and (2) the use of mathematical
logic to replace continuous mathematics. II. Characteristics of the proposed battle-management
Dividing software into modules and building each software system
module of so-called “structured” programs clearly 1. The system will be required to identify, track, and
helps. When properly done, each component deals with direct weapons toward targets whose ballistic charac-
a small number of cases and can be completely ana- teristics cannot be known with certainty before the mo-
lyzed. However, real software systems have many such ment of battle. It must distinguish these targets from
components, and there is no repetitive structure to sim- decoys whose characteristics are also unknown.
plify the analysis. Even in highly structured systems, 2. The computing will be done by a network of com-
surprises and Iunreliability occur because the human puters connected to sensors, weapons, and each other,
mind is not able to fully comprehend the many condi- by channels whose behavior, at the time the system is
tions that can arise because of the interaction of these invoked, cannot be predicted because of possible coun-
components. Moreover, finding the right structure has termeasures by an attacker. The actual subset of system
proved to be very difficult. Well-structured real soft- components that will be available at the time that the
ware systems (are still rare. system is put into service, and throughout the period of
Logic is a branch of mathematics that can deal with service, cannot be predicted for the same reason.
functions that are not continuous. Many reljearchers 3. It will be impossible to test the system under real-
believe that it can play the role in software engineering istic conditions prior to its actual use.
that continuous mathematics plays in mechanical and 4. The service period of the system will be so short
electrical engineering. Unfortunately, this has not yet that there will be little possibility of human interven-
been verified in practice. The large number of states tion and no possibility of debugging and modification of
ant1 lack of regularity in the software result in ex- the program during that period of service.
tremely complex mathematical expressions. Disciplined 5. Like many other military programs, there are abso-
use of these expressions is beyond the computational lute real-time deadlines for the computation. The com-
capacity of both the human programmer and current putation will consist primarily of periodic processes,
computer systems. There is progress in this area, but it but the number of those processes that will be required,
is very slow, and we are far from being able to handle and the computational requirements of each process,
even small software systems. With current techniques cannot be predicted in advance because they depend

1328 Communications #ofthe ACM December 1985 Volume 28 Number 12


Computer Risks Forum

on target characteristics. The resources available for scheduling at runtime or by preruntime scheduling. In
computation cannot be predicted in advance. We can- practice, efficiency and predictability require some pre-
not even predict the “worst case” with any confidence. runtime scheduling. Schedules for the worst-case load
6. The weapon system will include a large variety of are often built into the program. Unless one can work
sensors and weapons, most of which will themselves out worst-case real-time schedules in advance, one can
require a large and complex software system. The suite have no confidence that the system will meet its dead-
of weapons and sensors is likely to grow during devel- lines when its service is required.
opment and after deployment. The characteristics of 6. All of our experience indicates that the difficulties
weapons and sensors are not yet known and are likely in building software increase with the size of the sys-
to remain fluid for many years after deployment. The tem, with the number of independently modifiable sub-
result is that the overall battle-management software systems, and with the number of interfaces that must
system will have to integrate a software system signifi- be defined. Problems worsen when interfaces may
cantly larger than has ever been attempted before. The change. The consequent modifications increase the
components of that system will be subject to independ- complexity of the software and the difficulty of making
ent modification. a change correctly.

III. Implications of these problem characteristics IV. Conclusion


Each of these characteristics has clear implications on All of the cost estimates indicate that this will be the
the feasibility of building battle-management software most massive software project ever attempted. The sys-
that will meet the President’s requirements. tem has numerous technical characteristics that will
1. Fire-control software cannot be written without make it more difficult than previous systems, inde-
making assumptions about the characteristics of enemy pendent of size. Because of the extreme demands on
weapons and targets. This information is used in deter- the system and our inability to test it, we will never be
mining the recognition algorithms, the sampling pe- able to believe, with any confidence, that we have suc-
riods, and the noise-filtering techniques. If the system ceeded. Nuclear weapons will remain a potent threat.
is developed without the knowledge of these character-
istics, or with the knowledge that the enemy can
change some of them on the day of battle, there are Why conventional software development
likely to be subtle but fatal errors in the software. does not produce reliable programs
2. Although there has been some real progress in the
area of “fail-soft” computer software, I have seen no I. What is the conventional method?
success except in situations where (a) the likely failures The easiest way to describe the programming method
can be predicted on the basis of past history, (b) the used in most projects today was given to me by a
component failures are unlikely and are statistically in- teacher who was explaining how he teaches program-
dependent, (c) the system has excess capacity, (d) the ming. “Think like a computer,” he said. He instructed
real-time deadlines, if any, are soft, i.e., they can be his students to begin by thinking about what the com-
missed without long-term effects. None of these is true puter had to do first and to write that down. They
for the required battle-management software. would then think about what the computer had to do
3. No large-scale software system has ever been in- next and continue in that way until they had described
stalled without extensive testing under realistic condi- the last thing the computer would do. This, in fact, is
tions. For example, in operational software for military the way I was taught to program. Most of today’s text-
aircraft, even minor modifications require extensive books demonstrate the same method, although it has
ground testing followed by flight testing in which battle been improved by allowing us to describe the com-
conditions can be closely approximated. Even with puter’s “thoughts” in larger steps and later to refine
these tests. bugs can and do show up in battle condi- those large steps to a sequence of smaller steps.
tions The inability to test a strategic defense system
under field conditions before we actually need it will 11.Why this method leads to confusion
mean that no knowledgeable person would have much This intuitively appealing method works well-on
faith in the system. problems too small to matter. We think that it works
4. It is not unusual for software modifications to be because it worked for the first program that we wrote.
made in the field. Programmers are transported by heli- One can follow the method with programs that have
copter to Navy ships: debugging notes can be found on neither branches nor loops. As soon as our thinking
the walls of trucks carrying computers that were used reaches a point where the action of the computer must
in Vietnam. It is only through such modifications that depend on conditions that are not known until the pro-
software becomes reliable. Such opportunities will not gram is running, we must deviate from the method by
be available in the 36-66 minute war to be fought by a labeling one or more of the actions and remembering
strategic defense battle-management system. how we would get there. As soon as we introduce loops
5. Programs of this type must meet hard real-time into the program, there are many ways of getting to
deadlines reliably. In theory, this can be done either by some of the points and we must remember all of those

December 1985 Volume 28 Number 12 Communications of the ACM 1329


Computer Risks Forum

ways. As we progress through the algorithm, we recog- was not based on the expected execution sequence.
nize the need for information about earlier events and I would be happy to be shown some.
add variables to our data structure. We now have to Other methods are discussed in advanced courses, a
start remembering what data mean and under what few good textbooks, and scientific meetings, but most
circumstances data are meaningful. programmers continue to use the basic approach of
As we continue in our attempt to “think like a com- thinking things out in the order that the computer will
puter,” the amount we have to remember grows and execute them. This is most noticeable in the mainte-
grows. The simple rules defining how we got to certain nance (deficiency correction) phase of programming.
points in a program become more complex as we
branch there from other points. The simple rules defin- VI. How do we get away with this inadequate
ing what the data mean become more complex as we approach?
find other uses for existing variables and acid new vari- It should be clear that writing and understanding very
ables. Eventually, we make an error. Sometimes we large real-time programs by “thinking like a computer”
note that error: sometimes it is not found until we test. will be beyond our intellectual capabilities. How can it
Sometimes the error is not very important; it happens be that we have so much software that is reliable
only on rare or unforeseen occasions. In that case, we enough for us to use it? The answer is simple; program-
find it when the program is in use. Often, because one ming is a trial and error craft. People write programs
needs to remember so much about the meaning of each without any expectation that they will be right the first
label and each variable, new problems are created time. They spend at least as much time testing and
when old problems are corrected. correcting errors as they spent writing the initial pro-
gram. Large concerns have separate groups of testers to
III. What is the effect of concurrency on this method? do quality assurance. Programmers cannot be trusted to
In many of our computer systems there are several test their own programs adequately. Software is re-
sources of information and several outputs that must be leased for use, not when it is known to be correct, but
controlled. This leads to a computer that might be when the rate of discovering new errors slows down to
thought of as doing many things at once. If the se- one that management considers acceptable. Users learn
quence of external events cannot be predicted in ad- to expect errors and are often told how to avoid the
vance, the sequence of actions taken by the computer is bugs until the program is improved.
also not predic:table. The computer may be doing only
one thing at a time, but as one attempts to “think like a VII. Conclusion
computer,” one finds many more points where the ac- The military software that we depend on every day is
tion must be c’onditional on what happened. in the past. not likely to be correct. The methods that are in use in
Any attempt to design these programs by thinking the industry today are not adequate for building large
things through in the order that the compu-ter will exe- real-time software systems that must be reliable when
cute them leads to confusion and results in systems first used. A drastic change in methods is needed.
that nobody can understand completely.

IV. What is the effect of multiprocessing? The limits of software engineering methods
When there is more than one computer in a system, the
software not only appears to be doing more than one I. What is software engineering research?
thing at a time, it really is doing many things at once. We have known for 25 years that our programming
There is no sequential program that one can study. Any methods are inadequate for large projects. Research in
attempt to “think like the computer system” is ob- software engineering, programming methodology, soft-
viously hopeless. There are so many possibilities to ware design, etc., looks for better tools and methods.
consider that only extensive testing can begin to sort The common thrust of results in these fields is to re-
things out. Even after such testing, we have incidents duce the amount that a programmer must remember
such as one that happened on a space shuttle flight when checking and changing a program.
several years ago. The wrong combination of sequences Two main lines of research are (1) structured pro-
occurred and prevented the flight from starting. gramming and the use of formal program semantics and
(2) the use of formally specified abstract interfaces to
V. Do professional programmers really use this hide information about one module (work assignment)
approach? from the programmers who are working on other parts.
Yes. I have had occasion to study lots of practical soft- A third idea, less well understood but no less impor-
ware and to discuss programs with lots of professional tant, is the use of cooperating sequential processes to
programmers. In recent years many programmers have help deal with the complexities arising from concur-
tried to improve their working methods using a variety rency and multiprogramming. By the late 1970s the
of software design approaches. However, when they get basic ideas in software engineering were considered
down to writing executable programs, they revert to “motherhood” in the academic community. Nonethe-
the conventional way of thinking. I have yet to find a less, examinations of real programs revealed that actual
substantial program in practical use whose structure programming practice, especially for military systems.

1330 Communications of the ACM December 1985 Volume 28 Number 12


Computer Risks Forum

had not been changed much by the publication of the matical model behind such documents and can follow a
academic proposals. systematic procedure to document all necessary re-
The gap between theory and practice was large and quirements decisions. Unfortunately, it is hard to make
growing. Those espousing structured approaches to soft- the decisions that must be made to write such a docu-
ware were certain that it would be easy to apply their ment. We often do not know how to make those deci-
ideas to the problems that they faced in their daily sions until we can play with the system. Only when we
work. They doubted that programs organized according have built a similar system before is it easy.to deter-
to the principles espoused by academics could ever mine the requirements in advance. It is worth doing,
meet the performance constraints on “real” systems. but it is not easy.
Even those who claimed to believe in these principles We know how to decompose complex systems into
were not able to apply them consistently. modules when we know the set of design decisions that
In 1977 the management of the Naval Research Labo- must be made in the implementation. Each of these
ratory in Washington, D.C., and the Naval Weapons must be assigned to a single module. We can do that
Center in China Lake, California, decided that some- when we are building a system that resembles a system
thing should be done to close the gap. They asked one we built before. When we are solving a totally new
of the academics who had faith in the new approach problem, we will overlook difficult design decisions.
(myself) to demonstrate the applicability of those meth- The result will be a structure that does not fully sepa-
ods by building, for the sake of comparison, a second rate concerns and minimize complexity.
version of a Navy real-time program. The project, now We know how to specify abstract interfaces for mod-
known as the Software Cost Reduction project @CR), ules. We have a set of standard notations for use in that
was expected to take two to four years. It is still going task. Unfortunately, it is very hard to find the right
Oil. interface. The interface should be an abstraction of the
The project has made two things clear: (1) much of set of all alternative designs. We can find that abstrac-
what the academics proposed can be done: (2) good tion only when we understand the alternative designs.
software engineering is far from easy. The methods re- For example. it has proved unexpectedly hard to design
duce, but do not eliminate, errors. They reduce, but do an abstract interface that hides the mathematical model
not eliminate, the need for testing. of the earth’s shape. We have no previous experience
with such models and no one has designed such an
II. What should we do and what can we do? abstraction before.
The SCR work has been based on the following pre- The common thread in all these observations is that,
cepts. even with sound software design principles, we need
1. The software requirements should be nailed down broad experience with similar systems to design good,
with a complete. black-box requirements document be- reliable software.
fore software design is begun.
2. The system should be divided into modules using IV. Will new programming languages make much
information-hiding (abstraction) before writing the pro- difference?
gram begins. Because of the very large improvements in productivity
3. Each module should have a precise, black-box, that were noted when compiler languages were intro-
formal specification before writing the program begins. duced, many continue to look for another improvement
4. Formal methods should be used to give precise by introducing better languages. Better notation always
documentation. helps, but we cannot expect new languages to provide
5. Real-time systems should be built as a set of coop- the same magnitude of improvement that we got from
erating sequential processes, each with a specified pe- the first introduction of such languages. Our experience
riod and deadline. in SCR has not shown the lack of a language to be a
6. Programs should be written using the ideas of major problem.
structured programming as taught by Harlan Mills. Programming languages are now sufficiently flexible
We have demonstrated that the first four of these that we can use almost any of them for almost any task.
precepts can be applied to military software by doing it. We should seek simplifications in programming lan-
The documents that we have written have served as guages. but we cannot expect that this will make a big
models for others. We have evidence that the models difference.
provide a most effective means of technology transfer.
We have not yet proved that these methods lead to V. What about programming environments?
reliable code that meets the space and time constraints. The success of UNIX@ as a programming development
We have found that every one of these precepts is eas- tool has made it clear that the environment in which
ier to pronounce than to carry out. Those who think we work does make a difference. The flexibility of
that software design will become easy, and that errors UNIX@ has allowed us to eliminate many of the time-
will disappear, have not attacked substantial problems. consuming housekeeping tasks involved in producing
large programs. Consequently. there is extensive re-
III. What makes software engineering hard? search in programming environments. Here, too, I ex-
We can write software requirements documents that pect small improvements can be made by basing tools
are complete and precise. We understand the mathe- on improved notations but no big breakthroughs. Prob-

December 1985 Volume 28 Number 12 Commur~ications of the ACM 1331


Computer Risks Forum

lems with our programming environment h(ave not as a set of problems, the second defines AI as a set of
been a major impediment in our SCR work. techniques. The first definition has a sliding meaning,
In the Middle Ages, it was thought that arithmetic re-
VI. Why software engineering research will not make quired intelligence. Now we recognize it as a mechani-
the SD1 goals attainable cal act. Something can fit the definition of Al-l today,
Although 1 believe that further research on software but. once we see how the program works and under-
engineering methods can lead to substantial improve- stand the problem, we will not think of it as AI any-
ments in our ability to build large real-time software more.
systems, this work will not overcome the difficulties It is quite possible for a program to meet one defini-
inherent in the plans for battle-management computing tion and not the other. If we build a speech-recognition
for SDI. Software engineering methods do not eliminate program that uses Bayesian mathematics rather than
errors. They do not eliminate the basic differences be- heuristics, it is Al-l but not AI-Z. If we write a rule-
tween software technology and other areas of engineer- based program to generate parsers for precedence gram-
ing. They do not eliminate the need for extensive test- mars using heuristics, it will be AI-2 but not Al-l be-
ing under field conditions or the need for opportunities cause the problem has a known algorithmic solution.
to revise the system while it is in use. h4ost important, Although it is possible for work to satisfy both defini-
we have learned that the successful application of these tions, the best Al-l work that I have seen does not use
methods depends on experience accumulat’ed while heuristic or rule-based methods. Workers in AI-1 often
building and maintaining similar systems. There is no use traditional engineering and scientific approaches.
body of experilence for SD1 battle management, They study the problem, its physical and logical con-
straints, and write a program that makes no attempt to
VII. Conclusion mimic the way that people say they solve the problem.
1 am not a modest man. I believe that I have as sound
and broad an understanding of the problems of software III. What can we learn from AI that will help us build
engineering as anyone that 1 know. If you gave me the the battle-management computer software?
job of building the system, and all the resources that I I have seen some outstanding Al-l work. Unfortu-
wanted, I could not do it. I don’t expect the next 20 nately, 1 cannot identify a body of techniques or tech-
years of research to change that fact. nology that is unique to this field. When one studies
these AI-1 programs one finds that they use sound sci-
entific approaches, approaches that are also used in
Artificial intelligence and the Strategic Defense work that is not called AI. Most of the work is problem
Initiative specific, and some abstraction and creativity are re-
quired to see how to transfer it. People speak of AI as if
I. Introduction it were some magic body of new ideas. There is good
One of the technologies being considered for use in the work in AI-1 but nothing so magic it will allow the
SD1 battle-management software is artificial intelli- solution of the SD1 battle-management problem.
gence (AI). Researches in AI have often made big I find the approaches taken in AI-Z to be dangerous
claims, and it is natural to believe that one should use and much of the work misleading. The rules that one
this technology for a problem as difficult as SD1 battle obtains by studying people turn out to be inconsistent,
management. In this section, I argue that one cannot incomplete. and inaccurate. Heuristic programs are de-
expect much help from AI in building reliable battle- veloped by a trial and error process in which a new
management software. rule is added whenever one finds a case that is not
handled by the old rules. This approach usually yields
II. What is artificial intelligence? a program whose behavior is poorly understood and
Two quite different definitions of AI are in common use hard to predict. AI-Z researchers accept this evolution-
today. ary approach to programming as normal and proper. I
AI-l: The use of computers to solve problems that trust such programs even less than I trust unstructured
previously could be solved only by applying human conventional programs. One never knows when the
intelligence. program will fail.
AI-2: The use of a specific set of programrning tech- On occasion I have had to examine closely the claims
inques known as heuristic or rule-based programming. of a worker in AI-2. I have always been disappointed.
In this approach human experts are studied to deter- On close examination the heuristics turned out to han-
mine what heuristics or rules of thumb they use in dle a small number of obvious cases but failed to work
solving problems. Usually they are asked fo:r their rules. in general. The author was able to demonstrate spectac-
These rules are then encoded as input to a program ular behavior on the cases that the program handled
that attempts to behave in accordance with them. In correctly. He marked the other cases as extensions for
other words, the program is designed to solve a problem future researchers. In fact, the techniques being used
the way that humans seem to solve it. often do not generalize and the improved program
It should be :noted that the first definition defines AI never appears.

1332 Communications of the ACM December 1985 Volume 28 Number 12


Computer Risks Forum

IV. What about expert systems? have seen programmers “patch” programs by literally
Lately we have heard a great deal about the success of patching the paper tape.
a particular class of rule-based systems known as ex- The automatic programming system considered by
pert systems. Every discussion cites one example of Gorn in that paper was an assembler in today’s termi-
such a system that is being used to solve real problems nology. All that one would have to do with his auto-
by people other than its developer. That example is matic programming system would be to write a code
always the same-a program designed to find configu- such as CLA. and the computer would automatically
rations for VAX computers. To many of us. that does punch the proper holes in the tape. In this way, the
not sound like a difficult problem: it sounds like the programmer’s task would be performed automatically
kind of problem that is amenable to algorithmic solu- by the computer.
tion because VAX systems are constructed from well- In later years the phrase was used to refer to program
understood, well-designed components. Recently I read generation from languages such as IT, FORTRAN, and
a paper that reported that this program had become a ALGOL. In each case, the programmer entered a speci-
maintenance nightmare. It was poorly understood, fication of what he wanted, and the computer produced
badly structured, and hence hard to change. I have the program in the language of the machine.
good reason to believe that it could be replaced by a In short, automatic programming always has been a
better program written using good software engineering euphemism for programming with a higher-level lan-
techniques instead of heuristic techniques. guage than was then available to the programmer. Re-
SD1 presents a problem that may be more difficu!t search in automatic programming is simply research in
than those being tackled in AI-1 and expert systems. the implementation of higher-level programming lan-
Workers in those areas attack problems that now re- guages.
quire human expertise. Some of the problems in SD1
are in areas where we now have no human experts. Do III. Is automatic programming feasible? What does that
we now have humans who can, with high reliability mean?
and confidence, look at missiles in ballistic flight and Of course automatic programming is feasible. We have
distinguish warheads from decoys? known for years that we can implement higher-level
programming languages. The only real question was the
V. Conclusion efficiency of the resulting programs. Usually, if the in-
Artificial intelligence has the same relation to intelli- put “specification” is not a description of an algorithm,
gence as artificial flowers have to flowers. From a dis- the resulting program is woefully inefficient. I do not
tance they may appear much alike, but when closely believe that the use of nonalgorithmic specifications as
examined they are quite different. I don’t think we can a programming langauge will prove practical for sys-
learn much about one by studying the other. AI offers tems with limited computer capacity and hard real-
no magic technology to solve our problem. Heuristic time deadlines. When the input specification is a de-
techniques do not yield systems that one can trust. scription of an algorithm, writing the specification is
really writing a program. There will be no substantial
change from our present capability.
Can automatic programming solve
the SD1 software problem? IV. Will automatic programming lead to more reliable
programs?
I. Introduction The use of improved languages has led to a reduction in
Throughout my career in computing I have heard peo- the amount of detail that a programmer must handle
ple claim that the solution to the software problem is and hence to an improvement in reliability. However,
automatic programming. All that one has to do is write extant programming languages, while far from perfect,
the specifications for the software, and the computer are not that bad. Unless we move to nonalgorithmic
will find a program. Can we expect such technology to specifications as an input to these systems, I do not
produce reliable programs for SDI? expect a drastic improvement to result from this re-
search.
II. Some perspective on automatic programming On the other hand, our experience in writing non-
The oldest paper known to me that discusses automatic algorithmic specifications has shown that people make
programming was written in the 1940s by Saul Gorn mistakes in writing them just as they do in writing
when he was working at the Aberdeen Proving Ground. algorithms, The effect of such work on reliability is not
This paper, entitled “Is Automatic Programming Feasi- yet clear.
ble?” was classified for a while. It answered the ques-
tion positively. V. Will automatic programming lead to a reliable SD1
At that time, programs were fed into computers on battle-management system?
paper tapes. The programmer worked the punch di- I believe that the claims that have been made for auto-
rectly and actually looked at the holes in the tape. I matic programming systems are greatly exaggerated.

December 1985 Volume 28 Number 12 Communications of the ACM 1333


Computer Risks Forum

Automatic programming in a way that is substantially have no basis for complete confidence. Even in pure
different from what we do today is not likely to become mathematics there are many cases of proofs that were
a practial tool for real-time systems like thlz SD1 battle- published with errors. Proofs tend to be reliable when
management .iystem. Moreover, one of the basic prob- they are small, well polished, and carefully read. They
lems with SD1 is that we do not have the information to are not reliable when they are large, complex. and not
write specifications that we can trust. In such a situa- read by anyone but their author. That is what would
tion, automatic programming is no help at all. happen with any attempt to prove even a portion of the
SD1 software correct.

Can program verification make the SIX software V. What about concurrency?
reliable? The proof techniques that are most practical are re-
stricted to sequential programs. Recent work on proofs
1. Introduction of systems of concurrent processes has focused on
Programs are mathematical objects. They have mean- message-passing protocols rather than processes that
ings that are mathematical objects. Program specifica- cooperate using shared memory. There are some tech-
tions are mathematical objects. Should it not be possi- niques that can be applied with shared memory, but
ble to prove that a program will meet its specification? they are more difficult than proofs for sequential pro-
This has been a topic of research now for at least 25 grams or proofs for programs that are restricted to com-
years. If we can prove programs correct, could we not munication over message channels.
prove the SD1 software correct? If it was proved correct,
could we not rely on it to defend us in time of need? VI. What about programs that are supposed to be
robust?
II. What can we prove? One of the major problems with the SD1 software is that
We can prove that certain small programs in special it should function with part of its equipment destroyed
programming languages meet a specification. The word or disabled by enemy action. In 20 years of watching
small is a relative one. Those working in verification attempts to prove programs correct, I have seen only
would consider a so&line program to be large. In dis- one attempt at proving that a program would get the
cussing SD1 software, we would consider a 500-line pro- correct answer in the event of a hardware failure. That
gram to be small. The programs whose proofs I have proof made extremely unrealistic assumptions. We
seen have been well under 500 lines. They have per- have no techniques for proving the correctness of pro-
grams in the presence of unknown hardware failures
formed easily defined mathematical tasks. They have
been written without use of side effects, an important and errors in input data.
tool in practical programs.
VII. Conclusion
Proofs for programs such as a model of the earth’s
It is inconceivable to me that one could provide a con-
gravity field do not have these properties. Such pro-
vincing proof of correctness of even a small portion of
grams are larger: their specifications are not as neat or
the SD1 software. Given our inability to specify the re-
mathematically formalizable. They are often written in
quirements of the software, I do not know what such a
programming languages whose semantics are difficult
proof would mean if 1 had it.
to formalize. I have seen no proof of such a program.
Not only are manual proofs limited to programs of
small size with mathematical specifications; machine Is SD10 an efficient way to fund worthwhile
theorem provers and verifiers are also strictly limited research?
in the size of the program that they can handle. The
size of programs that they can handle is several orders The subject of this section is not computer science.
of magnitude different from the size of the programs Instead, it discusses an issue of concern to all modern
that would constitute the SD1 battle-management sys- scientists: the mechanism that determines what re-
tem. search will be done. These remarks are based on nearly
20 years of experience with DOD funding as well as
III. Do we havl? the specifications? experience with other funding mechanisms in several
In the case of SD1 we do not have the speci-fications countries.
against which a proof could be applied. Even if size
were not a problem, the lack of specifications would I. The proposal
make the notion of a formal proof meaningless. If we In several dicussions of this problem, I have found peo-
wrote a formal specification for the software, we would ple telling me they knew the SD10 software could not
have no way of proving that a program that satisfied be built but felt the project should continue because it
the specification would actually do what we expected it might fund some good research. In this section I want
to do. The spelnification itself might be wrong or incom- to discuss that point of view.
plete.
II. The moral issue
IV. Can we have faith in proofs? There is an obvious moral issue raised by this position.
Proofs increase our confidence in a program, but we The American people and their representatives have

1334 Communications of the ACM December 1985 Volume 28 Number 12


Computer Risks Forum

been willing to spend huge amounts of money on this who end up making funding decisions in DOD are very
project because of the hope that has been offered. Is it often unsuccessful researchers, unsuccessful system
honest to take the attitude expressed above? Is it wise builders, and people who enter bureaucracy immedi-
to have our policymakers make decisions on the as- ately after their education. We call them technocrats.
sumption that such a system might be possible? I am Technocrats are bombarded with weighty volumes of
not an expert on moral or political issues and offer no highly detailed proposals that they are ill prepared to
answers to these questions. judge. They do not have the time to study and think;
they are forced to rely on the advice of others. When
III. Is DOD sponsoring of software research effective? they look for advice. they look for people that they
I can raise another problem with this position. Is the know well, whether or not they are people whose areas
SD10 an effective way to get good research done? of expertise are appropriate, and whether or not they
Throughout many years of association with DOD I have have unbiased positions on the subject.
been astounded at the amount of money that has been Most technocrats are honest and hard-working, but
wasted in ineffective research projects. In my first con- they are not capable of doing what is needed. The re-
tact with the U.S. Navy, I watched millions of dollars sult is a very inefficient research program. I am con-
spent on a wild computer design that had absolutely no vinced that there is now much more money being spent
technical merit. It was abandoned many years after its on software research than can be usefully spent. Very
lack of merit became clear. As a consultant for both the little of the work that is sponsored leads to results that
Navy and a number of contractors, I have seen expen- are useful. Many useful results go unnoticed because
sive software research that produces very large reports the good work is buried in the rest.
with very little content. I have seen those large, expen-
sive reports put on shelves and never used. I have seen VI. The SD10
many almost identical efforts carried out independently The SD10 is a typical organization of technocrats. It is
and redundantly. I have seen talented professionals so involved in the advocacy of the program that it can-
take approaches that they considered unwise because not judge the quality of the research involved.
their “customers” asked for it. I have seen their cus- The SD10 panel on battle-management computing
tomers take positions they do not understand because contains not one person who has built actual battle-
they thought that the contractors believed in them. management software. It contains no experts on trajec-
In computer software, the DOD contracting and fund- tory computations, pattern recognition, or other areas
ing scheme is remarkably ineffective because the bu- critical to this problem. All of its members stand to
reaucrats who run it do not understand what they are profit from continuation of the program.
buying.
VII. Alternatives
IV. Who can judge research? If there is good research being funded by SDIO, that
The most difficult and crucial step in research is iden- research has an applicability that is far broader than
tifying and defining the problem. Successful research- the SD1 itself. It should be managed by teams of scien-
ers are usually those who have the insight to find a tists and engineers as part of a well-organized research
problem that is both solvable and important. program. There is no need to create a special organiza-
For applied research, additional judgment is needed. tion to judge this research. To do so is counterproduc-
A problem may be an important one in theory, but tive. It can only make the program less efficient.
there may be restrictions that prevent the use of its
solution in practice. Only people closely familiar with VIII. Conclusion
the practical aspects of the problem can judge whether There is no justification for continuing with the pre-
or not they could use the results of a research project. tense that the SD1 battle-management software can be
Applied research must be judged by teams that in- built just to obtain funding for otherwise worthwhile
clude both successful researchers and experienced sys- programs. DOD’S overall approach to research manage-
tem engineers. They must have ample opportunity to ment requires a thorough evaluation and review by
meet, be fully informed, and have clearly defined re- people outside the DOD.
sponsibilities.

V. Who judges research in DOD?


Although there are a few notable exceptions within Author’s Present Address: David Large Parnas, Department of Computer
Science. University of Victoria. P.O. Box 1700. Victoria. British Colum-
DOD, the majority of those who manage its applied re- bia. Canada V8W 2Y2.
search program are neither successful researchers nor
people with extensive system-building experience.
There are outstanding researchers who work for DOD,
but most of them work in laboratories, not in the fund- Permission to copy without fee all or part of this material is granted
ing agencies. There are many accomplished system provided that the copies are not made or distributed for direct commer-
builders who work for DOD, but their managers often cial advantage, the ACM copyright notice and the title of the publication
and its date appear. and notice is given that copying is by permission of
consider them too valuable to allow them to spend the Association for Computing Machinery. To copy otherwise. or to
their time reviewing research proposals. The people republish. requires a fee and/or specific permission.

December 1985 Volume 28 Number 12 Communications of the ACM 1335

You might also like