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 / hislop.detex < prev    next >
Text File  |  1992-04-29  |  14KB  |  311 lines

  1.  
  2.   Estimating the Potential for Reuse 
  3.  
  4.        Gregory W. Hislop 
  5.          
  6.        Drexel University   
  7.        Working Knowledge, Inc. 
  8.        738 Elgin Rd. 
  9.        Newtown Square, Pa 19073   
  10.        email: hislopg@duvm.ocs.drexel.edu 
  11.  
  12.    
  13.  
  14.                       Abstract
  15.   
  16.   Software reuse is a promising idea, but surely offers more
  17.   potential value to some organizations than others.  How then do
  18.   we estimate the potential for a given organization?  This paper
  19.   discusses a project that is exploring analysis of the
  20.   organization's software portfolio as a way to help estimate
  21.   reuse potential at the organization level.
  22.  
  23.  
  24.   Keywords:  Software portfolio analysis, software repositories, 
  25.          domain analysis.
  26.  
  27.  
  28.  
  29. 1  Introduction 
  30.  
  31.   Software reuse has substantial intuitive appeal.  In addition,
  32.   a number of organizations have reported success with formal
  33.   programs of reuse.  However, that does not mean that reuse is
  34.   the right approach in every environment.  On the contrary, it
  35.   seems reasonable to assume that reuse would not be effective in
  36.   some environments due to various technical or organizational factors.
  37.  
  38.   This creates a difficult questions for people considering
  39.   reuse: Is reuse the right approach for our organization?
  40.  
  41.   It would be nice to answer that question by trying reuse and
  42.   seeing what the results are.  That approach works well for some
  43.   software techniques such as prototyping.  However, it appears
  44.   that for reuse, there may not be significant payback until long
  45.   after significant investment is made.  This makes trial use difficult.
  46.  
  47.   This paper discusses a research project aimed at taking another
  48.   approach to assessing the potential for reuse in a particular
  49.   organization.  That approach centers on analysis of features in
  50.   the organization's existing software portfolio.
  51.  
  52.  
  53.  
  54. 2  Assumptions and Concepts 
  55.  
  56.   Reuse makes particular assumptions about the nature of
  57.   software work.  In addition, research results and reports of
  58.   practical experience offer numerous insights into reuse.
  59.   The following points are particularly relevant to this project:
  60.   
  61.  
  62.   1. Reuse is a promising idea, but general applicability is hard to determine.
  63.  
  64.      Researchers have reported encouraging results for formal reuse systems in 
  65.      a few production environments.  However, some of the most encouraging 
  66.      results are based on judgement not measurement [Lane84], and some reports
  67.      offering measurements do not clearly define the measures [Lenz87]. In 
  68.      addition, there are indications that several of the production 
  69.      environments studied may have unusual characteristics [Mats90]. These 
  70.      factors make it difficult to evaluate the results.
  71.  
  72.  
  73.   2. Reuse requires substantial commitment.
  74.  
  75.      Adopting a formal reuse strategy has major financial and organizational 
  76.      implications.  The financial issues include:
  77.  
  78.      (a) Reusable components are more expensive to produce [Lenz87].  In part, 
  79.      this is due to the cost of domain analysis [Prie90].  There is also 
  80.      overhead associated with the system for managing reusable components.
  81.  
  82.      (b) The size and useful life of components may limit the value of reuse.  
  83.      Larger components tend to be more specific and so less likely to be 
  84.      needed repeatedly [Bigg87].  In addition, as technology changes and 
  85.      as the organization changes, the probability that a component will be 
  86.      useful diminishes.
  87.  
  88.      (c) Common business practice may prevent the development of component 
  89.      collections large enough to support a viable level of reuse [Luba86]. 
  90.      Ratcliffe concluded that ``.. the whole western economic system may 
  91.      be against reuse'' [Ratc86].  
  92.  
  93.          If sharing components is not a realistic alternative, perhaps reuse 
  94.      is a viable strategy for only the small number of organizations that 
  95.      have very, very large software portfolios or very high recurrence of
  96.          software needs.
  97.  
  98.  
  99.      There are also organizational issues:
  100.  
  101.      (a) Software workers may resist reuse.  Cavaliere and Lenz both 
  102.          encountered this resistence [Cava83, Lenz87].
  103.  
  104.      (b) Reuse affects the many aspects of software work.  Meyers relates reuse 
  105.      and extendibility [Meye87].  Basili relates reuse and maintenance 
  106.      [Basi90].  On a different level, Tracz notes that software reuse 
  107.      effects elegance, quality, and discipline of software work [Tracc88]. 
  108.          In short, reuse affects what we do, what the artifact looks like, and 
  109.      how we think about the process.
  110.  
  111.  
  112.      Reuse requires substantial management and financial commitment [Bigg89].  
  113.      Any organization considering a formal reuse approach must weigh this 
  114.      commitment against potential benefits that are not clear overall and 
  115.      harder still to predict within the context of a single organization.
  116.  
  117.  
  118.   3. Reuse assumes recurring need for software artifacts.
  119.  
  120.      The potential value of reuse depends on the amount of recurrent need.  If 
  121.      a high percent of all software work is repeated, the potential value of 
  122.      reuse is higher.  If the percent is low, the potential is lower too.
  123.  
  124.      The potential value of reuse also depends on the exact nature of 
  125.      similarity and difference each time a ``similar'' need recurs.  
  126.      Differences require adjusting the existing artifact for the new need.  
  127.      This adjustment lowers the value of reuse.
  128.  
  129.  
  130.   4. Software portfolios may provide a way to explore reuse potential.
  131.  
  132.      Predicting recurrent need for software requires that we know what software      will be requested in the future.  While we do not know the future, we do 
  133.      know what needs were met in the past.  We can use our knowledge of the
  134.      past to suggest the nature of future needs.
  135.  
  136.      This study uses software portfolios as a representation of past software 
  137.      needs.  Analysis of the portfolio should provide indication of both the 
  138.      level of recurrence and the nature of differences.
  139.  
  140.  
  141.  
  142. 3  Related Work 
  143.  
  144.   This study focuses on software features that help to uniquely determine each 
  145.   element of a software portfolio (and to understand the similarity and 
  146.   difference between elements).  We can divide these features broadly into form
  147.   and function.  Form addresses how the software looks.  It includes concepts 
  148.   of size, complexity, control structure, data structure, and style.  Function 
  149.   addresses what the software does.  It is essentially an abstract or external
  150.   view.
  151.  
  152.   The importance of function is widely recognized in reuse research.  So much 
  153.   so in fact, that similarity and functional similarity are often equated in 
  154.   reuse discussions [Good83, Lane84].  Also, prototype reuse systems, often 
  155.   use function as the primary means to identify candidates for reuse [Burt87, 
  156.   Katz87]. 
  157.  
  158.   Software form is also important to reuse.  It is important to note that 
  159.   similar function does not necessarily imply similar form [Duns80]. However, 
  160.   form affects ability to understand and to modify components [Oman88].  Both 
  161.   of these processes are crucial to reuse.
  162.  
  163.   Since both form and function have substantial impact on potential for reuse, 
  164.   this study considers both elements.
  165.  
  166.  
  167.   1. Studies of software form.
  168.  
  169.      The study of software form has a long history, especially in the area of 
  170.      software metrics.  Even early investigations of software form offer 
  171.      profiles of portfolios [Knut71, Elsh76].
  172.  
  173.      Some more recent studies of portfolios directly consider reuse and 
  174.      recurrent portfolio features.  Selby applied software metrics to 
  175.      determine that reused modules in a portfolio had a distinct profile 
  176.      [Selb89].  Caldiera and Basili used software metrics to identify 
  177.      candidates to populate a reuse repository [Cald91].
  178.  
  179.      Traditional metrics are useful for identifying certain features of reused 
  180.      modules, they are not good discriminators of overall module similarity and
  181.      difference.  Similar modules may have very different metric values and 
  182.      different modules may have very similar metric values.  Some newer metrics      attempt to provide this discriminatory power [Whal90].  These will provide      a key part of the measurement of software form in this study.
  183.  
  184.  
  185.   2. Studies of software function.
  186.  
  187.      Other studies of software portfolios have looked for recurrent function.  
  188.      Goodell reports a study of this type in which the researchers attempted 
  189.      to develop empirically a classification scheme for business programs 
  190.      [Good83].  Also, Lanergan and Grasso [Lane84] conducted a software
  191.      portfolio study that classified a large number of programs by function.
  192.  
  193.      These reports are encouraging.  They directly examine the idea of 
  194.      recurrent features in software portfolios, and they both find some 
  195.      indication of recurrent function.  On the other hand, both studies were 
  196.      exploratory and leave many questions unanswered.
  197.  
  198.      For instance, the categorization is fairly simple.  It is difficult to 
  199.      evaluate how relevant recurrence within broad categories is to reuse.  In 
  200.      addition, there was no allowance for multiple functions within a program.
  201.      Finally, there is no data about dimensions of program form.  Are programs 
  202.      in the same functional category similar in form?  Could they be 
  203.      constructed from some common component?
  204.  
  205.  
  206.  
  207. 4  Objective and Research Questions 
  208.  
  209.   This study analyzes software portfolios, viewing them as a record of past 
  210.   software needs.  The objective is to see if the level and pattern of 
  211.   recurrence in selected features offers insight into reuse potential.
  212.  
  213.   This study analyzes features of software related to both function and form.  
  214.   Specific questions that the study addresses are:
  215.  
  216.   1. Recurrent Function:  How often do functions recur in portfolios?  What 
  217.      functions recur often?  Is the pattern of recurrence similar to that 
  218.      reported by previous studies?
  219.  
  220.   2. Recurrent Form: How much recurrent form is there in software portfolios?  
  221.      What aspects of form recur often?
  222.  
  223.   3. Form and Function: Is there any discernable relationship between recurrent      functions and recurrent forms?
  224.  
  225.  
  226.  
  227. 5  Status 
  228.  
  229.   This project is still in the preliminary stages.  Current activities include 
  230.   selection of software portfolios, ad hoc analysis of candidate metrics for 
  231.   software features, and tool development.
  232.  
  233.   The project is being conducted at Drexel University under the sponsorship of 
  234.   the Center for Multidisciplinary I/S Engineering.
  235.  
  236.  
  237. References
  238.  
  239. [Basi90] Basili, Victor R. (1990) ``Viewing Maintenance as Reuse-oriented 
  240.      Software Development.'' IEEE Software. pp. 19-25. January.
  241.  
  242. [Bigg87] Biggerstaff, Ted &  Charles Richter. (1987) ``Reusability Framework, 
  243.      Assessment, and Directions.''  IEEE Software.  pp. 41-49. March.
  244.  
  245. [Bigg89] Biggerstaff, Ted and Alan Perlis (eds.). (1989) Software Reusability, 
  246.      Vol. I.  New York: ACM Press.
  247.  
  248. [Burt87] Burton, Bruce A., et al.  (1987)  ``The Reusable Software Library.'' 
  249.      IEEE Software.  pp. 25-32.  July.
  250.  
  251. [Cald91] Caldiera, Gianluigi and Victor R. Basili.  (1991) ``Identifying and 
  252.      Qualifying Reusable Software Components''.  IEEE Computer. February.
  253.  
  254. [Cava83] Cavaliere, Michael J. (1983) ``Reusable Code at the Hartford Insurance          Group.'' in Biggerstaff, Ted and Alan Perlis (eds.). (1989) Software 
  255.          Reusability, Vol. II.  New York: ACM Press.  pp. 131-141.
  256.  
  257. [Duns80] Dunsmore, H.E., and J.D. Gannon. (1980) ``Analysis of the Effect of 
  258.      Programming Factors on Programming Effort''.  Journal of Systems and 
  259.      Software. Vol. 1.  pp. 141-153.
  260.  
  261. [Elsh76] Elshoff, James L.  (1976)  ``An Analysis of Some Commercial PL/1 
  262.      Programs.'' IEEE Trans. on Software Engineering.  pp. 113-120.
  263.  
  264. [Good83] Goodell, Mike.  (1983)  ``What Business Programs Do: Recurring 
  265.          Functions in a Sample of Commercial Applications''.  ITT:  
  266.      Proceedings of the Workshop on Reusability in Programming. 
  267.      Newport, RI.
  268.  
  269. [Katz87] Katz, Shmuel & Charles A. Richter, & Khe-Sing The. (1987) ``Paris: A 
  270.      System for Reusing Partially Interpreted Schemas.'' Also in 9th 
  271.      International Conf. on Software Engineering.  ACM.  March.
  272.  
  273. [Knut71] Knuth, Donald E. (1971) ``An Empirical Study of FORTRAN Programs.'' 
  274.      Software - Practice and Experience. v. 1.  pp. 105-133.
  275.  
  276. [Lane84] Lanergan, Robert G. and Charles A. Grasso. (1984) ``Software 
  277.      Engineering with Reusable Designs and Code.'' in [Big89b] pp. 187-195.          Also in IEEE Trans. on Software Eng.  SE-10,5.  September.
  278.  
  279. [Lenz87] Lenz, Manfred et al. (1987) ``Software Reuse Through Building 
  280.      Blocks.''  IEEE Software.  pp. 34-42.  July.
  281.  
  282. [Luba86] Lubars, Michael D.  (1986)  ``Code Reusability in the Large Versus 
  283.      Code Reusability in the Small.''  ACM Sigsoft Software Eng. 
  284.      Notes. 11,1 pp. 21 -27. January.
  285.  
  286. [Mats90] Matsumura, Kazuo, et al.  (1990)  ``Modeling of Software Reusable 
  287.      Component Approach and its Case Study.''  Proc.  COMPSAC.  IEEE 
  288.      Computer Society Press.
  289.  
  290. [Meye87] Meyer, Bertrand  (1987) ``Reusability: The Case for Object-oriented 
  291.      Design.'' in [Big89b]  pp. 1-33.
  292.  
  293. [Oman88] Oman, Paul W. & Curtis R. Cook. (1988) ``A Paradigm for Programming 
  294.      Style Research.''  ACM Sigplan Notices. 23,12  pp. 69-78.  December.
  295.  
  296. [Prie90] Prieto-Diaz, Ruben. (1990) ``Implementing Faceted Classification for 
  297.      Software Reuse.''  Proc. 12th Int'l Conf.  on Software Engineering.  
  298.      IEEE Computer Society Press.  pp. 300-304.  April.
  299.  
  300. [Ratc86] Ratcliffe, M.  (1986)  ``Report on a Workshop on Software Reuse held 
  301.      in Hereford, UK on 1,2 May 1986.''  SIGSOFT Software Engineering 
  302.      Notes. 12,1  pp. 42-47.  January.
  303.  
  304. [Selb89] Selby, Richard W. (1989) ``Quantitative Studies of Software Reuse.'' 
  305.      in [Big89b]  pp. 213-233.
  306.  
  307. [Trac88] Tracz, Will.  (1988)  ``Software Reuse Maxims''  ACM Sigsoft Software 
  308.      Engineering Notes.  13,4 pp. 28-31.  October.
  309.  
  310. [Whal90] Whale, Geoff.  (1990)  ``Software Metrics and Plagiarism Detection.''           J. Systems Software.  13  pp. 131-138.
  311.