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 / wisr6 / proceedings / ascii / tong.ascii < prev    next >
Text File  |  1993-10-19  |  18KB  |  395 lines

  1.  
  2.  
  3.  
  4.  
  5.         Reducing  the  Technical  Overhead  of  Software  Reuse
  6.  
  7.  
  8.  
  9.                                              Andrew Z. Tong
  10.  
  11.                                               Gail E. Kaiser
  12.  
  13.  
  14.  
  15.                                           Columbia University
  16.  
  17.                                  Department of Computer Science
  18.  
  19.                                           500 W. 120th Street
  20.  
  21.                                          New York, NY 10027
  22.  
  23.                               Tel:  212-939-7086, Fax:  212-666-0140
  24.  
  25.                                          tong@cs.columbia.edu
  26.  
  27.  
  28.  
  29.                                                   Abstract
  30.  
  31.  
  32.     This  paper  discusses  three  steps  (standardization, tailorability  and  automation)  towards
  33. reducing the technical overhead of software reuse and describes howthese steps are being real-
  34. ized in the on-going Marvel/Oz project of the Programming Systems Laboratory at Columbia
  35. University.
  36.  
  37.  
  38. Keywords: Componentization; Process Enaction; Process Modeling
  39.  
  40.  
  41. Workshop Goals: To exchange information about the current stateof automated support for
  42. reuse and of reuse within environment technology
  43.  
  44.  
  45. Working Groups: Reuse Process Models; Tools and Environments; Domain Analysis
  46.  
  47.  
  48.  
  49.                                                    Tong- 1
  50.  
  51.  
  52. 1      Background
  53.  
  54.  
  55.  
  56. In the Marvel project, we developed a multi-user process-centered environment (PCE)  that can
  57. be reused to define and execute different softwaredevelopment processes for different projects or
  58. organizations [1, 2 ].  The process is modeled as a set of rules, each specifying the condition and
  59. effects of one software development activity. The process is enforced and automated: by backward
  60. chaining to attempt to satisfy the condition of an activity requested by the user and by forward
  61. chaining to fulfill the implications of a completed activity [3 , 4].
  62.  
  63.  
  64. In the successor Oz project, we are developing PCE architectures and components to be reused
  65. to produce a family of PCEs as well as members of other environment classes.  We defined and
  66. executed our own software processes using earlierversions of Marvel to construct later versions. We
  67. are now reusing large portions of Marvel's code in constructing Oz, as well as employing a Marvel
  68. process that explicitly recognizes and promotes componentization and reuse.
  69.  
  70.  
  71.  
  72. 2      Position
  73.  
  74.  
  75.  
  76. Assume a rather ideal situation where there are no legal issues blockingsoftware reuse, no NIH
  77. ("Not  Invented  Here")  syndrome, and  reuse  is  encouraged  through  management  support  (e.g.,
  78. when software reuse occurs, both the producer and reuser are rewarded). However,software reuse
  79. may still be too costly to be practical, due to its technical  overhead.  This overhead includes those
  80. additional activities required to both produce and reuse software, e.g.,packaging and classifying
  81. reusable software artifacts, searching for and selecting reuse candidates, adapting them to fit the
  82. reusers'  specific  needs, etc.   The  cost  of  each  of  these  activities  can  be  prohibitive  and hence
  83. invalidates the applicability of reusing software.
  84.  
  85.  
  86. In the rest of this section, we discuss three incremental steps towards reducing this overhead and
  87. briefly describe the approaches we are taking to achieve them in the on-going Oz project.
  88.  
  89.  
  90.  
  91. 2.1     Standardization
  92.  
  93.  
  94.  
  95. When trying to reuse a software artifact, the reuser generally has to know:
  96.  
  97.  
  98.  
  99.     1. Where to find what he wants.
  100.  
  101.  
  102.     2. Whether a given software artifact really meets his needs.
  103.  
  104.  
  105.     3. If so, how to use or reuse it.
  106.  
  107.  
  108.     4. If it cannot be used without some changes, then how to modify it.
  109.  
  110.  
  111.  
  112. When  the  software  producer  and  reuser  are  speaking  different  "foreign  languages"  (e.g.,  using
  113. different naming conventionsor do cumentation styles), answering these questions may be rather
  114. time-consuming,  laborious,  and error-prone - if not totally impossible.  This task could be con-
  115. siderably easier if both the producer and reuser speak the same "language", or follow the same
  116. standards, for example, standards to store and classify software artifacts, to specify functionality,
  117. performance, reliability, etc., to define interfaces, and to determine the impacts of changes.
  118.  
  119.  
  120.                                                           Tong- 2
  121.  
  122.  
  123. Although these might be difficult to impose across organizations, such languages should be stan-
  124. dardized as far as possible within an organization - where most reuse is likely to occur - to reduce
  125. the overhead of learning a multitude ofdifferent "foreign languages" during software reuse.
  126.  
  127.  
  128. However, from an individual software develop er's point of view,  following standards may not be
  129. directly  beneficial  -  especially  when  he  expects  to  move  among  different  companies  during  his
  130. career.  Therefore, standards need to become mandatory, like law.  To supp ort organization-wide
  131. software reuse, standards can be enforced by an organization-wide software development process.
  132.  
  133.  
  134. We  enforce  project-wide  software  reuse  in  our  Oz  project  by  defining  a  reuse-oriented  software
  135. development  process  that  is  executed  by  the existing  Marvel  PCE.  The  process  is  consistently
  136. followed by every person involved in the project development; in fact, it is not feasible to access
  137. or  modify  the  Oz  source  code  except  through  this  process  (unless,  of  course,  one  has  superuser
  138. privileges).  This  process,  called  Oz/Marvel,  mainly  defines  activities  that  belong  to  the  coding
  139. phase  of  the  software  lifecycle  (e.g.,  how  to  create,  change,  and  store  various  software artifacts
  140. including source code,  run-time libraries,  and binaries).  We are planning to expand the process
  141. support and standardization to areas such as testing, packaging, etc.  that would also be useful for
  142. our research software.
  143.  
  144.  
  145. We have substantial experience using the Marvel PCE to enforce (and automate) our actual software
  146. development processes. For example, C/Marvel (C for the C implementation language), was used
  147. in Marvel's own development. Doc/Marvel (postscript document production using latex) was used
  148. to write the over 400 pages of user and administrator manuals in the last Marvel release, and is also
  149. used for thesis proposals, technical reports, etc.  P/Marvel (P for Process) is used in developing,
  150. testing,  installing,  and  evolving  all  Marvel pro cesses.  Using  P/Marvel, the  distinction  between
  151. developing new Marvel processes and maintaining old ones blurs.
  152.  
  153.  
  154.  
  155. 2.2     Tailorability
  156.  
  157.  
  158.  
  159. If reusers have to make a tremendous effort to tailor the selected software artifact to fit their specific
  160. needs, they may just give up and construct their own from scratch. Tailorability or adaptability of
  161. software artifacts requires communication b etween the software producer and reusers.  "Commu-
  162. nication" is harder if the pool of potential reusers is not known at the time thesoftware artifacts
  163. are  produced, so  that  the  producer  has  to  anticipate  all  possible  needs  of  the  reusers  (e.g., by
  164. performing domain analysis).
  165.  
  166.  
  167. In the domain of software process itself, there is as no consensus regarding the b est process, and
  168. in fact different processes are probably suitable for different pro jects and organizations.
  169.  
  170.  
  171. Consequently, in orderto make our Marvel PCE reusable for various process definition and execu-
  172. tion purposes, we distinguish the mechanisms for providing services from the policies that govern
  173. the behavior of the services. The policies can be easily tailored by what we call the process admin-
  174. istrator. Specifically, Marvel provides:
  175.  
  176.  
  177.  
  178.     fflAn ob ject-oriented database data modeling (or schema) language, to define the software en-
  179.        gineering resources, artifacts, their composition and other relationships, and the information
  180.        to track the process state [5 ].
  181.  
  182.  
  183.     fflA pair of process modeling languages, to define process steps and their prohibited, permitted
  184.        and required sequencing, including a higher-level control-oriented formalism as well as the
  185.  
  186.  
  187.  
  188.                                                           Tong- 3
  189.  
  190.  
  191.        underlying rule-based language into which it is translated [6].
  192.  
  193.  
  194.     fflA  tool-integration language,  to  call  external  off-the-shelf to ols  to p erform  the  activities  of
  195.        process steps [7 ].
  196.  
  197.  
  198.     fflA set of lock tables, through which various types of locks and their relationships are defined,
  199.        to  meet  the  basic  concurrency  control  needs  when  multiple  users  participate  in  the same
  200.        process.
  201.  
  202.  
  203.     fflA rudimentary coordination modeling language, to express different styles of long duration,
  204.        interactive, and cooperative transactions representing process segments.
  205.  
  206.  
  207.  
  208. The main theme of our new Oz project is to make the various PCE  facilities themselves reusable
  209. in designing a family of environments, so we separate the PCE architecture from its components.
  210. One of the two major components will be a process engine called Amber, which serves as a "process
  211. virtual machine" that executes a rule-based "process assemblylanguage".  The other will be Pern,
  212. which  supports  the  definition  of  new  concurrency  control  p olicies  by  restructuring  (e.g.,  split,
  213. join) in-progress transactions. Our ob jective is to define interfaces whereby Amber and Pern can
  214. be  employed  as  components  in  several  styles  of  environment  architectures, and  whereby  the  Oz
  215. architecture can adopt foreign process engines and transaction managers.
  216.  
  217.  
  218.  
  219. 2.3     Automation
  220.  
  221.  
  222.  
  223. It  is  widely  believed  that  significant  improvements  in  software  quality  and  productivity  can  be
  224. achieved only from systematic and comprehensive software reuse - which means that nothing would
  225. be started from scratch if there is something can be reused and reuse permeates the entire software
  226. lifecycle. Clearly, this introduces much routine work that involves little creativity (e.g., classifying
  227. and finding the reusable components). Thus, automation support is essential to makinglarge-scale
  228. software reuse practical, that is, software developers should be relieved of this technical overhead
  229. to  the  degree  possible  in  order  to  be  able  to  focus  on  the  real  essence  of  software  design  and
  230. implementation [8].
  231.  
  232.  
  233. However, the  applicability  of  automation  depends  on  the  realization  of  standardization  and  tai-
  234. lorability. Generally, well-defined standards prove especially amenable to automation [9].
  235.  
  236.  
  237. The degree and effectiveness of automation depends on how much knowledge the automation tools
  238. have available about the tasks to b e automated:  the better these tools understand the tasks, the
  239. more they can help. This matches well with the objectives of a PCE, which applies the knowledge
  240. of the software process to automatically execute portions of it.
  241.  
  242.  
  243. We are encoding incrementally into our Oz/Marvel process our increasing knowledge about reusable
  244. architectures, components and mo dules such as encapsulation and functional hierarchy. Specifically,
  245. we  represent  the  concepts  of  system  architecture,  subsystems,  components,  etc.,  using  Marvel's
  246. object-oriented  database  schema, and  include  in  the  process  simple  design  rules  that  explicitly
  247. carry out automatic reasoning based on these concepts. For example,there are rules enforcing that
  248. within a certain system, a component at a given functional level can only invoke visible operations
  249. of components at the next lower level,and the detailed implementation of a component is invisible
  250. outside that component. And other rules know how to search the component repository tofind the
  251. proper components and the "glues" to integrate those components into a system.
  252.  
  253.  
  254.  
  255.                                                           Tong- 4
  256.  
  257.  
  258. Separately from Oz, we constructed a special R/Marvel process as an extension of C/Marvel con-
  259. cerned  specifically  with  automating  software  reuse  within  a  software  process.  We  experimented
  260. with modeling and automating some reuse-oriented activities, including classifying and finding the
  261. relevant softwareartifacts.  R/Marvel automatically indexes potentially reusable functions based
  262. on the naming and documentation standards we followed to develop Marvel.  It assists the reuser
  263. to find the relevant items by representing queries as objects and providing rules that reason with
  264. those objects (i.e., rules concerned with creating and modifying a query).
  265.  
  266.  
  267.  
  268. 3      Comparison
  269.  
  270.  
  271.  
  272. Many  groups  are  investigating  software  process  modeling  and  enaction  approaches  to  formally
  273. specify,  aid  human  understanding,  and  assist  in  the  performance  of  software  processes  [10 ,  11].
  274. Reuse  of  process  knowledge  is  the  main  goal  of  this  line  of research,  whereas  reuse  of  the PCE
  275. kernel is a direct consequence.
  276.  
  277.  
  278. Several systems apply information retrieval technology to the assembly of large software libraries,
  279. based  on  manually  assigning  attributes  [12 ]  or automatically  extracting  attributes  from  natural
  280. language documentation. In Guru, a hierarchical clustering algorithm isadded to support browsing
  281. among query results and closely related reuse candidates [13 ]. When applied to AIXman pages, the
  282. result was encouraging and outperformed the INFOEXPLORER product, in which such a library
  283. was built manually.  Such tools might be embedded in numerous processes.
  284.  
  285.  
  286. Draco is an example of a reuse-oriented system that is basedon a hard-wired process [14 ].  It applies
  287. domain engineering, encapsulation and other reuse technologies to guide and automate software
  288. development activities within a specific application domain.
  289.  
  290.  
  291.  
  292. References
  293.  
  294.  
  295.  
  296.   [1] G. E. Kaiser, P. H. Feiler, and S. S. Popovich, "Intelligent assistance for software development
  297.       and maintenance," IEEE Software, vol. 5, pp. 40-49, May 1988.
  298.  
  299.  
  300.   [2] I. Z. Ben-Shaul, G. E. Kaiser, and G. T. Heineman, "An architecture for multi-user software
  301.       development environments," Computing  Systems  The  Journal  of  the  USENIX Association,
  302.       vol. 6, pp. 65-103, Spring 1993.
  303.  
  304.  
  305.   [3] G. T. Heineman, G. E. Kaiser, N. S. Barghouti, and I. Z. Ben-Shaul, "Rule chaining in marvel:
  306.       Dynamic binding of parameters," IEEE Expert, vol. 7,pp. 26-32, December 1992.
  307.  
  308.  
  309.   [4] N. S. Barghouti, "Supporting cooperation in the marvel process-centered SDE," in 5th ACM
  310.       SIGSOFT Symposium on Software Development Environments (H. Weber, ed.), (Tyson's Cor-
  311.       ner  VA),  pp.  21-31, December  1992.   Special  issue  of  Software  Engineering  Notes,  17(5),
  312.       December 1992.
  313.  
  314.  
  315.   [5] N. S. Barghouti and G. E. Kaiser, "Modeling concurrency in rule-based development environ-
  316.       ments," IEEE Expert, vol. 5, pp. 15-27, December 1990.
  317.  
  318.  
  319.   [6] G.  E.  Kaiser,  S.  S.  Popovich,  and  I.  Z.  Ben-Shaul,  "A  bi-level  language  for  software  pro-
  320.       cess modeling," in 15th International Conference on Software Engineering, (Baltimore MD),
  321.       pp. 132-143, IEEE Computer Society Press, May 1993.
  322.  
  323.  
  324.  
  325.                                                           Tong- 5
  326.  
  327.  
  328.   [7] M. A. Gisi and G. E. Kaiser,  "Extending a tool integration language,"  in 1st  International
  329.       Conference on the Software Process: Manufacturing Complex Systems (M. Dowson, ed.), (Re-
  330.       dondo Beach CA), pp. 218-227, IEEE Computer Society Press, October 1991.
  331.  
  332.  
  333.   [8] F. P. Brooks, Jr., "No silver bullet: Essence and accidents of software engineering," Computer,
  334.       vol. 20, pp. 10-20, April 1987.
  335.  
  336.  
  337.   [9] G. Caldiera and V. Basili, "Identifying and qualifying reusable software components," Com-
  338.       puter, vol. 2, pp. 61-70, February 1991.
  339.  
  340.  
  341. [10]  I. Thomas, ed., 7th International Software Process Workshop: Communication and Coordina-
  342.       tion in the Software Process, (Yountville CA), IEEE Computer Society Press, October 1991.
  343.  
  344.  
  345. [11]  2nd International Conference on the Software Process: Continuous Software Process Improve-
  346.       ment, (Berlin, Germany), IEEE Computer Society Press, February 1993.
  347.  
  348.  
  349. [12]  R. Prieto-Diaz and P. Freeman, "Classifying software for reusability," IEEE Software, vol. 4,
  350.       pp. 6-16, January 1987.
  351.  
  352.  
  353. [13]  Y. S. Maarek, D. M. Berry, and G. E. Kaiser,"An information retrieval approach for automat-
  354.       ically constructing software libraries," IEEE Transactions  on  Software  Engineering,  vol.  17,
  355.       pp. 800-813, August 1991.
  356.  
  357.  
  358. [14]  J. M. Neighbors, "The Draco approach to constructing software from reusable components,"
  359.       IEEE Transactions on Software Engineering, vol. 10, pp. 564-574, September 1984.
  360.  
  361.  
  362. [15]  I. Z. Ben-Shaul, "Oz: A decentralized process centered environment," Tech. Rep. CUCS-011-
  363.       93, Columbia University, Department of Computer Science, April 1993. PhD Thesis Proposal.
  364.  
  365.  
  366. [16]  G.  T.  Heineman, "A  transaction  manager  component  for  coop erative  transaction  models,"
  367.       Tech. Rep. CUCS-017-93,Columbia University, Department of Computer Science, April 1993.
  368.       PhD Thesis Proposal.
  369.  
  370.  
  371.  
  372. 4      Biography
  373.  
  374.  
  375.  
  376. Zhongwei Tong is a PhD candidate in the Columbia University Department of Computer Science.
  377. His research interests include software development environments, software process, and reuse. He
  378. received his BS from Jiao Tong University, China and his MS from Columbia University.
  379.  
  380.  
  381. Gail E. Kaiser is an Associate Professor of Computer Science and Director of the Programming
  382. Systems  Laboratory  at  Columbia  University.   She  was  selected  as  an  NSF Presidential  Young
  383. Investigator in Software Engineering in 1988.  Prof.  Kaiser has published over 80 papers in a range
  384. of areas, including software development environments, software process, cooperative transactions,
  385. testing and debugging, reuse, application of AI to software engineering, ob ject-oriented languages
  386. and  databases, and  parallel  and  distributed  systems.  Prof.  Kaiser  is  an  associate  editor  of  the
  387. journal  ACM Transactions  on  Software  Engineering  and  Methodology,  and  serves  on  numerous
  388. program committees for conferences as well as reviewing for conferences, journals, and the NSF.
  389. She received her PhD and MS from CMU and her ScB from MIT. She is a member of AAAI and
  390. ACM and a senior member of IEEE.
  391.  
  392.  
  393.  
  394.                                                           Tong- 6
  395.