🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sw.components
Article #11

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

#11
From: Ralph Johnson
Date: Tue, 03 Nov 1992 13:21
73 lines
4375 bytes
baragry@latcs1.lat.OZ.AU (Jason M Baragry) writes:

>When I open one of my electronics books or undergrad electronics notes and 
>look at the index what do I see ?? Architectures.

>This is a AND gate, etc
>This is an AMPLIFIER
>This is an ACTIVE FILTER
>This is a PHASE LOCKED LOOP
>and so on and so on.

>If I open a Comp Sci book I find don't see architectures I see paradigms.

>This is how to do Object Orientated
>This is how to do Rule Based Approach
>etc.

Perhaps you have different books than I do.  My Comp Sci books say
things like "This is a compiler" and "This is a B-tree".  Only the
programming language books fit your characterization of them.

I've been in groups that talk a lot about architecture lately.  The
more I talk about it, the less sure I am about the definition.  Certainly 
the TI data book isn't about architecture, but rather describes a library
of components.  I guess you are talking about EE textbooks, which I would
think would be more "architecture-oriented".  How can you tell whether a
paper is about architecture or is about implementation?  About a component
library?  About a design paradigm?  People talk about things like the
"client-server" architecture, and I agree with you that this isn't really
an architecture.  But why do I (and apparently you) feel that way?
What *exactly* is an architecture?

>Consequently, when I design an electronic circuits (and I have designed
>electronic circuits) I think about objects with a specified and understood
>functionality. "I need an amplifier here or a voltage regulator there."
>Although I don't exactly know the specifics of the interface of these 
>components, I can design with them in mind and add bits to my design to 
>suit the implementation specifics of the componentry.

This is exactly the way I program in Smalltalk.  I don't HAVE to know the
specifics of the interfaces of the components because they all use
standard interfaces.  I can put a Wrapper around any VisualCOmponent and
can stick any number of them in a VisualComposite.  I don't have to know
the parameters of the display routine or how to determine the location of
a component.  Since they are all VisualComponents, they all have the same
parameters and use the same operation for returning the location.

Common interfaces eliminate the need for module interconnection languages.
A MIL is way of hooking components together even when they do not have
similar interfaces.  You still have to do a bit of work to connect them.

A great example of a standard interface is the electric system.  In the
U.S., all houses have 110 volts 60 hz current, and a consumer can buy
appliances from any store, hook them into any house, and they all work.
The consumer doesn't have to know very much about electricity, other than
things like "you have to plug an appliance in before it will work" and
"don't stick a fork in the wall socket".  An engineer designing a toaster
(i.e. someone designing a new component) has to know a lot about 
electricity, but the average consumer (i.e. someone useing the component)
does not.  EXACTLY the same is true of software.

>I agree that standard interfaces are required, software bus technology is 
>another area needing much research, but I dont think SE designers are going to
>utilize these interfaces until they change the way the think about designing
>systems.

My only complaint with this is that there are already a lot of us who
have changed the way we think about design systems and are using a component
based approach.  Of course, we are currently only a small fraction of the
total, but the numbers are growing.  New technologies, like the Parts system
from Digitalk, will increase the numbers of people who think this way.

Ralph Johnson -- University of Illinois at Urbana-Champaign
Technical Details
Message-ID: <Bx56G1.8pr@cs.uiuc.edu>
Path: arc1-ca.pugleaf.net!sparky!uunet!zaphod.mps.ohio-state.edu!uwm.edu!ux1.cso.uiuc.edu!cs.uiuc.edu!johnson
References: <1992Oct29.182814.17630@den.mmc.com> <6597@dove.nist.gov> <1992Nov3.050919.8442@latcs1.lat.oz.au>

Show Full Headers
Complete Article Headers
Newsgroups: comp.sw.components
Path: arc1-ca.pugleaf.net!sparky!uunet!zaphod.mps.ohio-state.edu!uwm.edu!ux1.cso.uiuc.edu!cs.uiuc.edu!johnson
From: johnson@cs.uiuc.edu (Ralph Johnson)
Subject: Re: Reuse Discussion Topics (Was: Reuse and Software Components)
Message-ID: <Bx56G1.8pr@cs.uiuc.edu>
Organization: University of Illinois, Dept. of Comp. Sci., Urbana, IL
References: <1992Oct29.182814.17630@den.mmc.com> <6597@dove.nist.gov> <1992Nov3.050919.8442@latcs1.lat.oz.au>
Date: Tue, 3 Nov 1992 13:21:36 GMT
Lines: 74