[comp.lang.ada] Software reuse -- how do we reuse

craig@comp.lancs.ac.uk (Craig Wylie) (07/01/87)

The recent discussion on software reuse has highlighted several
points that I would like to take further. The question of what it
is has been quite well covered - basically it is what ever you want
it to be regarding the reuse of any part of the the software design process.

I would like now to concentrate on one small area of reuse, reuse of 
Software Components, and more particularly the recovery of a component from
some form of catalogue. Many of the replies, both to me personally,
and to the net have cited 'Libraries', 'Browsers', and 'Intelligent Systems'
as methods of retrieving software.  I think that the analogy to lending
libraries and online bibliographic retrieval is not a poor one but that
it does require considerably more thought.

Consider an example,  in my research into distribution and software
engineering I can go to a terminal, call up a bibliographic data
base, and search on terms such as 'Reuse', 'Software Engineering',
'Distribution', 'Concurrency' etc..
The fact that these terms are very high level makes the retrieval
process much easier, authors may well have included these terms in their
keywords or abstracts. The provision of a synonyms dictionary will enhance
the system.

How can we provide similar power for components ? Obviously the keywords
of a text can be mimiced by the provision of keywords from the authors of
the software component (or the authors of the design work or any other
object that might be reused), however there is no point in
retrieving on whether the program contains a FOR loop.
The automatic generation of keywords might also help, if not definitive it
might certainly act as an aid. Yet how can we do this from languages such as 
Ada, it is far from proven that it is possible.

One of the great powers of bibliographic retrieval is the fact that any
paper retrieved will have a list of references, so if the paper found isn't
exactly applicable then perhaps one of the referenced papers will be.
How might this be mimiced?

If we are to continue to use the library analogy then we must derive
a way for talking about programs that is accessible to all. Remember even
Math is not perfect - there can be more than one mathematical description
of the same piece of software.

Fuzzy logic and browsers have their place, but rather than citing them as
answers we should be looking on them more as techniques once we know what
we are dealing with.


Sorry about the rather bitty nature of this article  --  it has been a 
flow of thought article, the views are entirely my own.


Craig
-- 
UUCP:	 ...!seismo!mcvax!ukc!dcl-cs!craig| Post: University of Lancaster,
DARPA:	 craig%lancs.comp@ucl-cs          |	  Department of Computing,
JANET:	 craig@uk.ac.lancs.comp           |	  Bailrigg, Lancaster, UK.
Phone:	 +44 524 65201 Ext. 4476   	  |	  LA1 4YR