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 / bell.ascii < prev    next >
Text File  |  1993-10-19  |  12KB  |  282 lines

  1.  
  2.  
  3.  
  4.  
  5.                              Reducing Cognitive  Distance:
  6.  
  7.  
  8.                    The  Role  of  an  Effective  Reuse  Program
  9.  
  10.  
  11.  
  12.                                                Peter J. Bell
  13.  
  14.  
  15.  
  16.                               Australian Centre for Unisys Software
  17.  
  18.                                     115 Wicks Road,North Ryde
  19.  
  20.                                    Sydney. NSW, Australia 2113.
  21.  
  22.                                            Tel:  (61 2 3901361)
  23.  
  24.                                   Email:  peter@syacus.acus.oz.au
  25.  
  26.  
  27.  
  28.                                                   Abstract
  29.  
  30.  
  31.     This position paper states that the goal of an effective reuse program is to reduce "cognitive
  32. distance", where this is defined as the time between initial concept and final implementation. It
  33. presents the barriers to introducing a reuse program into an organisation as a result of ongoing
  34. experiences in such a program in an Object-Oriented development environment. The attitudes
  35. of both developers and management are presented as two of the main barriers,and the methods
  36. used to address these barriers are discussed. The requirement to focus on well-specified, robust
  37. and efficient assets is identified. Practical side benefits of introducing a reuse program are also
  38. highlighted.
  39.  
  40.  
  41. Keywords: Reuse, frameworks, reuse barriers, reuse guidelines
  42.  
  43.  
  44. Workshop Goals: Learning: Networking: Understanding the state of the practice.
  45.  
  46.  
  47. Working Groups: Reuse Management, Organisation and Economics, Domain Analysis / En-
  48. gineering, Design Guidelines for Reuse & C++, Reuse and 00 methods, Useful and Collectible
  49. Metrics, Reuse Handbook
  50.  
  51.  
  52.  
  53.                                                     Bell- 1
  54.  
  55.  
  56. 1      Background
  57.  
  58.  
  59.  
  60. The Australian Centre for Unisys Software (ACUS) is the primary centre for research and devel-
  61. opment activities for Unisys in Australia. It was created in 1987 and has since established itself
  62. as a software centre specialising in the development of distributed applications and graphical user
  63. interfaces. Object oriented languages have been used at ACUS since 1988.
  64.  
  65.  
  66. In  October  of  last  year  (1992), the  position  of  'reusability  engineer'  was  created  to  ensure that
  67. the  benefits  of  reuse  that  object  oriented  languages  claim  to  support  were  being  realised in  the
  68. organisation. The roles of the reusability engineer are primarily aimed at establishing a culture of
  69. reuse within ACUS and to develop a library of in-house and third party reusable objects (designs,
  70. code, test harnesses, etc). These roles are specified in more detail in the following sections.
  71.  
  72.  
  73.  
  74. 1.1     Creation and Maintenance of Reusable objects
  75.  
  76.  
  77.  
  78. This involves finding reusable objects in existing projects and modifying (where necessary) to make
  79. the object satisfy a more generic set of requirements. A set of reuse guidelines have been written
  80. in order to aid project developers in designing with reuse in mind.
  81.  
  82.  
  83. This role also involves the ongoing evaluation of third party libraries to determine suitability for
  84. project requirements.
  85.  
  86.  
  87.  
  88. 1.2     Involvement in Project Design
  89.  
  90.  
  91.  
  92. This role is intended to promote the re-use of the library objects and frameworks in new project
  93. designs and to ensure that new software componentsare designed with reusability in mind.  The
  94. reusability  engineer  has  the  responsibility  of  ensuring that  pro jects  both  make  use  of  existing
  95. reusable artifices and contribute to the ongoing development of the library of reusable items.
  96.  
  97.  
  98.  
  99. 1.3     Alterations to Existing Development Processes:
  100.  
  101.  
  102.  
  103. The definitions of most of the development processes used within ACUS have been (or are being)
  104. altered to cater specifically for reusability.  The intention is that awareness of reuse issues will be
  105. greater if they are made a part of the developmentpro cessesused within the organisation.
  106.  
  107.  
  108.  
  109. 1.4     Development of Reusable Frameworks
  110.  
  111.  
  112.  
  113. The development of reusable frameworkstakes reuse beyond isolated objects.  Acollection of inter-
  114. related objects when combined into a useful framework can dramatically reduce the development
  115. time for applications which make use of such frameworks.  One of the more challenging roles of the
  116. reusability engineer is to establish what frameworks exist within the organisation and to ensure
  117. that they are developed in a manner that allows the framework to be utilised by future projects.
  118. It also requires that new frameworks be developed as a result of carefuldomain analysis.
  119.  
  120.  
  121.  
  122.                                                            Bell- 2
  123.  
  124.  
  125. 1.5     Corporate Strategy Development
  126.  
  127.  
  128.  
  129. Several development plants within Unisys are now combining their reuse experiences in an object
  130. oriented environment in order to establish a corporate strategy towards reuse. ACUS, is contribut-
  131. ing to this strategy development.
  132.  
  133.  
  134.  
  135. 1.6     Research Activities and University Contacts
  136.  
  137.  
  138.  
  139. Given that reuse is an area of significant research,  the reusability engineer is also responsible for
  140. staying up to date with research activities and establishing contacts with the relevant researchers
  141. both locally and overseas.
  142.  
  143.  
  144.  
  145. 2      Position -  Narrowing  the  Cognitive  Distance
  146.  
  147.  
  148.  
  149. If the cognitive distance is the effort between the initial concept and final implementation, then a
  150. major obstacle for effective reuse within an organisation is the difficulty in creating and developing
  151. an  attitude  that  aims  at  reducing  the  cognitive  distance.   This  is  true  for  both  develop ers  and
  152. management.  Developers have to believe they can find and modify (where necessary) a reusable
  153. object that suits their needs faster than they can build it themselves. Similarly management must
  154. be educated to understand where the long term savings of establishing areuse program will come
  155. from. Our goal is to raise the perception that reuse activities in the development cycle are notonly
  156. beneficial but critical to the long term viability of a commercial software organisation.
  157.  
  158.  
  159.  
  160. 2.1     Changing Developer's Attitudes
  161.  
  162.  
  163.  
  164. The need to change the developers attitudes towards reuse stems from the 'not invented here syn-
  165. drome'. In the past the perception has been that the effort to understand, modify and incorporate
  166. someone else's code into your own was to o great. Unfortunately the perception has too often been
  167. an accurate one.
  168.  
  169.  
  170. The role of the reusability engineer is to work with the developers and ensure that they have at
  171. their fingertips the information they need to quickly and easily assess the suitability of any given
  172. reusable object. The phrase "well- specified correct, robust and efficient" [1] has become the key to
  173. turning developers attitudes around. Our experience has been that if they can understand easily
  174. what  the  initial  requirements  of  an  object  were, then  they  can  assess  whether  it  matches  their
  175. needs. Similarly a common regression test procedure allows the developer to determine an objects
  176. stability and to see if a particular test case is catered forand able to be handled by the object.  If
  177. these two criteria are applied to all reusable objects, i.e. developers know what it is supposed to
  178. do and that it is done correctly, thenthey will happily reuse someone else's code.
  179.  
  180.  
  181.  
  182. 2.2     Changing Management's Attitudes
  183.  
  184.  
  185.  
  186. The  second  aspect  of  changing  developers  attitudes  deals  with  new  reusable  designs  and  code.
  187. Whilst achieving reuse of existing objects is half the battle, the library needs to grow in order to
  188. remain viable.  This brings the developers into conflictwith managers.  Until managers perceive
  189.  
  190.  
  191.                                                            Bell- 3
  192.  
  193.  
  194. a real benefit from reusing designs on code, they will remain very reluctant to allow more time
  195. in project schedules than is necessary to get the job done.  This leaves little room for the work
  196. required to generalise a good design into a reusable design.
  197.  
  198.  
  199. Our  expectation  is  that  only  when  we  are  in  a  position  to  require  projects  to  submit  a certain
  200. percentage of their development work for inclusion in the library, will a change in attitude come
  201. about.  In  the  interim, it  is  the  responsibility  of  the  reusability  engineer  to  solicit  new  reusable
  202. objects from the project teams.  Involvement in design discussions enable more generic designs to
  203. be achieved. Again it is a gradual change in attitude that will bring about effective reuse.
  204.  
  205.  
  206.  
  207. 2.3     Beneficial Side Effects
  208.  
  209.  
  210.  
  211. Given that the key to the reuse program is "well specified correct,  robust and efficient" designs
  212. and code, several safeguards have been put in place which stand to have beneficial side-effects for
  213. project teams.
  214.  
  215.  
  216. The entrance criteria are strict and uncompromising.  This leads to a development approach for
  217. reusable code that is more exacting than would otherwise be necessary.  If this feeds back into the
  218. project teams, the results can only be beneficial to the quality of delivered products. The level of
  219. documentation, the use of standard testing mechanisms and adherence to programming guidelines
  220. are  all  strongly  monitored  for  objects  in  the  reuse  library.   This  is necessary  in  order  to  ensure
  221. consistency within the library. Only by maintaining theconsistency and stringent requirements on
  222. quality can we hope to achieve effective reuse - to narrow the cognitive distance. If this insistence
  223. on quality improves the processes used within thepro ject teams, thenit b ecomesa b eneficial side
  224. effect.
  225.  
  226.  
  227.  
  228. 3      Comparison
  229.  
  230.  
  231.  
  232. 3.1     Experience Report on Software Reuse Project
  233.  
  234.  
  235.  
  236. In the proceedings of the 14th annual conference on software engineering,  Sadahiro Iso da [2] re-
  237. ported on his experiences with specific software reuse projects.  The scale of his efforts was sig-
  238. nificantly bigger than our own, particularly in terms of the resources that were available to him.
  239. However, his findings matched our perceptions quite closely.  Of paramount importance was the
  240. support of senior management. Only with this support can a reuse program hope to survive. Also
  241. of interest to us was the establishmentof a reusability committee to oversee the activities of the
  242. reuse program. We have attempted to emulatethis by ensuring that the reusability engineer works
  243. closely with each of the project groups. One thing we have taken notice of is the suggestion that
  244. a paper based searching mechanism will suffice for the library up until it contains about 1000 ob-
  245. jects. This reduces our need to spend time on developing/acquiring support tools and allows us to
  246. concentrate on developing the content of the library itself.
  247.  
  248.  
  249.  
  250. References
  251.  
  252.  
  253.  
  254. [1]  M. Cline and D. Lea, Using Annotated C++. Clarkson University and SUNY, Owego, 1991.
  255.  
  256.  
  257.  
  258.                                                            Bell- 4
  259.  
  260.  
  261. [2]  S. Isoda, "Experience report on software reuse pro ject: Its structure activities and statistical
  262.      results," in Proceedings of 14th InternationalConference on Software Engineering, 1992.
  263.  
  264.  
  265.  
  266. 4      Biography
  267.  
  268.  
  269.  
  270. Peter L Bell is a senior software engineer with the Australian Centre for Unisys Software (ACUS),
  271. Sydney, Australia.  He  holds  the  position  of  Reusability  Engineer  and  is  responsible  for  the  de-
  272. velopment of reuse activities within ACUS. This includes the development of a reuse library for
  273. multiple platforms and the establishment of processes which will result in more reusable designs.
  274. He is working, in conjunction with others inUnisys to establish a corporate strategy towards reuse.
  275. Prior to taking up this position, he worked on several software development projects in the areas of
  276. distributed computing and graphical user interfaces using object oriented languages.  He received
  277. a B.E. (Elec) from the University of New South Wales in 1987.
  278.  
  279.  
  280.  
  281.                                                            Bell- 5
  282.