From: jubo@rwthi3.informatik.rwth-aachen.de (Juergen Boerstler)
Newsgroups: comp.sw.components
Subject: Re: Reuse Discussion Topics (Was: Reuse and Software Components)
Date: 5 Nov 92 10:48:46 GMT
Organization: Rechnerbetrieb Informatik  /  RWTH Aachen

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

>baragry@latcs1.lat.OZ.AU (Jason M Baragry) writes:
[... stuff deleted ...]
>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.

Right, if you assume inheritance=subtyping!
In "designing" this way you will loose control over your "architecture",
since most of the dependencies you introduce are not explicitely visible in
your interfaces. Ok, there are a lot of tools that help (e.g. browsers), but
to find the places of interest (i.e. which methods are executed) is a mess.

>Common interfaces eliminate the need for module interconnection languages.

This is a definite NO!! How do you want to define common interfaces without
a common (module interconnection) language? 

>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.

How is this different from "... put a Wrapper around ..." (see above)?

>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.

And exactly to communicate the important aspects of such things is the essence
and purpose of MILs (module interconnection languages). Your common interface
is useless, if the consumer does not know what "you have to plug an appliance
in before it will work" means.

>>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

jubo

****************************************************************************
* Ju"rgen Bo"rstler             * e-mail:                                  *
* RWTH Aachen                   *    jubo@rwthi3.informatik.rwth-aachen.de *
* Lehrstuhl fuer Informatik III *                                          *
* Ahornstrasse 55               *                                          *
* W-5100 Aachen                 * phone: +49/ 241/ 80-21310                *
* Germany                       * fax:               -21329                *
****************************************************************************

--
****************************************************************************
* Ju"rgen Bo"rstler             * e-mail:                                  *
* RWTH Aachen                   *    jubo@rwthi3.informatik.rwth-aachen.de *
* Lehrstuhl fuer Informatik III *                                          *