Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!uwm.edu!ux1.cso.uiuc.edu!ux1.cso.uiuc.edu!m.cs.uiuc.edu!johnson From: johnson@m.cs.uiuc.edu Newsgroups: comp.sw.components Subject: Re: What is a reusable software compone Message-ID: <71800004@m.cs.uiuc.edu> Date: 28 Jul 90 04:41:00 GMT References: <27705@athertn.Atherton.COM> Lines: 24 Nf-ID: #R:athertn.Atherton.COM:27705:m.cs.uiuc.edu:71800004:000:1241 Nf-From: m.cs.uiuc.edu!johnson Jul 27 23:41:00 1990 I think that Paul Sander's B-tree abstraction is a pretty good reusable component. However, I think that Bill Ogden has a good point. Bill's basic point is that it is really more important to reuse specifications than it is to reuse implementations. Of course, we need to provide implementations for our specifications, but the user should think mostly of the specification and not the implementation. B-trees are an implementation, while almost-constant functions are specification. Further, I take the point of view held by the object-oriented community that it is not particular kinds of components that are important, but rather sets of components and their relationships. The advantage of concentrating on specification is that you end up with lots of components that share the same specification. When you learn one, you have learned something about all of them. Also, it becomes easier to replace one component with another because they will share specification. Thus, it becomes easier to write utilities that work with any of the related components. This is not all that relevant to Paul's original article, but I saw a soapbox, and couldn't resist getting on it. Ralph Johnson -- University of Illinois at Urbana-Champaign