comp.lang.ada
 help / color / mirror / Atom feed
From: ijd@camcon.co.uk (Ian Dickinson)
Subject: Re: Software Reuse  --  do we really know what it is ? (long)
Date: Mon, 29-Jun-87 05:16:32 EDT	[thread overview]
Date: Mon Jun 29 05:16:32 1987
Message-ID: <668@titan.camcon.co.uk> (raw)
In-Reply-To: 4661@utah-cs.UUCP

> Xref: camcon comp.lang.ada:166 comp.lang.misc:164
 
Clearly from foregoing discussions,  software re-use at the code level does
present significant problems:
	* there is a trade-off - sometimes quite severe - between generality
	  and efficiency

	* we can never be quite sure of the routine doing exactly what we need
	  in a given circumstance

	* management of libraries is difficult, as is retrieval

	* routines in one language are not portable (without effort) to
	  another.

So what's the _real_ problem?  I think that we are trying to define re-use at 
too *low* a level.  What we really want to re-use are ideas - algorithms,
standard ways of performing defined operations, etc,.

Hence a solution:  we somehow encode _abstractions_ of the ideas and place
these in the library - in a form which also supplies some knowledge about the
way that they should be used.  The corollary of this is that we need more
sophisticated methods for using the specifications in the library.  
(Semi)-automated transformations seem to be the answer to me.

Thus we start out with a correct (or so assumed) specification,  apply
correctness-preserving transormation operators,  and so end up with a correct
implementation in our native tongue (Ada, Prolog etc, as you will).  The
transformations can be interactively guided to fit the precise circumstance.

The advantages are:
	* library specifications are easier to understand,  hence easier to
	  maintain

	* the library can contain a smaller number of more general routines,
	  since essentially similar operations can be encoded as one library
	  entry

	* the additional knowledge can be used to provide an intelligent
	  interface for browsing and retrieval

	* routines can be transformed to many different languages.


I see this field as essentially a synthesis between AI and software 
engineering,  and potentially of benefit to both.

[Credit]  I originally got this idea from my supervisor: Dr Colin Runciman
@ University of York.  I have been tinkering around with it in my spare time
a bit since then.  Who knows,  maybe one day I'll get to work on it
seriously (dream on :-) !!).
-- 
| Ian Dickinson    Cambridge Consultants Ltd, AI group    (0223) 358855[U.K.] |
| uucp:    ...!seismo!mcvax!ukc!camcon!ijd               or:  ijd%camcon.uucp |
>>  To dance is to live,  but the dance of life requires many strange steps  <<
>>      Disclaimer:  All opinions expressed are my own (surprise!).          <<

  reply	other threads:[~1987-06-29  9:16 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1987-06-16  1:55 comments on Ed Berard's S/W reuse part 5 CONTR47
1987-06-18  8:46 ` Software Reuse -- do we really know what it is ? craig
1987-06-22  0:50   ` Lawrence Crowl
1987-06-22 15:40     ` Stanley Shebs
1987-06-22 18:59       ` Lawrence Crowl
1987-06-23 17:28         ` Stanley Shebs
1987-06-29  9:16           ` Ian Dickinson [this message]
1987-07-04 21:19             ` Software Reuse -- do we really know what it is ? (long) John B. Nagle
     [not found]             ` <glacier.17113>
1987-07-07  2:21               ` Software Reuse (short title) pase
     [not found]           ` <titan.668>
1987-07-06  5:28             ` Software Reuse -- do we really know what it is ? (long) David C. DiNucci
1987-07-07 15:18               ` Automatic implementation of abstract specifications debray
1987-07-09 22:40                 ` Automatic implementation of abstrac ron
1987-07-14 16:00                 ` Automatic implementation of abstract specifications Edward Hayes
1987-07-02  7:55 ` Software Reuse -- do we really know what it is ? Drew Adams
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox