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 / sijtsma.detex < prev    next >
Text File  |  1992-04-05  |  15KB  |  329 lines

  1.  [12pt] article 
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.   Software Reuse Research at KSLA 
  9.   Ben A. Sijtsma 
  10.  
  11. Koninklijke/Shell--Laboratorium, Amsterdam 
  12. (Shell Research B.V.) 
  13. P.O. Box 3003, 1003 AA Amsterdam, The Netherlands 
  14. e-mail:    SIJTSMA1@KSLA.NL  
  15.  
  16.    
  17.  
  18.  
  19.  
  20.   
  21. This paper briefly discusses the research efforts aimed at providing
  22. reuse technology for the Laboratory. Some characteristic properties
  23. of software development at the Laboratory are considered and their
  24. influence on software reuse are presented. We conclude with an outline
  25. of our approach to domain analysis.
  26.  
  27.   0.3in 
  28.  
  29.    Keywords:  repository construction, domain analysis
  30.  
  31.  
  32.  
  33.  * Introduction 
  34. The research on software reuse at Koninklijke/Shell--Laboratorium, Amsterdam
  35. (KSLA) has two main goals:
  36.   
  37.   to establish the characteristic properties that
  38. an effective reuse repository for a department in the Laboratory
  39. should possess, and
  40.   to define a process by which such a repository can be created.
  41.  
  42.  
  43. These goals are not, of course, unique (cf.  ).  
  44. However, they imply some
  45. important and not so obvious side conditions we have not encountered
  46. in other research efforts. These side conditions will be discussed
  47. later on.  First, please bear with us while we make some remarks on
  48. the goals in order to provide some insight into what we mean by
  49. them.
  50.  
  51. By the characteristic properties of an effective reuse repository we
  52. do not only mean technical properties such as the component
  53. classification mechanism, tools for component retrieval and the kind
  54. of version management, but also more ``managerial'' ones such as the
  55. quality control process and incentive schemes.  Characteristic
  56. properties should therefore be taken in the widest possible sense.
  57.  
  58. There is a surprisingly large number of issues that needs to be
  59. addressed before any repository can be constructed
  60. (see  ). We will give two
  61. examples. First, it is generally agreed that a repository containing
  62. only code components has limited benefits
  63. ( ); design or even requirement
  64. reuse is expected to have a higher pay-off potential.  
  65. There is a practical question-mark, however: source code
  66. has a natural representation, but what (formal) language is
  67. used to represent designs? There are many possible choices, but little
  68. is known about their effectiveness in transporting knowledge from the
  69. author of a design to a possible reuser.
  70.  
  71. The other example is the issue of white-box reuse versus black-box
  72. reuse: in the case of black-box reuse the reuser cannot change a code
  73. component, whereas in the white-box case he or she has the possibility
  74. to change it.  The advantages of black-box reuse are that (1) the
  75. documentation does not need to be written or rewritten (it is already
  76. there), (2) the understanding of the program during maintenance or bug
  77. fixing is facilitated and (3) more support can be given in the event
  78. of an error being found in a component.  The advantages of white-box
  79. reuse are that the likelihood that a component can be (partially)
  80. reused increases and that partial reuse is more effective than writing
  81. from scratch.  Although many advocate white-box reuse,
  82. in this instance, too,
  83. it is not yet clear what the most
  84. cost-effective alternative is or, more generally, what the
  85. essential factors that are determine which alternative to take.
  86.  
  87. The second goal takes the reuse technology a step further than the
  88. first. The intention of the second goal is to make the construction
  89. of an effective repository a clearly defined and manageable task. 
  90. Moreover, it should make it a    repeatable  effort,    not 
  91. relying on reuse researchers. A great deal of effort has already been
  92. put in this topic, see, for example,   .
  93.  
  94. For the second goal, totally different, but nevertheless related,
  95. issues than for the first goal need to be addressed.  For example: a
  96. characteristic property will be the way in which domain knowledge is
  97. represented.  For the second goal it will be necessary to describe the
  98. process of acquiring such knowledge.  Another example concerns the
  99. components.  For the first goal it is sufficient to know that a
  100. component can be a piece of source code or a piece of design (or
  101.  ).  A question that needs to be answered for the second goal is
  102. how components are constructed.  Are they developed from scratch or
  103. are they to be found in the existing software (salvaging)?  If the
  104. latter is the case, the question arises as to what kind of tools,
  105. techniques, and methods are needed.  Furthermore, little is yet known
  106. about which alternative is in the long run economically the most
  107. attractive: development for reuse or software salvaging.
  108.  
  109. In the remainder of this paper we will discuss some important 
  110. properties of software development at the Laboratory, our approach
  111. to fulfill the goals as stated in the foregoing, and we will
  112. conclude with some remarks.
  113.  
  114.  * The Laboratory Environment 
  115.  
  116. An important
  117. issue that is related to our environment is that the Laboratory is
  118.    not  a software production environment.  Software is not an end
  119. in itself. At the Laboratory, software is mainly written to   
  120. explore  a problem and/or solution. The primary aim of the researcher
  121. is generally to gain insight into a physical process.  The software is
  122. only a means to express and test ideas. Hence much software has a
  123. very short lifetime, ranging from a few hours to a few days. 
  124. Regularly, though, the software developed during research is used for a long
  125. time, especially software that has resulted at the end of a research
  126. effort. In such a case the software is a vehicle that transports
  127. knowledge from the Laboratory to other parts of the company.
  128.  
  129. Although it might seem that, in such an environment, there is little
  130. opportunity for reuse, it has nevertheless been observed that many
  131. pieces of functionality are implemented time and again. In our efforts
  132. we hope to find ways to locate and capture these pieces.
  133.  
  134. The software is written by researchers who are experts in their
  135. fields, say, physics and chemistry, but who have received little or no
  136. training in software development. This has severe repercussions on
  137. several aspects of the repository. First of all, we have to limit
  138. ourselves in the use of formal languages. We cannot use a formal
  139. language, such as Z or predicate calculus, to specify the source text
  140. components. Such a formalism would not be understood easily and it
  141. would hinder possible reuse severely. Similarly,
  142. we cannot use a very formal language to describe
  143. designs and properties of data structures and a transformational
  144. approach (see e.g. ) to software reuse is also not a viable option.
  145. In the end it means that we cannot use formal languages the researcher
  146. is not familiar with, unless these are supported to the extent that
  147. the formal aspects become hardly noticeable.
  148.  
  149. The fact that experts in the field are generally not experts in
  150. software development influences the domain analysis particularly.
  151. Experts in the field eloquently explain the technical difficulties
  152. they have solved, but are much less able to explain how their
  153. solutions are implemented. For example, they could describe a Fortran
  154. subroutine by stating that it is needed by another one that computes,
  155. say, mixing in a reactor.
  156. Moreover, one could say that their
  157. translation of the concepts in the domain to objects in the software
  158. is often not up to modern software development standards.
  159. For example, the concept of abstract data types is unknown to many.
  160.  
  161. It goes perhaps without saying, that in the Laboratory the researchers
  162. do not follow standard, or even common, software development methods.
  163. This implies that a great deal of attention must be given to let
  164. researchers reuse software. We expect, unless great care is taken, that
  165. the ``not-invented-here'' syndrome will be a major problem. The
  166. ``Programmers's Viewpoint'' as presented in   maps
  167. rather too well on researchers in the Laboratory.
  168.  
  169.  * Our approach 
  170.  
  171. Apart from the well-known motivations for reusing software, productivity and
  172. quality, another one also plays a role.
  173. The average employee works in a research job for about five
  174. years and then moves on to another, most likely non-research, job.
  175. This implies that there is a high staff turnover. It is believed that
  176. the results of the domain analysis could be very useful in bringing
  177. new employees up to date with the activities of a department.
  178.  
  179.  
  180. We have elected to study the construction of a repository for a
  181. department in the Laboratory rather than one for the whole Laboratory.
  182.  
  183.  
  184. The areas in which research is performed are quite diverse. 
  185. To develop a single repository
  186. for the whole Laboratory was therefore, in our opinion, unrealistic.
  187. We do expect, however, that
  188. repositories for different departments will overlap, and we hope to
  189. devise mechanisms that will enable possible reusers to look over the
  190. boundaries of the repositories without becoming lost in the sheer
  191. quantity of components.
  192.  
  193. The repository will not only contain source code but designs and
  194. code templates as well. We also intend to provide links to the software
  195. that was used to test the various components. The 3Cs model
  196. (see  ) will be used
  197. to define the structure of a reusable component. 
  198.  
  199. A case study was started one of whose goals was to construct a
  200. repository for a department.  
  201. It was decided to start this case study with a domain
  202. analysis. A priori it was decided that the ``deliverables''of the
  203. domain analysis consists of the following three items:
  204.   
  205.   a glossary of terms 
  206. In this glossary the concepts and objects of the domain will be
  207. defined and their interrelationships recorded. It is expected that
  208. many terms in the glossary will have a counterpart in software. It is
  209. particularly important to have a clear view of the interrelationships
  210. between the terms, because these interrelationships indicate the
  211. likely interactions between the software counterparts. As such they
  212. (partially) determine the interface of the software components. The
  213. glossary also provides important information for the classification of
  214. the components.
  215.  
  216. For reasons explained above, we will use natural language to document
  217. the components. To avoid some of the ambiguities that arise in natural
  218. language documentation, the author of the documentation is allowed
  219. to use only the technical terms that are listed in the glossary
  220. with the same meaning.  So the glossary will become a constant ``terms
  221. of reference'' or context for the reader of the documentation.
  222. This will facilitate the ease of understanding.
  223.   a list of characteristic problems 
  224. We hope to find components in the large amount of available software
  225. or, to be precise, we hope to adapt pieces of existing software such
  226. that they become components. The list of characteristic problems is a
  227. first step in gaining a grip on the available software and forms a
  228. first classification mechanism for it.
  229.   one or more solution strategies for every characteristic
  230. problem 
  231. An example of a characteristic problem is a phase equilibrium
  232. computation. In such a computation there is a mixture of chemical
  233. substances, a pressure and a temperature. A phase equilibrium
  234. computation entails the computation of the number of phases and their
  235. compositions. Such a problem can be solved in many different ways:
  236. using different models, different numerical methods, etc. The purpose
  237. of this ``deliverable'' is to have a relatively abstract description
  238. of each solution. The solution strategies will enable us to further
  239. classify the existing software and enable us to abstract away from any
  240. specific details of one implementation. This should help us to
  241. construct truly reusable components.
  242.  
  243.  
  244. Although the domain was not large, 
  245. already early in the domain analysis phase it was observed that
  246. it would require a substantial effort. That the Laboratory is not
  247. a software production environment and the researchers not professional
  248. software developers hindered the analysis substantially.
  249. Since a full domain analysis would take probably too long, we are 
  250. considering to follow the approach as given in  .
  251.  
  252. Notwithstanding the above observation, 
  253. the domain knowledge representation is much more an open problem than
  254. the domain analysis. We are still actively looking for a good
  255. ``tool.'' Due to the technical environment a great deal of technical
  256. notation exists. We need to have a way to be able to capture such
  257. notation, since it would facilitate the understanding of components a
  258. great deal. Therefore, we consider a hypertext-like environment in
  259. which it is possible to define cards using   a viable option.
  260. Furthermore, this hypertext-like environment should provide support
  261. for layered semantic networks. Such networks will be used to record
  262. the ``deliverables'' of the domain analysis.
  263.  
  264.  * Concluding Remarks 
  265.  
  266. We have described some of the problems we are facing in constructing a
  267. repository for a department in our Laboratory. The nature of our
  268. environment forces us to use natural languages to describe and/or
  269. specify components. We see the domain analysis as the important step
  270. in the construction of an effective reuse repository. The process
  271. to arrive at a repository will be an adaptation of the process
  272. described in  . The process for domain analysis
  273. is still being developed; our starting point was an approach
  274. presented in  .
  275.  
  276. We have just started a case study and we have a long way to go before
  277. software reuse is institutionalised software reuse. 
  278.  
  279.  
  280.    99 
  281.  
  282. Biggerstaff, T.J., Richter, C.
  283.    Reusability Framework, Assessment, and Directions. 
  284. IEEE Software, Vol. 4, Nr. 2, March, 1987.
  285.  
  286. Boyle, J.M.
  287.    Program Reusability through Program Transformation. 
  288. IEEE Transactions on Software Engineering, Vol. SE-10, Nr. 5, September,
  289. 1984.
  290.  
  291. Frakes, B., Latour, L., Wheeler, T.
  292.    Descriptive and Prescriptive Aspects of the 3Cs Model -- SETA
  293. Working Group Summary -- 
  294. In: Proceedings of the Third Annual Workshop: Methods   Tools for Reuse,
  295. CASE Center, Syracuse University, June, 1990.
  296.  
  297. Oddy, G.
  298.    Software Reuse at G-MRC. 
  299. In:  , pp. 30 - 35.
  300.  
  301. Prieto-Diaz, R.
  302.    Making Software Reuse Work: An Implementation Model. 
  303. In:  , pp. 86 - 92.
  304.  
  305. Prieto-Diaz, R.
  306.    Domain Analysis for Reusability. 
  307. Proceedings of COMPSAC'87, 1987, pp. 23 - 29.
  308.  
  309. Prieto-Diaz, R., Sch  a fer, W., Cramer, J., and Wolf, S. (eds.)
  310. Proceedings of the First International Workshop on
  311. Software Reusability, Dortmund, Germany, July 3-5, 1991.
  312. SWT-Memo Nr. 57, University Dortmund, Germany.
  313.  
  314. Tracz, W. 
  315.    RMISE Workshop on Software Reuse Meeting Summary. 
  316. In:  , pp. 41 - 53.
  317.  
  318. Tracz, W. 
  319.    Software Reuse: Emerging Technology. 
  320. The Computer Society of the IEEE, 1988, ISBN 0-8186-4846-3.
  321.  
  322. Tracz, W. 
  323.    Software Reuse: Motivators and Inhibitors. 
  324. Proceedings of COMPCON S'87, 1987, pp. 358 - 363.
  325.  
  326.  
  327.  
  328.  
  329.