🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sw.components
Article #4

Re: Reuse Discussion Topics (Was: Reuse and Software Components)

#4
From: Ralph Johnson
Date: Fri, 30 Oct 1992 03:35
70 lines
4242 bytes
By the way, if you *really* want to start separate threads, you
will have to do it yourself, since I am too lazy, and my baudrate
is too slow, for me to do it myself.

jhull@thor.NoSubdomain.NoDomain (Joseph F. (Jeff) Hull) writes:

>johnson@cs.uiuc.edu (Ralph Johnson) writes:

>|> First of all, when it comes to reuse, "object" is too small a level of
>|> granularity.  

>One of the basic ideas that we are working with right now is that reuse
>needs to occur at several levels of granularity rather than just one.

>The lowest level of granularity that seems appropriate is represented by
>Grady Booch's Reusable Ada Components (as discussed in Software Components
>With Ada, Grady Booch, 1987, Benjamin/Cummings Publishing).  These include
>reusable stacks and queues, for example.  We refer to this as the "nuts and
>bolts" level of reusable software.

I come from the Smalltalk world.  Booch's components are a take-off from
the Smalltalk Collection classes.  The Collection classes are certainly
useful, and they provide a low level of reuse, but they don't provide 
anything like the reuse that you get from Model/View/Controller.  MVC is
a framework, not just a set of components, so you can not only reuse the
components that come with it, but you can easily extend it with new
components.  The cases that I've heard about with 80-90% reuse are ones
in which 

>DoD is urging the concept of "Domain-directed Reuse," by which they mean
>analyzing some particular applications domain, e.g., Command, Control,
>Communication and Intelligence (aka C3I); developing a generic architecture
>and vocabulary for the domain; and developing reusable software based on
>"standard elements" of the domain as defined by that architecture and 
>vocabulary.

DOD is urging it, but other people have been doing it for many years.
That is what user interface frameworks like MVC or MacApp or InterViews
are.  Except that they have really got it backward.  In my experience,
you find the architecture and vocabulary IN THE PROCESS OF building the
reusable software.  This is the waterfall fallacy all over again.

Small components are the easy part.  In the Smalltalk world, saying that
we should reuse data structure classes is about as novel as saying that
we should use higher-level languages.  The hard part is making the larger
scale frameworks.

>|> The best way to measure the reusability of something is to try to reuse
>|> it.  ...

>I'm afraid I didn't communicate my question well enough.  What I was trying 
>to ask was, "What criteria can we observe and measure to determine that one 
>piece of software is better than another?" and also, "What techniques, 
>practices and behaviors should/must we encourage on the part of software 
>developers so the components they develop will be more reusable?"

I understood your (first)  question perfectly.  I realize that you don't
like my answer.  Everybody wants some simple metric by which they can
tell whether software is good, but no such metric exists.  If it ever 
does exist, it will have to be validated by comparing it against the
true measure of reusability.  If you want to tell whether one piece of
software is more reusable than another, reuse it and see.  At least there
is *some* way to measure reusability, even though it is pretty expensive.

My paper on "Documenting Frameworks using Patterns" is in the OOPSLA
proceedings which is the latest SIGPLAN Notices issue, or you can ftp
it from st.cs.uiuc.edu as /pub/st80_r41/hotdraw/HotDraw-documentation.ps,
which is a Postscript file.

Ralph Johnson -- University of Illinois at Urbana-Champaign
Technical Details
Message-ID: <Bwx0MG.AHv@cs.uiuc.edu>
Path: arc1-ca.pugleaf.net!sparky!uunet!think.com!sdd.hp.com!zaphod.mps.ohio-state.edu!wupost!cs.uiuc.edu!johnson
References: <1992Oct20.080514.19795@unix.brighton.ac.uk> <1992Oct26.214138.29217@den.mmc.com> <BwsItJ.Lx5@cs.uiuc.edu> <1992Oct29.182814.17630@den.mmc.com>

Show Full Headers
Complete Article Headers
Newsgroups: comp.sw.components
Path: arc1-ca.pugleaf.net!sparky!uunet!think.com!sdd.hp.com!zaphod.mps.ohio-state.edu!wupost!cs.uiuc.edu!johnson
From: johnson@cs.uiuc.edu (Ralph Johnson)
Subject: Re: Reuse Discussion Topics (Was: Reuse and Software Components)
Message-ID: <Bwx0MG.AHv@cs.uiuc.edu>
Organization: University of Illinois, Dept. of Comp. Sci., Urbana, IL
References: <1992Oct20.080514.19795@unix.brighton.ac.uk> <1992Oct26.214138.29217@den.mmc.com> <BwsItJ.Lx5@cs.uiuc.edu> <1992Oct29.182814.17630@den.mmc.com>
Date: Fri, 30 Oct 1992 03:35:03 GMT
Lines: 70