From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: * X-Spam-Status: No, score=1.6 required=5.0 tests=BAYES_00,INVALID_DATE, MSGID_SHORT,TO_NO_BRKTS_PCNT autolearn=no autolearn_force=no version=3.4.4 Xref: utzoo comp.software-eng:3729 comp.lang.ada:3981 Path: utzoo!attcan!uunet!tron!hobbs From: hobbs@tron.UUCP (Elizabeth T. Hobbs) Newsgroups: comp.software-eng,comp.lang.ada Subject: reuse information Keywords: reuse Message-ID: <597@tron.UUCP> Date: 15 Jun 90 16:53:00 GMT Organization: Westinghouse Electronic Systems Group, Baltimore, MD, USA List-Id: Some weeks ago... In addition to references, I also asked people for their opinions and experiences with reuse. A good number of people asked me for this information (in addition to or instead of references). Here is a summary of what I received. I've taken the liberty of paraphrasing the replies. I hope I've kept the original meaning of the replies. Please let me know if I have not! Experiences and Opinions: From David Thomas: In Mr. Thomas's opinion, one important consideration for reusing code is whose code is going to be reused. Simply being instructed to reuse code doesn't mean code reuse will or should happen. It is better to rewrite poorly written code. From Brad Cox: There is a large group of companies who provide software components for reuse at various levels, from chip-level objects (in Smalltalk and Objective-C) to environments of rack-level objects (ex: Word and Excel). [Additional reuse articles were posted in May by Mr. Cox further discussing these components.] From Ralph Johnson: He has been using object-oriented programming to build reusable software at the University of Illinois for such domains as operating systems, optimizing compilers, and user interfaces. Mr. Johnson believes that reusable software can be developed for almost any domain, the major problem is that reusable software is very difficult to write. Just because code runs doesn't mean its reusable and the only way to discover its reusability is to try and reuse it. In Mr. Johnson's opinion, converting code into a good reuse library will take many man-years but the pay-off is worth it. From Mats Weber: Reusable components like lists, AVL trees, large integer handling, matrix operations, linear programming, etc., have been successfully used in a number of experimental projects. They were written as needed and made as general as possible (generality being more important than performance). In Mr. Weber's opinion, Booch's taxonomy was not found to be very useful particularly with respect to concurrency. On another note, one of the worst problems encountered, Mr Weber says, was with compiler quality, especially with the handling of generics. Making reuse happen requires alot of experience with the language (at least with Ada), and it is hard to develop the component correctly the first time for all of its potential uses. From Pat (no last name given): In Pat's opinion, software reuse on a large scale is currently impossible. Few people are thinking about how to capture individuals' experience from crafting software to be able to reuse this experience. Most reuse consists of cataloging/ storing/reusing functions/subroutines. Until people can codify the models experts use to relate these functions/subroutines there will be no success in software reuse. A few excerpts from mail from someone who I will keep anonymous: To support reusability, a system must provide a way of finding both exact and close matches. Also, a means for making the component understandable must be given. And, there must be a way to change a close match to an exact one. Some characteristics of easily reusable components: they have a narrow scope and operate on simple or generic data. They are well documented. They are designed such that areas that are likely to be modified are isolated or abstracted. In some cases, the cost of reusing software will exceed the cost of creating the software. This may occur if information about a reusable component is inaccurate, the programmer makes a poor choice when selecting a component to reuse, or the component is not as reusable as originally thought. The most complex components give the biggest payoff but are more difficult to develop for reuse and to actually reuse; the simplest components are, naturally, easier to develop and reuse, but provide the smallest payoff. The fixed ceiling on this payoff is less than 25%. There are legal considerations as well. Can software that is developed for a contract (where the customer owns all of software) be reused? What about public domain software that prohibits its use for gain? More Information: From Pat: The US Army is sponsoring a project called "Reusable Ada Packages for Information Systems Development" (RAPID). Information about the RAPID project can be obtained from Capt. Jack Rothrock at (703) 285-9043. The Software Engineering Institute (SEI) has a project in domain analysis that is examining the possibility of applying this sort of analysis to the problem of identifying reusable resources (not just code). At some time an annotated bibliography should be available. (The contact given was Sholom Cohen at (412) 268-5872.) Dr. Richard S. D'Ippolito from SEI was reccommended as a good person to talk to about a sound engineering basis for doing software in general. A company called American Management Systems has a set of models of MISs that are built in COBOL and are being used successfully. AMS can be reached at (703) 841-6000. From Cornelia Boldyreff: Check out the ESPRIT project. There is an article in the November IEEE Software, 1989. More References: Here are some I missed the first time! From Kenny Rubin: A paper of his entitled "Reuse in Software Engineering: An Object-Oriented Perspective", Proceedings of the IEEE COMPCON, Spring, 1990, San Francisco, CA. From Ralph Johnson: A paper of his entitled "The Object is Reuse". From Steve Barry: A "management-level" article in Nov. 15, 1989 Datamation, p. 87 by Jeff Moad entitled "Cultural Barriers Slow Reusability". Some geographic locations of people replying to my original questions and of people requesting references: Maryland, California, New York, Pennsylvania, Illinois, Massachusetts, Ohio, Texas, Switzerland, Netherlands, Finland, Australia, England, Canada, Sweden, Scotland, and Japan. I was amazed at the number of people interested in reuse and the wide diversity in the planned use/definition/goals of "reuse". Sorry for the delay in summarizing this information. I have, unfortunately, been busy with other things. Terri hobbs@tron.bwi.wec.com