Article View: comp.sw.components
Article #118Re: Reasons for low ADT reuse
From: Anton Rang
Date: Fri, 22 Sep 1989 17:17
Date: Fri, 22 Sep 1989 17:17
72 lines
4486 bytes
4486 bytes
In article <11963@boulder.Colorado.EDU> scotth@boulder.Colorado.EDU (Scott Henninger) writes:
> I claim the dead end in
>software reuse is cognitive overload. It will take thousands or
>millions of components to make a truly useable software reuse
>environment. There is no way that a human can keep track of what is
>available at that kind of scale.
The trick is to let the computer help with this, and find a
reasonable way to organize the components. There were those who
claimed in the 17th century that widespread printing would lead to a
disaster--libraries would be overloaded and it would be impossible to
find the texts on a given subject.
What happened? Library science started appearing. It tackles
exactly the same problem which will occur with re-use in software
engineering: millions of components, all doing slightly different
things. The library on campus here has somewhere between 1 and 2
million books; yet, when I go to look for a book on finite automata, I
can find a set of them easily. We need to develop a similar
organizational technique for software components.
>The cognitive overload also comes in understanding what a component does
>for you. Do you realize how hard it is to get novice programmers to
>understand what a stack does? And this is one of the simplest
>constructs in computer science.
Yes, but it gets easier to understand new data structures as one
goes along. I've only been programming for 8 years or so, but I can
look at a data structure description in Knuth and understand it in an
hour or two (as a general rule :-). I can even define what I need
("a priority queue with fast removal of the first element and a fast
way to merge two queues") and go find a data structure for it. Of
course, there aren't enough books which describe the structures....
>I also must emphasize that the problems of reuse ARE LANGUAGE
>INDEPENDENT.
Definitely true. I reuse a good chunk of my Pascal code...just
change the names of the structures and key fields. Now, a nice way to
do this automatically (without manual editing) would be nice--that's
what Ada gives you. But the basic problem isn't going through and
making the minor fixes, it's figuring out what you can reuse and how
to do it.
[ stuff about why "standard" doesn't necessarily mean "best" ]
I agree and disagree with this, I guess. Having a standard is good
because it means that components are more portable. Right now, I have
a lot of Pascal libraries using VAX Pascal-specific constructs (i.e.
modules); moving these to other systems is possible, but quite a bit
of work. On the other hand, I can move Ada code around without any
problems (barring compiler bugs/features :-).
Using the library analogy, most of the books here are in English.
There are some in German, Spanish, and other languages. If someone
wants to take the time, they can translate them, and it will take less
effort than writing them from scratch. On the other hand, if I knew
how to read all the languages in the library, I could use every book
as a potential source.
Similarly, I think more attention should be paid to interfacing
different languages together. Calling Pascal or FORTRAN code from Ada
ought to be trivial, as long as certain Ada-specific semantics (such
as exception handling) are handled right. Right now, I only know of
one operating system (VMS) which lets me mix languages freely without
worrying too much about their idiosyncrasies. It might be nice to
have more development environments which handle multiple languages.
Just my thougts....
+----------------------------------+------------------+
| Anton Rang (grad student) | rang@cs.wisc.edu |
| University of Wisconsin--Madison | |
+----------------------------------+------------------+
"You are in a twisty little maze of Unix versions, all different."
Technical Details
Message-ID:
<RANG.89Sep22121754@derby.cs.wisc.edu>Path:
arc1-ca.pugleaf.net!utzoo!attcan!uunet!bloom-beacon!usc!gem.mps.ohio-state.edu!uwm.edu!uwvax!rangReferences:
<11928@boulder.Colorado.EDU> <6536@hubcap.clemson.edu> <11963@boulder.Colorado.EDU>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!bloom-beacon!usc!gem.mps.ohio-state.edu!uwm.edu!uwvax!rang From: rang@cs.wisc.edu (Anton Rang) Newsgroups: comp.sw.components Subject: Re: Reasons for low ADT reuse Message-ID: <RANG.89Sep22121754@derby.cs.wisc.edu> Date: 22 Sep 89 17:17:54 GMT References: <11928@boulder.Colorado.EDU> <6536@hubcap.clemson.edu> <11963@boulder.Colorado.EDU> Sender: news@spool.cs.wisc.edu Organization: UW-Madison CS department Lines: 72 In-reply-to: scotth@boulder.Colorado.EDU's message of 22 Sep 89 15:52:31 GMT