home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #30 / NN_1992_30.iso / spool / comp / software / 4889 < prev    next >
Encoding:
Internet Message Format  |  1992-12-11  |  3.6 KB

  1. Path: sparky!uunet!olivea!decwrl!pa.dec.com!nntpd2.cxo.dec.com!nntpd.lkg.dec.com!sousa.tay.dec.com!talent.ljo.dec.com!gibian
  2. From: gibian@talent.ljo.dec.com (Marc S. Gibian)
  3. Newsgroups: comp.software-eng
  4. Subject: Re: Request for reuse tool info
  5. Message-ID: <2311@sousa.tay.dec.com>
  6. Date: 11 Dec 92 17:43:38 GMT
  7. References: <ByMu6L.4LJ@cs.uiuc.edu> <1992Dec2.170110.6739@spectrum.xerox.com> <1992Dec4.100248.27137@netcom.com> <1992Dec4.231659.22445@mole-end.matawan.nj.us>
  8. Sender: newsa@sousa.tay.dec.com
  9. Reply-To: gibian@ljohub.enet.dec.com
  10. Organization: Digital Equipment Corporation
  11. Lines: 62
  12.  
  13.  
  14. Having spent a lot of time working in this area, I think that most
  15. software re-use efforts miss the point.  Let me expand on this a
  16. bit...
  17.  
  18. I see four basic goals for software re-use:
  19.  
  20.    1.  Decrease the cost of developing software.
  21.  
  22.    2.  Get software products to market faster.
  23.  
  24.    3.  Increase the productivity of software engineers.
  25.  
  26.    4.  Improve quality through re-use of well tested components.
  27.  
  28. The required re-use support varies widely based on the software development
  29. process being used.  By process, I mean how the various individuals that
  30. are involved with the development effort do their jobs.  For example, a
  31. major government contracting company I once worked for wrote into their
  32. contracts clauses that forced use of the classic waterfall methodology
  33. along with an emphasis on "requirements traceability".  This company's
  34. need was for re-use of everything from the functional definition 
  35. specifications all the way through the their software process to test
  36. case re-use.  
  37.  
  38. On the other hand, another company I worked for, a more mainstream platform
  39. vendor, used slightly more engineering discipline than total anarchy (The
  40. going joke was "yeah, we do design... that's the time between entering the
  41. building and getting logged onto your machine") where they were pretty
  42. effective at doing informal reuse of code.  The only problem in this latter
  43. case was that much of the reused code was very un-portable (bad news if you
  44. want to succeed in software these days) and its maintanence was on a "whoever
  45. last touched it, owns it" basis, making it hard to get a problem fixed once
  46. there was a second "owner".
  47.  
  48. What I find missing in most CASE tools, and all the time with re-use tools
  49. and methodologies, is that they are passive.  They require the engineer to
  50. explicitly search a database, know the ground rules for building designs,
  51. etc.  I believe that for re-use to realize its very real potential, as
  52. well as most CASE tools, is for them to become integrated active assistants.
  53. An example:
  54.  
  55. I start by using a design tool to start designing some software.  I would
  56. like the design tool to not just allow me to build my design, but also to
  57. constantly try to match portions of MY design against the pool of designs
  58. (and existing code and tests for those designs).  When it finds a "close"
  59. match, the design tool points out the match as a candidate for reuse, allowing
  60. me to evaluate whether it REALLY is a design that does what I need, and then
  61. incorporates the re-used design into the design I am creating.
  62.  
  63. I could give countless other examples, for instance problem reporting/tracking
  64. facilities, test creation, the actual code...
  65.  
  66. The key, though, is that the tools actively participate in the process, leaving
  67. me to focus only on my engineering of my product.  I don't need to learn tool
  68. after tool, I don't have to explicitly lookup reusable parts, but I still find
  69. and reuse those parts that fit my needs.
  70.  
  71. --
  72. Marc S. Gibian            email: gibian@talent.ljo.dec.com
  73. Principal Software Engineer    phone: (508) 486-6598
  74. Digital Equipment Corporation    fax:   (508) 486-6648  or (508) 486-6100
  75.