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 / dusink.ascii < prev    next >
Text File  |  1993-10-19  |  14KB  |  339 lines

  1.  
  2.  
  3.  
  4.  
  5.                              Insight  in  the  Reuse  Pro cess?
  6.  
  7.  
  8.  
  9.                                              Liesbeth Dusink
  10.  
  11.  
  12.  
  13.                                                   TU Delft
  14.  
  15.                                            Tel:  +31-15-783832
  16.  
  17.                                      Email:  betje@twi.tudelft.nl
  18.  
  19.  
  20.  
  21.                                                   Abstract
  22.  
  23.  
  24.     In this paper I take the position that at this moment we do not have insight in the software
  25. engineering process and as reuse is a software engineering process directed towards using existing
  26. (partial) solutions, we do not have insight in the reuse process either.  We just do things without
  27. being able to explain why things work, should work, go wrong, etc. The only explanations given
  28. are based on common sense which is not enough from the scientific point of view.
  29.  
  30.  
  31. Keywords: science, methods, techniques, process
  32.  
  33.  
  34. Workshop Goals: Learning; networking; advance state of theory of reusablep osition pap ers.
  35.  
  36.  
  37. Working Groups:  reuse process models, reuse maturity models, reuse education,reuse and
  38. OO, reuse and formal methods
  39.  
  40.  
  41.  
  42.                                                   Dusink- 1
  43.  
  44.  
  45. 1      Background (reused)
  46.  
  47.  
  48.  
  49. In 1986 an Ada program library had to be build for the Delft Ada subset Compiler. During this
  50. work we were thinking about facilities to offer tothe users.  The step to reuse was made. Because
  51. of the Ada background we concentrated on comp onents-based reuse on code level.
  52.  
  53.  
  54. As reuse has two sides _ the form of the reusablecomp onents influences how one can reuse and
  55. the  process  of  reuse  influences  in  which  form  one  wants  the  components  -  a  two-track  research
  56. program was started in which the ideal form of comp onents and the ideal process had to be found
  57. and adapted to each other.
  58.  
  59.  
  60.  
  61. 2      Position
  62.  
  63.  
  64.  
  65. Since my first experience with software engineering and ever after I have wondered why all methods
  66. only state the products which have to be delivered.  The syntax is described,the semantics get less
  67. attention, and how the products have to be made, how to transform a requirements document to
  68. a structure chart for example, is totally neglected.
  69.  
  70.  
  71. When I started to developmy own software engineering method which supports the reuse of existing
  72. artifacts and knowledge, I got a further shock.  The existing methods were based on experience
  73. only. No sound theories backed them, noexplanations were given why it should be done in the way
  74. described or why it should work. No sound statistical comparisons were made.
  75.  
  76.  
  77. Software engineering research is not yet research in the scientific sense. Software engineering meth-
  78. ods are developed and tools are build based on reasonable sounding arguments only.  Afterwards
  79. it is claimed "it works because of the higher productivity", but we all know the Hawthorne effect.
  80. A change can have a positive effect independentof the kind of change.  Changing back to the old
  81. procedure has again a positive result. Therefore it is impossible to use this kind of information to
  82. build a unifying theory on software engineering. See [1, 2 , 3 , 4 ] for a discussion about this topic.
  83.  
  84.  
  85. Another  reason  is  that  if  one  tries  a  statistical  sound  way  of  measuring  the  effect,  there  is  the
  86. problem of the metrics.  As Fenton[5 ] shows, we do not know what to measure, eg.  should we
  87. measure lines of code in a month for productivity or should we measure centimeters documentation.
  88. We also do not know what we measure.  What does it say whenwe write so many lines of code?
  89.  
  90.  
  91. As I got the feeling that software engineering is problem solving by humans for humans, and that
  92. reuse  is  problem  solving  with  existing  (partial)  solutions, I went  to  cognitive  psychology  to  see
  93. whether theories existed on how people solve and should solve problems to base my own method
  94. on.
  95.  
  96.  
  97. It appeared that several kinds of problems existed, i.e. formal problems and non-formal problems
  98. [6], and that software engineering could be classified as solving formal problems. For formal problem
  99. solving several theories existed.
  100.  
  101.  
  102. Software engineering can be seen as a special form of problem solving. The splitting of the software
  103. lice cycle into several steps is the division of aproblem into subproblems (a general problem solving
  104. method). The use of program plans [7 , 8, 9,10 ] can be compared with the schemata [11 ]. Functional
  105. fixedness in programming was proved by [12 ].
  106.  
  107.  
  108. The human understander is best viewed as an opportunistic processor, capable of exploiting b oth
  109.  
  110.  
  111.                                                          Dusink- 2
  112.  
  113.  
  114. bottom up and top-down cues as they become available [13 ].  This is consistent with the memory
  115. model of the schema theory. We see that software engineers do the same. Generally, it is found
  116. that software engineers first play withthe problem, give partial solutions, go into details, etc. until
  117. they feel grip on the problem (a mental problem model is created) [14].  From then on they first
  118. give a solution in general terms before they specialize [15 ].
  119.  
  120.  
  121. All these findings supported the idea that conclusions from cognitive psychology can be used in
  122. software engineering.
  123.  
  124.  
  125. My work gives theories based on cognitive psychology, and from the conclusions drawn a process
  126. is derived and necessary characteristics for describing reusable components are derived.
  127.  
  128.  
  129. My work has improved the state of the art by giving a process model which is also refined to a
  130. method.
  131.  
  132.  
  133. My work has improved the state of the practice as HP has used ideas from it in their reuse project,
  134. the reuse process model as discussed in former workshops has incorporated severalideas.
  135.  
  136.  
  137.  
  138. 2.1     Reuse
  139.  
  140.  
  141.  
  142. Without knowledge of problem-related concepts,the memory quickly reaches its limits when trying
  143. to understand code [16 ].  This is because the knowledge can not b e related to existing schemata
  144. and thus has to be stored as separate facts in the short term memory.  As the short termmemory
  145. is non-associative and can contain up till 7 items, one sees the relevance of laying relations with
  146. existing knowledge [17 , 6, 16 , 18 ].
  147.  
  148.  
  149. There are different approaches when trying to understand co de, a systematic strategy and an ad hoc
  150. strategy [8, 19 ]. In the systematic approach first the total documentation is studied in a systematic
  151. manner. In the ad hoc approach documentation is read at random. The systematic approach can
  152. take too much time for large pieces of program andthe ad ho cstrategy gives poorer results when
  153. adapting a program.  Therefor do cumentation has to be in such a way that it is easy to combine
  154. both strategies in an intelligent manner. The documentation has also to be in such a way that the
  155. limits of the memory are not reached very quickly.
  156.  
  157.  
  158. In [20 ] mental laziness is remarked as one of the problems with reuse.  In [21] some experiments are
  159. done about how to prevent that the habit masters the individual instead of the individual mastering
  160. the habit. It appears that by promoting productive thinking the problem of mental laziness could
  161. be overcome.  If a solution is actively verbalized transformation to new situations becomes easier
  162. [11 ]. This improves reuse.  The active participation in finding a solution improves the recognition
  163. of the possibility of applying the solution to other areas [11 ].
  164.  
  165.  
  166. There are two basically different approaches to understanding a program. The first is the systematic
  167. strategy, where the programmer traces data flow and control flow throughout the program.  The
  168. second  strategy  is  the  as-needed  strategy,  where  the  programmer  reads  only  those  part  of  the
  169. documentation or code as (s)he thinks to be of interest [19 , 8].
  170.  
  171.  
  172.  
  173.                                                          Dusink- 3
  174.  
  175.  
  176. 3      Comparison  with  Other  Work
  177.  
  178.  
  179.  
  180. Maiden and Sutcliffe explain findings from experiments with help of cognitive psychology.  They
  181. also base tools on hypothesis from cognitive psychology.
  182.  
  183.  
  184. In  Bill  Curtis'  [22 ]  collection  of  articles, one  finds  a  lot  of  articles  which  compare  methods  or
  185. techniques  for  parts  of  the  life  cycle.  But,  as  one  of  the  comments  from  Curtis  states,  these
  186. comparisons are mostly not sound on methodological level, no experienced programmers are used
  187. thus  the  conclusions  can  not  be  extrapolated  to  experienced  programmers  as  it  it known  that
  188. experienced programmers work different than less experienced programmers.
  189.  
  190.  
  191. Fisher and his group have a model on how programmers work, based on cognitive psychology, and
  192. base a series of tools on their model.
  193.  
  194.  
  195. One sees that other persons and groups concentrate on the tool side of software engineering. Where
  196. Mayer [23 ] made clear that the syntactic sugar in which concepts are modeled is important for faster
  197. and better understanding of the used concepts. And it is not yet clear what kind of syntactic sugar
  198. is helpful and what kind is not. There are conflicting studies [24 ].
  199.  
  200.  
  201.  
  202. References
  203.  
  204.  
  205.  
  206.   [1] G. H. Bradley, "Cognitive Science View of Software Engineering," in Gibbs and Fairley [25 ],
  207.       pp. 35-51.
  208.  
  209.  
  210.   [2] A. N. Habermann, "Report of the Software Engineering Priciples Working Group," in Gibbs
  211.       and Fairley [25 ], pp. 369-380.
  212.  
  213.  
  214.   [3] W. E. Richardson,  "Why Is Software Engineering So Difficult?,"  in Gibbs and Fairley [25 ],
  215.       pp. 98-106.
  216.  
  217.  
  218.   [4] R. H. Thayer and L. A. Endres, "Software Engineering Pro ject Laboratory: The Bridge Be-
  219.       tween University and Industry," in Gibbs and Fairley [25 ], pp. 263-291.
  220.  
  221.  
  222.   [5] N. E. Fenton,SOFTWARE METRICS: A Rigorous Approach. Chapman and Hall, 1991. ISBN
  223.       0-442-31355-1.
  224.  
  225.  
  226.   [6] W. Wickelgren, Cognitive Psychology. Prentice-Hall, Inc., Englewood Cliffs, New Jersey, 1979.
  227.  
  228.  
  229.   [7] R. Rist, "Planning in Programming: Definition, Demonstration, and Development," in Soloway
  230.       and Iyengar [26 ], pp. 28-47. (Human/Computer Interaction Series).
  231.  
  232.  
  233.   [8] D.  Littman,  J.  Pinto,  S.  Letovsky,  and  E.  Soloway,  "Mental  Models  and  Software  Mainte-
  234.       nance," in Soloway and Iyengar [26], pp. 80-98.  (Human/Computer Interaction Series).
  235.  
  236.  
  237.   [9] C.-C.  Yu  and  S.  Robertson, "Plan-Based  Representations  of  Pascal  and  Fortran  Code,"  in
  238.       Soloway et al. [27 ], pp. 251-256. special issue of the ACM/SIGCHI Bulletin.
  239.  
  240.  
  241. [10]  S. Wiedenbeck, "Processes in Computer Program Comprehension," in Soloway and Iyengar
  242.       [26 ], pp. 48-57. (Human/Computer Interaction Series).
  243.  
  244.  
  245. [11]  R. Mayer, Thinking, Problem-Solving, Cognition.  W.H. Freeman and Company, 1983.
  246.  
  247.  
  248.  
  249.                                                          Dusink- 4
  250.  
  251.  
  252. [12]  R. Mayer, "Different Problem-Solving Competencies Established in Learning Computer Pro-
  253.       gramming With and Without Meaningful Models," Journal of Educational Psychology, no. 67,
  254.       pp. 725-734, 1975.
  255.  
  256.  
  257. [13]  S. Letovsky, "Cognitive Processes in ProgramComprehension," in Soloway and Iyengar [26 ],
  258.       pp. 58-79. (Human/Computer Interaction Series).
  259.  
  260.  
  261. [14]  R. Guindon and B. Curtis, "Control of Cognitive Processes during Software Design: What
  262.       Tools are Needed?," in Soloway et  al. [27 ], pp.263-268.  special issue of the ACM/SIGCHI
  263.       Bulletin.
  264.  
  265.  
  266. [15]  K. Duncker, "On Problem Solving," Psychological Monographs, vol. 58, p. 270, 1945.
  267.  
  268.  
  269. [16]  B. Shneiderman, Software Psychology: Human Factors in Computer and Information Systems.
  270.       Little, Brown Computer Systems Series, Little, Brown &Company, 1980.
  271.  
  272.  
  273. [17]  A. Newell and H. A. Simon, Human Problem Solving. Engle Wood Cliffs N.J.: Prentice-Hall,
  274.       1972.
  275.  
  276.  
  277. [18]  G. A. Miller, "The Magical Number Seven_Plus or Minus Two: Some Limits on our Capacity
  278.       for Processing Information," Psychological Review, no. 63, pp. 81-97, 1956.
  279.  
  280.  
  281. [19]  J. Pinto and E. Soloway, "Providing the requisite Knowledge Via Software Documentation,"
  282.       in Soloway et al. [27 ], pp. 257-262. special issue of the ACM/SIGCHI Bulletin.
  283.  
  284.  
  285. [20]  N. Maiden and A. Sutcliffe, "The Abuse of Re-use: Why Cognitive Aspects of Software Re-
  286.       usability are Important," in Software Re-use, Utrecht 1989:  Proceedings of the Software Re-
  287.       use Workshop, 23-24 November 1989, Utrecht, The Netherlands (L. Dusink and P. Hall, eds.),
  288.       ch. 10, Springer-Verlag, 1991.
  289.  
  290.  
  291. [21]  A.  Luchins  and  E.  Luchins, "New  Experimental  Attempts  at  Preventing  Mechanization  in
  292.       Problem Solving," Penguin Modern Psychology, ch. 6, Penguin Books, 1968.
  293.  
  294.  
  295. [22]  B. Curtis,  ed.,  Tutorial:  Human  Factors  in  Software  Development  (second  edition).  IEEE
  296.       Computer Society Press/ North-Holland, 1986.
  297.  
  298.  
  299. [23]  R. E. Mayer, "Comprehension as affected by structure of problem representation," in Curtis
  300.       [22 ], pp. 320-326.
  301.  
  302.  
  303. [24]  S. B. Sheppard, E. Kruesi, and B. Curtis, "The effects of symbology and spatial arrangement
  304.       on the comprehension of software specifications," in Curtis [22], pp. 327-334.
  305.  
  306.  
  307. [25]  N. E. Gibbs and R. E. Fairley, eds., Software Engineering Education: The Educational Needs
  308.       of the Software Engineering Community.  New York:  Springer-Verlag, 1987.
  309.  
  310.  
  311. [26]  E. Soloway and S. Iyengar, eds.,Empirical Studies of Programmers, papers presented at the
  312.       First  Workshop  on  Empirical  Studies  of  Programmers,  June  5-6,  1986,  Washington,  DC.,
  313.       Ablex, 1986. (Human/Computer Interaction Series).
  314.  
  315.  
  316. [27]  E. Soloway, D. Frye, and S. Sheppard, eds., CHI'88 Conference Proceedings, Human Factors
  317.       in Computing Systems, May 15-19, 1988 Washington, DC.,, ACM Press, 1988. special issue
  318.       of the ACM/SIGCHI Bulletin.
  319.  
  320.  
  321.  
  322.                                                          Dusink- 5
  323.  
  324.  
  325. 4      Biography (reused)
  326.  
  327.  
  328.  
  329. Liesbeth Dusink is a lecturer at Delft University of Technology, chair software engineering, since
  330. 1985. She teaches introduction in programming in Modula-2 with VDM, software engineering and
  331. object  oriented  approach, and  software  engineering  environments.  Since  1992  she  also  works  as
  332. research engineer at Cap Gemini Innovation,  Rijswijk. At Cap Gemini she designs in VDM and
  333. VDM++ and programs in Ada. At this moment she works on a project for tracking and tracing
  334. of trains. These two jobs together offer a unique combination of theory and practice.
  335.  
  336.  
  337.  
  338.                                                          Dusink- 6
  339.