Path: utzoo!attcan!uunet!wuarchive!mailrus!jarvis.csri.toronto.edu!qucis!dalamb From: dalamb@qucis.queensu.CA (David Lamb) Newsgroups: comp.sw.components Subject: Re: What should a component library loo Message-ID: <423@qusuntrc.queensu.CA> Date: 23 Nov 89 15:25:59 GMT References: <130200020@p.cs.uiuc.edu> <7096@hubcap.clemson.edu> Reply-To: dalamb@qucis.queensu.CA (David Lamb) Organization: Queen's University, Kingston Ontario Lines: 17 From johnson@p.cs.uiuc.edu: > In particular, he said "It seems to me that separation of functional > specification from implementation is at least a Good Thing, [...] > This is a very common claim. I disagree with it. This is only important > in a library of data structures, Separation of functional specification from implementation is the most widely-perceived example of separation of properties guaranteed not to change from properties allowed to change. The typical examples are all from data structures, but the principle is more general. The separation gives the implementor and maintainer free to change things without having to rewrite lots of the rest of the system. Parnas has examples of device drivers, for example, where you need to write most of the software for a system before the engineers have pinned down the last detail of the hardware interface to the radar. The "abstract interface" for the radar device includes functional specifications, but also any other assumptions the device driver needs to make about its clients and vice-versa.