Article View: comp.sw.components
Article #1Re: Reuse Discussion Topics (Was: Reuse and Software Components)
From: Ralph Johnson
Date: Tue, 27 Oct 1992 17:20
Date: Tue, 27 Oct 1992 17:20
37 lines
2675 bytes
2675 bytes
jhull@thor.den.mmc.com (Joseph F. -Jeff- Hull) writes: >What constitutes a "good" object. What makes one design "better" than >another? What makes one piece of software more or less reusable than >another? How _should_ documentation differ for a reusable piece of >software from a project-specific piece? How _should_ test materials >differ? First of all, when it comes to reuse, "object" is too small a level of granularity. The thing that makes an integrated circuit so reusable is that it is a member of a family of compatible integrated circuits. There are standard interfaces so that any of them can be mixed with any of the others. Thus, we really need to be defining abstract interfaces as well as sets of objects that meet them. Successful systems of software reuse, such as user interface toolkits, are good examples of this. I have a paper on this subject called "Reusing Object-Oriented Design" that you can get by anonymous ftp from st.cs.uiuc.edu in /pub/papers/reusing-oo-design.ps. The best way to measure the reusability of something is to try to reuse it. Get a bunch of experimental subjects, assign a task to each of them, and have them try to carry out the task using the software. (Or without it, since there should be a control group). This is harder than it looks, since you will need to measure how long it takes for novices to reuse the software and also how well it takes for experts. It can take months or even years to train experts, so experiments like this could be very expensive. However, I haven't seen any other measure of reusability that I would believe. Documentation for reusable software must tell you have to use it. This is different from telling you how it works. It is useful to explain how it works, too, but lots of people just want to solve their problems without learning a lot of theory. I just presented a paper at OOPSLA called "Documenting Frameworks using Patterns" that shows one way to do this. A similar way (and one I like) is given by the MacApp Cookbook. Ralph Johnson -- University of Illinois at Urbana-Champaign
Technical Details
Message-ID:
<BwsItJ.Lx5@cs.uiuc.edu>Path:
arc1-ca.pugleaf.net!sparky!uunet!ogicse!uwm.edu!zaphod.mps.ohio-state.edu!moe.ksu.ksu.edu!ux1.cso.uiuc.edu!cs.uiuc.edu!johnsonReferences:
<1992Oct20.080514.19795@unix.brighton.ac.uk> <1992Oct26.214138.29217@den.mmc.com>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!ogicse!uwm.edu!zaphod.mps.ohio-state.edu!moe.ksu.ksu.edu!ux1.cso.uiuc.edu!cs.uiuc.edu!johnson From: johnson@cs.uiuc.edu (Ralph Johnson) Newsgroups: comp.sw.components Subject: Re: Reuse Discussion Topics (Was: Reuse and Software Components) Message-ID: <BwsItJ.Lx5@cs.uiuc.edu> Date: 27 Oct 92 17:20:07 GMT Article-I.D.: cs.BwsItJ.Lx5 References: <1992Oct20.080514.19795@unix.brighton.ac.uk> <1992Oct26.214138.29217@den.mmc.com> Organization: University of Illinois, Dept. of Comp. Sci., Urbana, IL Lines: 37