[comp.software-eng] Design Methodologies - Fact or Illusion

neil@comp.lancs.ac.uk (Neil Haddley) (04/25/89)

Design Methodologies - Fact or Illusion.
----------------------------------------

I would greatly appreciate references to any papers, or books, which 
discuss the merits and demerits of Design Methodologies, and also
any good references to the Design Process (Support).

as a taste of what I am hoping for:


"So called design methodologies for software systems are no such thing 
 and are simply notations to express a pre-formulated software design ...
 it is profitable to turn our attention to building design support systems
 to assist with the design process itself."

"Science [and Software Development] is an essentially anarchistic enterprise:
 theoretical anarchistic is more humanitarian and more likely to encourage
 progress than its law-and-order alternatives."

"Software Development support tools do not always have to turn around
 formal notations being used to capture the intermediate results of the
 design process, which then provides input data for expert-system type
 advisors."

Many thanks in advance

Neil 

-- 
EMAIL:	neil@comp.lancs.ac.uk		| Post: University of Lancaster,
UUCP:	...!mcvax!ukc!dcl-cs!neil	|	Department of Computing,
					|	Bailrigg, Lancaster, UK.

crm@romeo.cs.duke.edu (Charlie Martin) (04/28/89)

Okay, I'll bite.

In article <747@dcl-csvax.comp.lancs.ac.uk> neil@comp.lancs.ac.uk (Neil Haddley) writes:
>
>Design Methodologies - Fact or Illusion.
>----------------------------------------
>
>I would greatly appreciate references to any papers, or books, which 
>discuss the merits and demerits of Design Methodologies, and also
>any good references to the Design Process (Support).
>

In terms of the merits and demerits of one methodology over another,
you're asking a very hard question.  Most or all of the benefits of a
methodology are cognitive in nature (the software neither knows nor
cares if it was designed with a methodology -- it's only the people
involved who pay any attention.) As such, experiments to measure the
relative effects of different methodologies are difficult to do,
expensive, and produce results characteristic of the squishy sciences,
i.e., pretty equivocal.  I could, if pressed, dig up a bibliography I
worked on some years ago that attempted to capture all the papers that
had actual quantative results or solid case studies (or for that
matter, *bad* case studies) but I think I can promise you'd be
disappointed by the amount there is. 

The advantages of having *some* methodology over no methodology
whatsoever are much less equivocal, but still hard to measure.
Experiments *using skilled designers* tend not to show much difference
between using a formal design methodology and using their normal
methods.  But all this seems to mean is that the skilled designers
have evolved their own notations in which to design. 

The need for notations of some sort for design seems unequivocal: in
fact, almost all forms of design (not just software design) use some
kind of notation and thereby use something like what we call a design
methodology.  (See, for example, _Reflective Practice_ by Donald Shoen
at MIT.) These notations are useful both in teaching the skills used
in design, and in doing design; people tend to use the notations and
methods they first learned, whether they are doing architecture,
electronics, or software design. 

>"So called design methodologies for software systems are no such thing 
> and are simply notations to express a pre-formulated software design ...
> it is profitable to turn our attention to building design support systems
> to assist with the design process itself."

This appears to me to be mostly nonsense, but without a little closer
exploration of what was meant by the quote I can't feel certain.  But
every study of the cognitive processes of design I'm aware of have
included some kind of design notation that is used while the design
is being done.  This quote could be interpreted to mean that the
design process occurs in some deeper level of cognition; once a
fragment of design is composed in the mind, it is then translated out
into some notation.  If one is using a formal design methodology, then
the notation may be a formal design notation.

Thus one could claim that the "real" design happens independently of
the expression in a notation.  But design is a process of creation
FOLLOWED BY expression in some notation FOLLOWED BY reflection and
testing against constraints FOLLOWED BY revision and re-creation when
deficiencies are discovered.  This process seems to depend on having a
notation.  

(What IS the "design process itself" independent of the notations used
to express design?)

The advantage of software design notations and the formal
methodologies based on them (if there is one) probably has to do with
others being able to read and proof the design documents; this is
shared by the formal blueprints prepared by architects after they
scratch out a sketch on the back of a napkin.  But the process of
preparing blueprints is still an essential part of the design: errors,
inconsistencies, and plain stupid stuff like only having left 21
inches for the back door are revealed in the formal scale drawings. 

> "Science [and Software Development] is an essentially anarchistic
> enterprise: theoretical anarchistic is more humanitarian and more
> likely to encourage progress than its law-and-order alternatives."

This sounds like a plausible aphorism -- a little long, but plausible
-- and I'm damned if I can figure out what it is supposed to tell us
about design or science.  Does it mean that science is essentially
like russian christian anarchism, i.e., if we leave everyone alone
they'll all have Good Motives and do Good Things because they are all
Essentially Good?  More seriously, does it suggest that science is
done best in an environment in which everyone makes up their own
notations and shorthand without some regulation or force of commonly
accepted practice?  Considering the number of times that a new
notation or cognitive model (like compartmental models in physiology,
or some of the other model techniques in, for example, control theory
[block diagrams]) has made it easier to teach and led to new results,
it doesn't seem very plausible.  (What are mathematics and chemical
equations but design notations?)

> "Software Development support tools do not always have to turn
>  around formal notations being used to capture the intermediate results
>  of the design process, which then provides input data for
>  expert-system type advisors."

I guess I have to agree with this because it says "do not *always*
have to turn around" but I can't think of any support tool which
doesn't, and have a little trouble imagining one that doesn't.  And I
certainly don't think that "SD support tools ... always have to turn
around formal notations ... which then provide input data for expert
systems" which seems to be the antithesis of the sentence.  I can
think of many sorts of support tools which might have no expert system
involved at all.


To answer your direct question, you might read Brooks' Mythical Man
Month, and there is lots of information on the design process overall
in the design literature, which you'd probably find in the nearest
library associated with an architecture or industrial design school --
or at least that's my guess; do they break things up like that in the
UK?   Although only a few of the papers actually are germane to your
question, there is a book called _Issues in software engineering
education_ (Fairley and Freeman, eds., Springer Verlag 1988(?)) which
covers some questions in teaching software design.  Have a look at Ray
Buhr's work, or (ahem) the paper I co-authored.  Our paper also
mentions some other areas of the design literature.
Charlie Martin (crm@cs.duke.edu,mcnc!duke!crm) 

dave@lethe.UUCP (Dave Collier-Brown) (04/29/89)

  For a good explanation of both the power and difficulty of formal
methods in specification (and design), have a look at:

  Wl'adsl'aw M. Turski and Thomas S. E. Maibaum, "The Specification of
Computer Programs", Reading, Mass (Addison-Wesley), 1987, 263pps + references.

  To summarize, it took me 6 months to read the book, having taken classes 
from Tom in the (distant!) past.  The mental and notational tools therein
are usefull, but requires considerable thought and effort.  Now, tell me again
that brand X SDE or brand Y methodology  is going to solve problems in 
**this** area?  Pfaugh!

--dave (see note below) c-b
  To be fair, I once worked on an SDE that looked after the bookkeeping, not
the methods and tools.  It was a **very** worthwhile approach.  


-- 
David Collier-Brown,  | {toronto area...}lethe!dave
72 Abitibi Ave.,      |  Joyce C-B:
Willowdale, Ontario,  |     He's so smart he's dumb.
CANADA. 223-8968      |