home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / sw / componen / 169 < prev    next >
Encoding:
Internet Message Format  |  1992-11-10  |  9.2 KB

  1. Path: sparky!uunet!ukma!netsys!decwrl!hal.com!parlo.hal.COM!not-for-mail
  2. From: paul@hal.COM (Paul Sander)
  3. Newsgroups: comp.sw.components
  4. Subject: Re: SE and EE components
  5. Date: 10 Nov 1992 16:12:02 -0800
  6. Organization: HaL Computer Systems, Inc.
  7. Lines: 160
  8. Message-ID: <1dpj4iINN57b@parlo.hal.COM>
  9. References: <1992Nov6.175825.2978@ampex.com> <ksand-061192220347@wintermute.apple.com> <1992Nov10.042818.11581@latcs1.lat.oz.au>
  10. NNTP-Posting-Host: parlo.hal.com
  11. Summary: Similarities + idea
  12.  
  13. In article <1992Nov10.042818.11581@latcs1.lat.oz.au> baragry@latcs1.lat.OZ.AU
  14. (Jason M Baragry) writes:
  15. >[...]
  16. >And alot of people have put in their point of view (including me). In my
  17. >research I have briefly compared SE and EE components however with the number
  18. >of comparisions being made in recent articles I believe it would be a good 
  19. >idea to start a discussion about what people think are the differences
  20. >between SE and EE components. (just to ensure these analogies are reasonable)
  21. >[...]
  22. >    The sort of differences I've noted already include:
  23. >
  24. >- Implementation types: SE has many implementation types (programming languages)
  25. >    which support particular design paradigms. ie: OO design and C++, 
  26. >    rule based design and prolog, etc.
  27. >    EE has only a single SET (ananlog & digital could be considered sep.
  28. >    sets but can be easily connected) of components, which leads to 
  29. >    a single design paradigm (modular).
  30.  
  31. There is more to electronic design besides designing the electrical
  32. characteristics of the circuit.  There is also the technology used to
  33. construct the circuit, e.g. breadboards, printed circuits, point-to-point
  34. wiring, IC's, etc.  These are not necessarily modular, and include some
  35. aspects of mechanical engineering.
  36.  
  37. In any case, there are a number of systems in which electronic designers
  38. may design and test their systems.  In the digital world, there are lots
  39. of modelling systems that model a circuit at different levels, e.g. the
  40. gate and cell levels.  There are also transistor models that can be used
  41. in both analog and digital circuits.
  42.  
  43. In the software world, there are already design tools (or at least
  44. methodologies) supporting OO, ER, and procedural models.
  45.  
  46. >- Complex Interconnections: SE modules can pass complex abstract data types
  47. >    and can use call be reference and call by value methods. EE modules
  48. >    do not invoke other modules, all modules operate constantly but the
  49. >    inputs which trigger the outputs are simply changed. In addition,
  50. >    the inputs are simple signals not complex data types.
  51.  
  52. Inputs and outputs do have more complex relationships:  Power supply
  53. voltages, inductive and capacitive loading, impedance of the interconnect,
  54. maximum safe source and sink currents, maximum safe input and output
  55. voltages, maximum rise and fall times, slew rates, delay and hold times,
  56. etc.  The complexity of the interfaces can be quite complex, though that
  57. complexity might somehow be of a different nature than that of software
  58. interfaces.
  59.  
  60. EE modules pass complex signals.  EE modules have inputs, and outputs that
  61. drive the inputs of other modules.  Propogation delays cause the effects of
  62. each module to become visible at different times, often with undesireable side
  63. effects.  There are other temporal relationships between signals (e.g.
  64. RAS and CAS signals in DRAMs, the relationship between inputs and outputs
  65. of phase comparators in phase locked loops, etc.).
  66.  
  67. Electrical design and simulator tools are able to somehow model all of these
  68. things, and are able to present some representation of the behavior of a
  69. circuit.  Software simulators are also able to model the inputs and outputs
  70. of functions, the effects on registers and memory, and so on, and present
  71. some representation of the behavior of a program.
  72.  
  73. >- Predefied components: EE modules are manufactured and mass produced.
  74. >    It is much simpler to purchase a chip with the required functionality
  75. >    than it is to design and construct the chip again. Components which
  76. >    use these chips evolve and develop their own particular functionality,
  77. >    which can also be mass produced on a single chip, etc.
  78.  
  79. SE modules are gathered into libraries and distributed en-masse.  It is
  80. much simpler to link with a library than to implement similar or equivalent
  81. functionality again.  Components which use these libraries can evolve and
  82. develop their own particular functionality, which can also be gathered into
  83. libraries and distributed.
  84.  
  85. Chips and libraries (whether distributed in source or binary form) look a lot
  86. alike in this respect, if the libraries are never modified.
  87.  
  88. >- Families of components: EE components exist in families where the
  89. >    functionality is similar however the implementation characteristics
  90. >    differ. Eg: speed, gain, etc. This helps the designer think in terms
  91. >    of the functionality of the family while designing and then choose the
  92. >    required member during the implementation.
  93.  
  94. SE components exist in families where the functionality is similar however
  95. the implementation and performance characteristics differ.  E.g.:  speed,
  96. scalability, whether or not range queries can be performed, language bindings,
  97. etc.  This helps the designer think in terms of the functionality of the
  98. family while designing and then choose the required member during the
  99. implementation.
  100.  
  101. Also, tying in with the implementation types above, the designer may choose
  102. the semiconductor technology that is used when designing circuits:  Selenium
  103. or silicon?  If silicon, then NMOS, PMOS, CMOS, ECL, I^2L (I-squared-L), SOS,
  104. TTL, hybrids, or others?  Each have their advantages and disadvantages.
  105.  
  106. SE components can be selected based upon capabilities and technology in the
  107. same way that EE components can.
  108.  
  109. >- Malleability of Components: EE components are mass produced on chips which 
  110. >    are easy (sometimes) to integrate with other components. It is therefore
  111. >    advantageous in terms of money, time, and size to utilize these chips
  112. >    instead of re-inventing the component. Although SE re-use is advantageous
  113. >    in terms of time saved, the components are constructed from words which
  114. >    do not need to be purchased from a manufacturer and the physical size
  115. >    of these 'words' is not an issue. Additionally, it is much easier
  116. >    to take existing code and modify it with a text editor than it is to
  117. >    rip the top of a chip and change a resitor value! 
  118. >    Using existing components is imperative in EE while it is merely
  119. >    advantageous in SE. Consequently, programmers find it easier to modify
  120. >    an existing component or write a new one to meet the design rather
  121. >    than slightly modifying the design to accommodate the component as
  122. >    engineers do.
  123.  
  124. Good points here that I can't expand upon, other than to note that this
  125. confirms what we already know:  It's easy to change source code to suit
  126. our immediate needs.  Often it's easier to change the libraries than to
  127. wrap them for equivalent functionality.  This sort of flexibility is almost
  128. impossible with circuits unless the designer takes action to provide a way
  129. to tune a circuit.
  130.  
  131. Although a circuit can't be tuned by prying off the lid of an IC and changing
  132. a resistor value, but many circuits can be tuned.  Designers often provide
  133. special pins that can be used for this; connections for piezoelectric crystals
  134. are an example, as are protection circuits in voltage regulators that limit
  135. the amount of current that can be delivered.  I suggest that software
  136. components can be similarly tuned, via function parameters or structures
  137. that are intended for that purpose, without changing code.
  138.  
  139. >    Are there any other differences / similarities between SE and traditional
  140. >engineering disciplines that people can think of ? 
  141.  
  142. One other.  Suppose we consider the "output" of a function to be anything that
  143. is processed by that function that is visible to the outside (global variables
  144. and the return value are typical examples of this).  Well, invocations of
  145. functions are also visible to the outside, in the sense that the called
  146. functions can see them.  Thus, if function fn1 calls function fn2, then the
  147. parameters passed to fn2 from fn1 can be considered to be outputs of fn1.
  148.  
  149. If we consider each static reference to a function as an instance of that
  150. function, then suddenly we might be able to draw schematic diagrams of our
  151. programs.  Recursive functions look like feedback loops in the schematic.  So
  152. might iteration in some circumstances.  (Well, we knew that recursion and
  153. iteration were equivalent, didn't we?)  Selectors look like, well, selectors.
  154. Variables look like registers.  Tests look like comparators.
  155.  
  156. Simple schematics would then model low-level functions.  Cell libraries
  157. would model higher-level functions.  And maybe some of these tools that
  158. have been developed for electrical engineering can work for software as
  159. well if code generators are added to the schematic capture and simulation
  160. tools.
  161.  
  162. I think this type of modelling can work well for procedural and functional
  163. designs.  If functions become messages and the objects receiving the
  164. messages are included as inputs of the messages, then this might work for
  165. object oriented designs as well.  I'd be interested to hear other people's
  166. thoughts about how dynamic storage could be modeled, as that could be a
  167. severe weakness in this scheme.
  168. -- 
  169. Paul M. Sander  (408) 379-7000  |  "If everything were easy, where would be
  170. HaL Computer Systems, Inc.      |   the challenge?"
  171. 1315 Dell Avenue                |
  172. Campbell, CA  95008  USA        |
  173.