home *** CD-ROM | disk | FTP | other *** search
/ ftp.umcs.maine.edu / 2015-02-07.ftp.umcs.maine.edu.tar / ftp.umcs.maine.edu / pub / WISR / wisr4 / proceedings / detex / cox.detex < prev    next >
Text File  |  1992-04-28  |  9KB  |  157 lines

  1.   
  2. Planning The Software Industrial Revolution 
  3. Supply-side Economics of Software Reuse 
  4.  
  5.   
  6. Brad Cox 
  7. Information Age Consulting  
  8. 71230.647@@compuserve.com 
  9.  
  10.  
  11.                 Abstract
  12.  
  13. Software Reuse is like Nuclear Fusion. Both address major problems (software
  14. crisis, energy crisis). Both already work at certain (coarse) levels of
  15. granularity (shrinkwrapped applications, fusion weapons). And neither scales to
  16. smaller levels of granularity because of the same unresolved issue; the
  17. supply-side return-on-investment is negative. So long as there is no robust
  18. infrastructure capable of incentivizing people to invest in building truly
  19. reusable software, research on demand-side issues (languages, repositories,
  20. classification schemes) will continue to achieve disappointing results. 
  21.  
  22. An infrastructure for admistering a pay-by-use revenue stream for software is
  23. presented, which is loosely modeled after the role ASCAP/BMI play for the music
  24. industry.
  25.  
  26.  
  27.  
  28. 1  Position 
  29.  
  30. In 1982, a decade ago next June, I helped to initiate a large-scale 
  31. experimental study of whether software reuse could get at the root causes of
  32. the software crisis. This was not an academic study of a stripped down subset
  33. of the problem, but a well funded experiment on the largest possible scale. The
  34. experimental apparatus was a full-scale commercial enterprise, originally
  35. called PPI and later Stepstone. Its subject was the software development
  36. industry as a whole. I'll present interim conclusions of this unique experiment
  37. in the Practices section of this workshop.  And in the Research section, since
  38. my role of Chief Scientist made me responsible for key technical and scientific
  39. challenges in this endeavor, I'll present these challenges along with
  40. suggestions for further research.
  41.  
  42. The key conclusions of this experiment are a good news/bad news pair. The good
  43. news is that Stepstone's and its customers' experiences have left me more
  44. convinced than ever that software reuse can be a silver bullet for the software
  45. crisis, just as interchangeable parts were a silver bullet for the problems
  46. that armament consumers faced before the industrial revolution. The bad news is
  47. that these benefits will not come easily. Achieving them on a broad scale will
  48. require a paradigm shift, a software industrial revolution, comparable in
  49. magnitude and time-frame to the industrial revolution, with comparable trauma
  50. to well-entrenched value systems.
  51.  
  52. The software crisis is not over now that yet another decade has passed, nor
  53. will it over in the next decade or two. During the industrial revolution, the
  54. armories' pioneering attempts at interchangeable parts were consistent failures
  55. for twenty-five years and it took more than fifty years to build them
  56. routinely. This was for tangible goods that anyone could sense with their
  57. natural senses and which manufacturers could sell by the copy and thus
  58. guarantee a robust income stream. Although things do change faster today, the
  59. difficulties arising from software's peculiarities provide little grounds for
  60. believing that the software industrial revolution will proceed significantly
  61. faster.
  62.  
  63. Since this assessment may seem unduly pessimistic (and I certainly hope that
  64. events prove it wrong), allow me to use this workshop's title, Software Reuse,
  65. to emphasize the magnitude of the paradigm shift that we're facing. The very
  66. word, 'reuse', implies that we're talking about a waste product, a liability;
  67. something that garbage-pickers recycle and reuse. Certainly not an asset,
  68. something that quality-conscious engineers would pay good money to buy. People
  69. pay money for word processors, spreadsheets, and programming languages;
  70. tangible stuff that they can poke with a cursor and see it respond on the
  71. screen, and even then software piracy is a major concern. Small-granularity
  72. software components; the spreadsheet functions in Excel, the macros in Nisus,
  73. the subroutine libraries of Fortran or the Software-IC libraries of
  74. Objective-C; are waste products, not assets. Waste products are products that
  75. cannot be sold, just reused. At best they can be given away by hiding them
  76. inside something of tangible value such as a compiler. People only reuse stuff
  77. that is free, and even then whether they'll reuse it or throw it away is far
  78. from certain. The gut reaction that reuse evokes is "Not in my backyard!"
  79.  
  80. This is Obstacle  1, the fundamental non-technical socioeconomic problem that
  81. must be solved before other, admittedly more technically interesting problems,
  82. can have any but academic merit. The software reuse problem will be
  83. supply-limited, regardless of programming language, operating system, browser,
  84. repository or networking technology, so long as we have no crisp answer to the
  85. fundamental motivational question that any urchin in a souk will understand,
  86. ``Why should I build expensive reusable waste products when non-reusable ones
  87. are cheaper and faster?''.
  88.  
  89. I'll mention three additional obstacles, but they are all insignificant, almost
  90. negligible, compared to this one. Fred Brooks speaks of the
  91. complexity/mutability obstacle (Obstacle  2) and the intangibility obstacle
  92. (Obstacle  3) in his paper, No Silver Bullet.. The single-threadedness
  93. (Obstacle  4) of the Von Neumann machine architecture is also an obstacle in
  94. that it is the source of our obsessive concern that any component can crash an
  95. entire system.
  96.  
  97. But these three obstacles all have easy, i.e. technical, remedies, at least
  98. when considered individually in isolation from the others. The complexity
  99. obstacle has been successfully attacked in mature domains such as plumbing by
  100. organizing a broad and deep specialization of labor hierarchy, whose motive
  101. force is a robust market in pre-fabricated plumbing components. The
  102. intangibility obstacle can be addressed through tangibility technologies such
  103. as browsers and interpreters. We could also be doing far more than we are today
  104. with explicit software specification/testing tools, tools that make the
  105. external behavioral interface of intangible software components visible for
  106. inspection, regardless of their internal implementation. They play the role of
  107. Galileo's telescope, which by making the heavens accessible to scientific
  108. observation, brought on the demise of the myth and religion of the
  109. pre-Copernican philosophers. The single-threadedness obstacle can be at least
  110. partially addressed by adopting well known techniques, such as lightweight
  111. multi-tasking and exception handling, as mainstream concepts alongside the
  112. object-oriented technologies that are already in place today.
  113.  
  114. But compared to our inability to conceive of a commercially robust market in
  115. something as intangible as small-granularity software components, these
  116. obstacles are at best of minute interest to those who are allowed by their
  117. management to ignore pressing and far more fundamental problems.
  118.  
  119. In the practices section of this workshop, I'll present several possible
  120. avenues for putting software reuse on a commercially robust footing. These are
  121. based on analogies with other domains of human endeavor, such as the music
  122. industry, which has been face to face with the replicability obstacle for
  123. nearly a century.
  124.  
  125. In the research section I'll describe an inheritance-based software
  126. specification/testing technology that captures the abstract specification of
  127. large libraries of Software-ICs in separate tools called 'gauges'. The gauges
  128. determine whether Software-ICs comply to their specifications when the
  129. implementation is changed in any way, such as after a repair, extension or
  130. port.
  131.  
  132.  
  133.  
  134. 2  About the Author 
  135.  
  136. Dr. Cox is the author of the book, Object-oriented Programming, An Evolutionary
  137. Approach, and the originator of the Objective-C ``System-building Environment
  138. and many of its Software-IC'' libraries. He is presently writing a second book
  139. to be titled Object-oriented System-building; A Revolutionary Approach. 
  140.  
  141. The objective of Cox's work is bringing about a software industrial revolution
  142. in which software is produced, not by fabricating everything from first
  143. principles, but by assembling interchangeable (reusable) software components
  144. which are in turn supplied by lower-level echelons of producers.
  145.  
  146. Prior to co-founding The Stepstone Corporation, he worked for Schlumberger-Doll
  147. Research labs where he applied artificial intelligence, object-oriented, Unix,
  148. and workstation technologies to practical problems in the oil field services
  149. business. Before that he worked in the Programming Technology Center at ITT,
  150. where he applied Unix and object-oriented technologies in support of an
  151. extremely large, highly distributed telephone exchange, System 1240.
  152.  
  153. Dr. Cox's received his Ph.D. from the University of Chicago for theoretical and
  154. experimental work in the area that has since become known as neural networks.
  155. He also carried out post-graduate experimental studies at the National
  156. Institutes of Health and at the Woods Hole Marine Biological Laboratories.
  157.