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 / ylarotiala2.ascii < prev   
Text File  |  1993-10-19  |  15KB  |  292 lines

  1.  
  2.  
  3.  
  4.  
  5.        Towards  Information  Systems  for  Software  Producers
  6.  
  7.  
  8.  
  9.                                          Aarne H. Yl{-Rotiala
  10.  
  11.  
  12.  
  13.                                       Nokia Telecommunications
  14.  
  15.                                                 P.O. Box 33
  16.  
  17.                                     FIN-02601 Espoo, FINLAND
  18.  
  19.                                          Tel: (358) 0-511 6542
  20.  
  21.                              Email: aarne.yla-rotiala@ntc.nokia.com
  22.  
  23.  
  24.  
  25.                                                   Abstract
  26.  
  27.  
  28.     Software producers need a defined information base to operate on.  A software production
  29. process cannot be properly defined without giving meaning to the products and raw materials
  30. of the process.  The information flow is the essence of a software process, and therefore the need
  31. for well-defined software information models is evident.
  32.     A  realistic software engineering information system that takes into account the relations
  33. between input and output information would be a powerful aid in softwareproduction. Software
  34. processes have been much discussed, but the attention to the information in these processes has
  35. not been adequate.  Aprocess cannot exist without an information system, implicit or explicit.
  36. If the software information is explicitly modeled, a better process with enchanced reuse and
  37. reusability will follow.
  38.  
  39.  
  40. Keywords: Reuse, information system, software engineering environments,software production
  41. process.
  42.  
  43.  
  44. Workshop Goals: Communication, exchange of ideas and new idea creation.
  45.  
  46.  
  47. Working Groups:  Reuse process models, Reuse maturity models, Tools and environments,
  48. Reuse management and economics
  49.     I  would like to propose something along the lines of "Reuse in the software life cycle" or
  50. (perhaps better formulation) "How to fit reuse in actual software production". I hope this is
  51. what the "Reuse process models" working group is about.
  52.  
  53.  
  54.  
  55.                                                Yl{-Rotiala- 1
  56.  
  57.  
  58. 1      Background
  59.  
  60.  
  61.  
  62. My background is mostly practical. How to write less code while making more money is a question
  63. that has intrigued me for a long time. I have worked as a programmer and designer (as a "software
  64. engineer") for five years, during which time I have tried to find and build reusable components. My
  65. industrial experiences include working in projects of differing size, and theseexp eriences motivated
  66. me to begin studies aiming to a Ph.D, with a subject relating to reuse. My subject follows quite
  67. closely my position below.
  68.  
  69.  
  70.  
  71. 2      Position
  72.  
  73.  
  74.  
  75. Software producers have been struggling with the problems of productivity, quality and reliability
  76. for  some  time  now.  As  early  as  1969  the  need  for  mass-production  was  recognized.  The  term
  77. "software  factory"  has  been  used  on  several o ccasions.  Analogies  have b een  sought  from  other
  78. engineering disciplines: software reliability modeling has its origins in hardware reliability, building
  79. software  is  often  compared  to  building  bridges  or  houses,  and  the  very  term  "software  reuse"
  80. was borrowed from manufacturing. I  claim that the traditional analogies all more or less fail in
  81. describing the process of software production and that the last of them- software reuse - is one of
  82. the worst of them.  I do not claim that these analogies are worthless,  I merely hold the position
  83. that in order to discuss the software production processes, theirdifficulties and the peculiarities of
  84. enhancing the productivity of software production one shouldconsider the essence of software - its
  85. intangibility,zero-cost replicability, modifiability - and the actual process that creates it. Software
  86. reuse will not just happen, but it is more likely to happen if Joe Programmer's reality is taken into
  87. consideration.
  88.  
  89.  
  90. Software production equals to electronic document manipulation.  When one starts from thescratch,
  91. one has no previous documents to use. If, however, there is some pre-existing material to be used,
  92. and it is used, we usually claim that "reuse"'has taken place.  [1] presents the idea of a maintenance
  93. process that would be based on reuse. The idea can be taken further - the whole software pro duction
  94. could be viewed similarly. When a software house starts, its information base is usually quite small.
  95. If this information base is considered a strategic asset and carefully nurtured, the likelihood of its
  96. usefulness will grow. The benefits for a company cannot be predicted, but I would expect better
  97. producticity and larger revenues.
  98.  
  99.  
  100. In the maintenance-as-reuse -paradigm there is an informationsystem,  which is available to the
  101. software engineer. The engineer has a problem description, and (s)he is to produce a set of other
  102. documents, including  the  program  code  that  will  solve  the  stated  program.  If  the  information
  103. system is to have any real value to the engineer, it should give direct support to the tasks that face
  104. him/her. The engineer has a need to find relevant pieces of information, depending on thetask at
  105. hand and the dependencies and interconnections of these pieces to find out old, proven solutions. If
  106. and when these old solutions are found, the engineer can use (or "reuse" them either by modifying
  107. them  or  connecting  them  in  a  novel  fashion.  This  application  of  old data  to  a  new  problem  is
  108. what lies in the heart of reuse and is an essencial component in software production.  Very seldom
  109. does one start without a single document and build everything from scratch, and if one does, the
  110. competitiveness of the resulting product is likely to be far from optimal.
  111.  
  112.  
  113. The Capability Maturity Model [2] is quite concerned with processes and improving them.  The
  114. repeated, defined and continuous measurement is stressed as a necessary requirement for anyone
  115.  
  116.  
  117.  
  118.                                                       Yl{-Rotiala- 2
  119.  
  120.  
  121. wishing to gain better performance in software production. This approach gives smaller attention
  122. to the actual process that is used in the production and virtually none to the information that is
  123. used in the process.  The structure of the model itself is,  however,  a go od example ofa generic
  124. definition of an information process - the steps to take to reach level 5 just don't lead into building
  125. software, they lead into a software process. The same approach could be used when designing a
  126. software engineering environment - the required data should be made available to the engineer.
  127.  
  128.  
  129. If one is to talk about softwareproductivity and software reuse, it would be beneficial to consider the
  130. way software is currently produced - to build a model of the process that is used to create software.
  131. Naturally, the number of different processes is not known, at least not to me, but one thing remains
  132. as an invariant: software producers use tools to search, modify and connect existing documents,
  133. which they use to produce a set of new, previously unseen documents.  These documents are usually
  134. in a human-understandable form and can be stored. The essential parts of a SWproduction process
  135. are the raw-materials (the existing documents), the tools (e.g. a compiler, or an editor) and the
  136. results (the new documents).
  137.  
  138.  
  139. In manufacturing, the use of older products is true re-use, but the affix "re" somehow seems to lose
  140. meaning with software, which does not need to be reused and indeed cannot be reused. A more
  141. proper analogy would be an accountant, accounting software and an account: the accountant uses
  142. a tool (software) to handle an account (a reusableasset) to modify the account (make deposits
  143. or  withdrawals).  The  accountant  might  even  be  able  to  take  an  existing  account  and  use  it  as
  144. a template in order to create a new one, with the help of the given tool.  Likewise,  the software
  145. engineer uses available information, usually with the help of tools, and produces new information.
  146. The process can have, and should have,a simple description, which can naturally have an infinite
  147. number of refinements and slightly differing instantiations.
  148.  
  149.  
  150. An  explicit  information  model  for  software  engineering do es  not exist,  but  it  should.  Software
  151. engineers have several lower-level methods for doing their work - formal methods, object-orientation,
  152. prototyping  and  cleanroom  software  engineering are  go od  examples of  these  task-oriented  tools.
  153. These tools help the engineer in the task at hand, but they can not provide an environment for the
  154. whole development cycle of the software product, from the customer contact to the product delivery,
  155. or from the first representation of a product idea to the withdrawal of the product from the market.
  156. The task-specific methods should not be disturbed - if certain analysis, design, implementationetc.
  157. methods are familiar, they should naturally be used. Each of these stages should be performed in a
  158. proper information context, not with chaotic document distribution, duplication and modification.
  159. Many a coder finds a version control system useful, and there are people who consider CASE tools
  160. as enhancements to the work. In a similar fashion, a larger information system could help the work
  161. an average engineer.
  162.  
  163.  
  164. The process I have described in the preceding passages is the cornerstone of my position towards
  165. software  reuse.  I  do  not  see  "reuse"  or  "reuse  pro cesses"  interesting  as  such.   What  interests
  166. me are the information models actually used in software producing organizations.  A data model,
  167. an information system and a process which takes all these into account is what I have in mind.
  168. A proper information system, which is easy and natural for software engineers, or even a single
  169. software engineer, will result in a bo ost in pro ductivity. Stated this way, the problem may sound like
  170. a technical one, but it isn't: for an organization larger than just a few people, a consensus shouldb e
  171. reached and the whole organization should agree on the system(though not instantaneously). Also,
  172. the basic model of information processing should be recognized. These are management problems,
  173. which may be easier to solve if the technical problems like what data to store, where and how and
  174. how to search, retrieve and reference the stored data and by which tools, have excellent and obvious
  175. solutions.
  176.  
  177.  
  178.  
  179.                                                       Yl{-Rotiala- 3
  180.  
  181.  
  182. 3      Comparison  with  other  work
  183.  
  184.  
  185.  
  186. I'll explain here the differences and similarities between my position and PCTE[3 ],  CMM[2 ] and
  187. ISO-9000, one by one, and then conclude that my opinions are very similar to those of [4 ] and [5 ].
  188. Especially the work on Software Engineering Environments, Integrated Project Support Environ-
  189. ments [6] and Software Repositories [7 ] arevery close to what I am talking about.
  190.  
  191.  
  192. PCTE is a standard that describes a way to share software engineering data. It has a very powerful
  193. and abstract data modeling device and a well-defined interface.  The difference betweenPCTE and
  194. my position is that PCTE is a meta-meta-model - and is actually on a different level.  PCTE is a
  195. tool to discuss an information system, not an information system assuch.  What is interesting with
  196. PCTE (and similar efforts, e.g. CAIS and CDIF) is that there seem to be common standardsfor the
  197. information systems before there is any kind of an agreementup on the contents of these systems.
  198. This peculiar order of definitions shows itself in the contents of PCTE (and others):  anything can
  199. be modelled within the limits of these standards.
  200.  
  201.  
  202. CMM talks about process, but almost nothing else.  Process is an independent entity,  and I  find
  203. this questionable, since - as we all should know - a process with no defined inputs and outputs is a
  204. pretty useless one. If we take the analogy into a program, CMM's approach would be like talking
  205. about a program's efficiency and overall quality just by looking at the code and at the internal
  206. functioning of the program.  Whatseems to be missing is the link to the outer world, the inputs
  207. and the outputs.
  208.  
  209.  
  210. ISO-9000 is a general standard concerning the quality of a firm.  ISO-9000 is concerned with the
  211. formal, repeatable and documented quality assurance of an organization.  It gives quidelines for
  212. things  like  audits, formal  approvals  and  well-defined  responsibilit!es  and  authorities  during  the
  213. production. Little, if anything is said about actual production, about the stages of a process where
  214. the  possible  errors  are  being  made.  Some  consultants  claim  that  following  ISO-9000  results  in
  215. improved productivity in the field of software production, which claims may or may not be true.
  216. However, ISO-9000 is only a general framework into which an information system could be fitted.
  217. So, ISO-9000 is interesting as a starting point or as an organizational context.
  218.  
  219.  
  220. Brown's text about the nature of a software engineering database is a good one and, in my opinion,
  221. a correct one.  The work of e.g.  Jarke et al.  [4] and Rombach [5 ] has the same direction that I have
  222. in mind. Software producers should develop their data models and build their information systems
  223. and processes accordingly.  The routine work done by engineers should increasingly happen with
  224. the information base. The difficulty of this task is described in [8], but the task should not be an
  225. impossible one.
  226.  
  227.  
  228.  
  229. References
  230.  
  231.  
  232.  
  233. [1]  V. Basili, "Viewing Maintenance as Reuse-Oriented Software Development," IEEE Software,
  234.      pp. 19-25, January 1990.
  235.  
  236.  
  237. [2]  M.  Paulk,  B.  Curtis,  and  C.  et  al.,  "Capability  Maturity  Model  for  Software," Tech.  Rep.
  238.      CMU/SEI-91-TR-24,  Software Engineering Institute/Carnegie Mellon University,  Pittsburgh,
  239.      Pennsylvania, August 1991.
  240.  
  241.  
  242. [3]  ECMA,  "Portable  Common  Tool  Environment  (PCTE) Abstract  Specification,"  Tech.  Rep.
  243.      ECMA-149, Europ ean Computer Manufacturers Association (ECMA), 1990.
  244.  
  245.  
  246.                                                       Yl{-Rotiala- 4
  247.  
  248.  
  249. [4]  M. Jarke, J. Mylopoulos, J. Schmidt, and Y. Vassiliou, "Information Systems Development as
  250.      Knowledge Engineering:  A Review of the DAIDA Project," Tech. Rep. MIP-9010, University
  251.      of Passau, Passau, Germany, 1990.
  252.  
  253.  
  254. [5]  H. Rombach, "A Specification Framework for SW Processes: Formal Specification and Deriva-
  255.      tion of Information Base Requirements," in Proceedings of the 4th Intn'l SoftwareProcess Work-
  256.      shop, pp. 142-147, ACM, 1988.
  257.  
  258.  
  259. [6]  A. Brown, Database Support for Software Engineering. Kogan Page, 1989.
  260.  
  261.  
  262. [7]  J. Mylopoulos and T. Rose, "Tutorial on Software Repositories," in 15th International Confer-
  263.      ence on Software Engineering, IEEE, 1993.
  264.  
  265.  
  266. [8]  T. Biggerstaff, C. Ellis, F. Halasz, and C. Kellogg, "Information Management Challenges in the
  267.      Software Design Process," Tech. Rep. STP-039-87, MCC, Austin, Texas, 1987.
  268.  
  269.  
  270.  
  271. 4      Biography
  272.  
  273.  
  274.  
  275. Aarne H. Yl{-Rotiala. I received an M.Sc in CS from the University of Helsinki in 1990. I have
  276. worked as a programmer, both as an employee and asan indep endent contractor for five years. I
  277. have participated in several commercialpro jects, as a subcontractor or as a principal contractor.
  278. I have started my Ph.D studies, that were inspired by these practical experiences. Currently I am
  279. working for Nokia Telecommunications' Software Engineering Methodology Development.
  280.  
  281.  
  282.  
  283. 5      Acknowledgements
  284.  
  285.  
  286.  
  287. Many thanks to my wife Tiina for proofreading this text.
  288.  
  289.  
  290.  
  291.                                                       Yl{-Rotiala- 5
  292.