home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / sw / componen / 157 < prev    next >
Encoding:
Text File  |  1992-11-07  |  4.1 KB  |  81 lines

  1. Newsgroups: comp.sw.components
  2. Path: sparky!uunet!decwrl!sdd.hp.com!cs.utexas.edu!qt.cs.utexas.edu!yale.edu!yale!gumby!destroyer!wsu-cs!vela!cs.uiuc.edu!johnson
  3. From: johnson@cs.uiuc.edu (Ralph Johnson)
  4. Subject: Re: Reuse Discussion Topics (Was: Reuse and Software Components)
  5. Message-ID: <BxAq2J.4Kv@cs.uiuc.edu>
  6. Organization: University of Illinois, Dept. of Comp. Sci., Urbana, IL
  7. References: <1992Oct29.182814.17630@den.mmc.com> <6597@dove.nist.gov> <1992Nov3.050919.8442@latcs1.lat.oz.au> <Bx56G1.8pr@cs.uiuc.edu> <jubo.720960526@rwthi3>
  8. Date: Fri, 6 Nov 1992 13:13:30 GMT
  9. Lines: 70
  10.  
  11. jubo@rwthi3.informatik.rwth-aachen.de (Juergen Boerstler) writes:
  12.  
  13. >Right, if you assume inheritance=subtyping!
  14.  
  15. I was very careful not to use the word "inheritance".  Subtyping is
  16. what is important when you are trying to plug components together.
  17. Inheritance is useful for making new kinds of components, which is
  18. a different problem.  I was talking only about subtyping in the last
  19. message, not inheritance, because they are not equal.
  20.  
  21. >In "designing" this way you will loose control over your "architecture",
  22. >since most of the dependencies you introduce are not explicitely visible in
  23. >your interfaces. Ok, there are a lot of tools that help (e.g. browsers), but
  24. >to find the places of interest (i.e. which methods are executed) is a mess.
  25.  
  26. I don't agree.  The whole idea is to talk at the level of interfaces,
  27. not to have to look at the code with a browser.  How can you say that
  28. most of the dependencies are not visible in the interfaces?  If not,
  29. then what is an interface?
  30.  
  31. >>Common interfaces eliminate the need for module interconnection languages.
  32.  
  33. >This is a definite NO!! How do you want to define common interfaces without
  34. >a common (module interconnection) language? 
  35.  
  36. I guess we have different definitions of a MIL.  I do not consider an
  37. interface description language to be a MIL.  Thus, I don't consider the
  38. OMG DDL to be a MIL.  It is just a language independent type system.
  39. I think of a MIL as being something like Jim Purtillo's (from Maryland)
  40. system, which not only describes the interfaces, but describes how to
  41. convert from one interface to another.
  42.  
  43. >>A MIL is way of hooking components together even when they do not have
  44. >>similar interfaces.  You still have to do a bit of work to connect them.
  45.  
  46. >How is this different from "... put a Wrapper around ..." (see above)?
  47.  
  48. Well, wrappers don't convert interfaces.  They produce something that
  49. has the same interface that we started out with.
  50.  
  51. >>A great example of a standard interface is the electric system.  In the
  52. >>U.S., all houses have 110 volts 60 hz current, and a consumer can buy
  53. >>appliances from any store, hook them into any house, and they all work.
  54. >>The consumer doesn't have to know very much about electricity, other than
  55. >>things like "you have to plug an appliance in before it will work" and
  56. >>"don't stick a fork in the wall socket".  An engineer designing a toaster
  57. >>(i.e. someone designing a new component) has to know a lot about 
  58. >>electricity, but the average consumer (i.e. someone useing the component)
  59. >>does not.  EXACTLY the same is true of software.
  60.  
  61. >And exactly to communicate the important aspects of such things is the essence
  62. >and purpose of MILs (module interconnection languages). Your common interface
  63. >is useless, if the consumer does not know what "you have to plug an appliance
  64. >in before it will work" means.
  65.  
  66. There are at least two levels of meaning to an interface like "American
  67. house current".  One is the meaning known to an EE.  The other is the
  68. meaning known to my mother.  My mother doesn't know anything about volts
  69. or frequency.   She just knows that she can connect a plug into a
  70. compatible socket.  EVERYBODY in the country knows what "you have to plug
  71. an applicance in before it will work", that was my point.  You don't
  72. have to know ANYTHING about the details of the interface to use it.
  73.  
  74. What this means in a software system is that we shouldn't have to know
  75. anything about the details of an interface except its name.  We should
  76. only have to know that we need a FOO, not what operations are legal on
  77. a FOO.
  78.  
  79.  
  80. Ralph Johnson -- University of Illinois at Urbana-Champaign
  81.