Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!mcsun!cernvax!chx400!ugun2b!cui!oscar From: oscar@cui.unige.ch (Oscar Nierstrasz) Newsgroups: comp.software-eng Subject: Re: Reusability considered harmful??(!!) Keywords: Reusability, Division of Labor Message-ID: <4842@cui.unige.ch> Date: 31 Jan 91 09:30:43 GMT References: <6108@stpstn.UUCP> Organization: University of Geneva, Switzerland Lines: 51 cox@stpstn.UUCP (Brad Cox) writes: >Could it be that we (reusability proponents) are shooting ourself in >the foot with the word, "reusability", just as the AI community did >themselves in with a term of their own choosing, "artificial >intelligence"? There is another problem, which is that "reusability" is only part (albeit an important one) of the story. That is why I feel that it is better to emphasize "software components" and even "component-oriented software construction". Even if you don't reuse a thing, it is important to organize applications in terms of interlocking components as this enhances robustness, maintainability and portability (though one could argue that these are all instances of "micro-reusability"). The emphasis on "software components" also addresses the gap between "object-oriented" programming (i.e., at the "chip" level) and software construction without programming (as we know it). A component can be anything from a humble int to a customizable office system. Furthermore, the emphasis on "software construction" gets us away from the idea that we must always be "programming" to build applications (another thing wrong with the term "object-oriented programming"). Finally, there is another danger in the word "reusability", which simply has to do with the fact that reusability does not come for free. Anybody who hears about a technology that supports reusability will naturally say, "Yes, that's for me! I would sure like to reuse software rather than build it from scratch!" Except the other half of the story is that someone must build the reusable components. Unfortunately this half of the story is not well understood. At OOPSLA/ECOOP 90 there was an enlightening episode one day when there was a morning panel on object-oriented vs structured analysis and an afternoon session on frameworks. In the morning session, *no one* addressed the issue of reusability, and in the afternoon session, no one had any methodology for designing frameworks of reusable components (beyond the insight that the process is iterative). So, by talking about components rather than just reusability, we suggest that this is the correct way to think about software at various levels of abstraction (and that there is more to the story). By talking about reusability, however, we only point to an abstract goal that is very hard to realize in practice. We are still looking for the right view of software components that will actually give us the degree of reusability that we seek. ------------------------------------------------------------------- Dr. O.M. Nierstrasz | Tel: 41 (22) 787.65.80 University of Geneva | Fax: 735.39.05 Centre Universitaire d'Informatique | Home: 733.95.68 12 rue du Lac, CH-1207 Geneva | E-mail: oscar@cui.unige.ch SWITZERLAND | oscar@cgeuge51.bitnet -------------------------------------------------------------------