文档介绍:A RATIONAL DESIGN PROCESS:
HOW AND WHY TO FAKE IT
David L. Parnas
Computer Science Department
University of Victoria
Victoria BC V8W 2Y2 Canada
and
Computer Science and Systems Branch
Naval Research Laboratory
Washington DC 20375 USA
and
Paul C. Clements
Computer Science and Systems Branch
Naval Research Laboratory
Washington DC 20375 USA
I. THE SEARCH FOR THE PHILOSOPHER'S STONE: WHY DO WE
WANT A RATIONAL DESIGN PROCESS?
A perfectly rational person is one who always has a good reason for what he does. Each step taken can
be shown to be the best way to get to a well defined goal. Most of us like to think of ourselves as rational
professionals. However, to many observers, the usual process of designing software appears quite irra-
tional. Programmers start without a clear statement of desired behavior and implementation constraints.
They make a long sequence of design decisions with no clear statement of why they do things the way
they do. Their rationale is rarely explained. Many of us are not satisfied with such a design process. That
is why there is research in software design, programming methods, structured programming and related
topics. Ideally, we would like to derive our programs from a statement of requirements in the same sense
that theorems are derived from axioms in a published proof. All of the methodologies that can be con-
sidered "top down" are the result of our desire to have a rational, systematic way of designing software.
This paper brings a message with both bad news and good news. The bad news is that, in our opinion,
we will never find the philosopher's stone. We will never find a process that allows us to design software
in a perfectly rational way. The good news is that we can fake it. We can present our system to others
as if we had been rational designers and it pays to pretend do so during development and maintenance.
1
II. WHY WILL A SOFTWARE DESIGN "PROCESS" ALWAYS BE AN
ID