🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sw.components
Article #1

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

#1
From: Ralph Johnson
Date: Tue, 27 Oct 1992 17:20
37 lines
2675 bytes
jhull@thor.den.mmc.com (Joseph F. -Jeff- Hull) writes:

>What constitutes a "good" object.  What makes one design "better" than
>another?  What makes one piece of software more or less reusable than
>another?  How _should_ documentation differ for a reusable piece of
>software from a project-specific piece?  How _should_ test materials
>differ?

First of all, when it comes to reuse, "object" is too small a level of
granularity.  The thing that makes an integrated circuit so reusable
is that it is a member of a family of compatible integrated circuits.
There are standard interfaces so that any of them can be mixed with
any of the others.  Thus, we really need to be defining abstract interfaces
as well as sets of objects that meet them.  Successful systems of software
reuse, such as user interface toolkits, are good examples of this.
I have a paper on this subject called "Reusing Object-Oriented Design"
that you can get by anonymous ftp from st.cs.uiuc.edu in 
/pub/papers/reusing-oo-design.ps. 

The best way to measure the reusability of something is to try to reuse
it.  Get a bunch of experimental subjects, assign a task to each of them,
and have them try to carry out the task using the software.  (Or without
it, since there should be a control group).  This is harder than it looks,
since you will need to measure how long it takes for novices to reuse
the software and also how well it takes for experts.  It can take months
or even years to train experts, so experiments like this could be very 
expensive.  However, I haven't seen any other measure of reusability
that I would believe.

Documentation for reusable software must tell you have to use it.  This
is different from telling you how it works.  It is useful to explain how
it works, too, but lots of people just want to solve their problems
without learning a lot of theory.  I just presented a paper at OOPSLA
called "Documenting Frameworks using Patterns" that shows one way to
do this.  A similar way (and one I like) is given by the MacApp Cookbook.

Ralph Johnson  -- University of Illinois at Urbana-Champaign
Technical Details
Message-ID: <BwsItJ.Lx5@cs.uiuc.edu>
Path: arc1-ca.pugleaf.net!sparky!uunet!ogicse!uwm.edu!zaphod.mps.ohio-state.edu!moe.ksu.ksu.edu!ux1.cso.uiuc.edu!cs.uiuc.edu!johnson
References: <1992Oct20.080514.19795@unix.brighton.ac.uk> <1992Oct26.214138.29217@den.mmc.com>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!ogicse!uwm.edu!zaphod.mps.ohio-state.edu!moe.ksu.ksu.edu!ux1.cso.uiuc.edu!cs.uiuc.edu!johnson
From: johnson@cs.uiuc.edu (Ralph Johnson)
Newsgroups: comp.sw.components
Subject: Re: Reuse Discussion Topics (Was: Reuse and Software Components)
Message-ID: <BwsItJ.Lx5@cs.uiuc.edu>
Date: 27 Oct 92 17:20:07 GMT
Article-I.D.: cs.BwsItJ.Lx5
References: <1992Oct20.080514.19795@unix.brighton.ac.uk> <1992Oct26.214138.29217@den.mmc.com>
Organization: University of Illinois, Dept. of Comp. Sci., Urbana, IL
Lines: 37