home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk1.iso / answers / object-faq / part3 < prev    next >
Internet Message Format  |  1994-09-17  |  62KB

  1. Path: bloom-beacon.mit.edu!senator-bedfellow.mit.edu!faqserv
  2. From: Bob Hathaway <rjh@geodesic.com>
  3. Newsgroups: comp.object,comp.answers,news.answers
  4. Subject: Comp.Object FAQ Version 1.0.6 (9-15) Part 3/9
  5. Supersedes: <object-faq/part3_777166834@rtfm.mit.edu>
  6. Followup-To: comp.object
  7. Date: 17 Sep 1994 12:04:22 GMT
  8. Organization: Geodesic Systems
  9. Lines: 1551
  10. Approved: news-answers-request@MIT.Edu
  11. Expires: 31 Oct 1994 12:03:01 GMT
  12. Message-ID: <object-faq/part3_779803381@rtfm.mit.edu>
  13. References: <object-faq/part2_779803381@rtfm.mit.edu>
  14. NNTP-Posting-Host: bloom-picayune.mit.edu
  15. Summary: Frequently Asked Questions (FAQ) List and Available Systems For Object-Oriented Technology
  16. X-Last-Updated: 1994/09/15
  17. Originator: faqserv@bloom-picayune.MIT.EDU
  18. Xref: bloom-beacon.mit.edu comp.object:12652 comp.answers:7311 news.answers:25851
  19.  
  20. Archive-name: object-faq/part3
  21. Last-Modified: 9/15/94
  22. Version: 1.0.6
  23.  
  24.     -    wrapping existing databases and legacy 
  25.         applications for improved availability
  26.         and maintainability on systems of heterogeneous 
  27.         computers, operating systems and networks
  28.  
  29.     -    building next-generation, object-oriented, 
  30.         distributed computing applications for
  31.         networks of heterogeneous computers, operating 
  32.         systems and network operating systems
  33.  
  34. Cooperative Frameworks come with predefined object services 
  35. for implementing distributed systems:
  36.  
  37.     -    Naming - network implementation of X.500 directory 
  38.         provides object naming service
  39.  
  40.     -    Logging - provides local and server based error 
  41.         logging
  42.  
  43.     -    Fine-grain Data Management - class libraries are 
  44.         designed around fine grained objects, developers can 
  45.         build distributed objects as large or as small as 
  46.         needed
  47.  
  48.     -    Persistence - the same object stream model for 
  49.         communication between internal ORB functions is used to 
  50.         support object persistence.  Persistent objects can be 
  51.         files, relational or object databases
  52.  
  53.     -    Dynamic Service Location - provides a mechanism for 
  54.         registering services and entities in a distributed 
  55.         system and invoking targeted services based on service 
  56.         characteristics -- rather than names
  57.  
  58.     -    Dynamic Service Activation - provides a mechanism for 
  59.         object activation when method invocations are required, 
  60.         and deactivation when not needed
  61.  
  62.     -    Event Service (Release 3.1) - Implements an OMG/JOSS 
  63.         compliant event service
  64.  
  65.     -    Network Configuration Tools - simplifies creation of 
  66.         directory entries required for cross domain operation 
  67.         in a multiple domain heterogeneous network.
  68.  
  69. NCR Cooperative Frameworks run on multiple UNIX platforms, 
  70. including HP-UX, Sun Solaris, NCR 3000 UNIX and NCR 
  71. StarServer UNIX SVR4; and on MS Windows 3.1.  Cooperative 
  72. Frameworks has been demonstrated on Novell NetWare v3.11, 
  73. and was originally developed on MS OS/2 v1.x.  Development 
  74. environments supported include CFRONT and C++ Workbench from 
  75. NCR, HP Softbench Sun SPARCworks and Borland IDE.
  76.  
  77. Implementation - implementation is for client/server system 
  78. architectures as a set of DLL and shared libraries
  79.  
  80. Languages used for IDL mapping - IDL bindings for C, (or 
  81. object services can be implemented directly in C++)
  82.  
  83. Release date - Release 3.0 is available now to early 
  84. developers with general availability set for December, 1993; 
  85. Release 3.1 will be available to early developers 1Q 1994 
  86. with general availability set for 2Q 1994
  87.  
  88. Product interoperability - Full interoperability between NCR 
  89. Cooperative Framework implementations on supported platforms 
  90. is available now; interoperability with selected CORBA 1.1 
  91. ORBs and CORBA 2.0 ORBs is planned
  92.  
  93. Company Name -
  94. NCR Corporation (An AT&T Company)
  95.  
  96. Address --    Software Products Division-Columbia
  97.             3245 Platt Springs Road
  98.             West Columbia SC 29170
  99.  
  100.             Phone
  101.             (803) 939-7500
  102.             FAX
  103.             (803) 939-7745
  104.             Contact Name
  105.             Randy Volters, Sr. Product Manager
  106.             Cooperative Frameworks
  107.             Email: Randy.Volters@ColumbiaSC.NCR.COM
  108.             Ext. 7774
  109.  
  110. Company Description -
  111. NCR, AT&T's computer business, brings computing and 
  112. communications solutions together to provide people easy 
  113. access to information and to each other -- anytime, 
  114. anywhere.
  115.  
  116.  
  117. > Suite Software SuiteDOME
  118.  
  119. Product:  DOME - Distributed Object Management Environment
  120.  
  121. Company:  Object Oriented Technologies Ltd
  122.           118-120, Warwick Street, Leamington Spa, CV32 4QY  England
  123.  
  124. Contact:  Chris Nugent,  email: chris@rtc.co.uk
  125.           tel: +44 (0)926 313133  fax: +44 (0)926 422165
  126.                         
  127. Short Description:
  128.         DOME provides heterogenous distribution across many platforms
  129.         and networks, including:
  130.             UNIX, Windows, Windows NT, OS/2, OSF/1 (AXP), OpenVMS, 
  131.             SunOs, Solaris, HP-UX, SGI Unix, Stratus FTX,
  132.             TCP/IP, NetBIOS, XTI
  133.         As a fully peer-to-peer product DOME can be used to build systems
  134.         using any combination of the above.
  135.  
  136. Long Description:
  137.         DOME is an ORB toolkit for the production of user-configured
  138.         ORBs and servers. It is a multi-threaded high performance ORB
  139.         suitable for use in large scale commercial systems and embedded 
  140.         real-time systems.
  141.  
  142.         DOME is non-intrusive, meaning that the application development
  143.         is separated from the means of distribution and the problem of
  144.         distributed object management; this allows the application to
  145.         be built and tested on a single machine using local resources.
  146.         Existing software can also be incorporated easily, providing
  147.         integration for legacy systems.
  148.  
  149.         DOME is constructed as a C++ class library, from which ORBs
  150.         can be configured and constructed to best suit the runtime
  151.         environment. This provides great flexibility since new classes
  152.         can be derived from existing ones and the resulting configurations 
  153.         implemented to user-specific requirements.
  154.  
  155.         Database distribution can be as simple persistent files, 
  156.         RDBMSs, OODMS, or a combination of these.
  157.  
  158.         DOME has a CORBA-conformant interface, and is CORBA 1.0 compliant
  159.         with the following divergences -
  160.         additions:
  161.         - full C++ binding,
  162.         - integral support for GUI development,
  163.         - network monitoring & analysis,
  164.         - transaction management,
  165.         - location broking,
  166.         - enhanced security;
  167.         ommissions:
  168.         - dynamic invocation, which is seen as detrimental to performance 
  169.           and network security; however, DOME does allow stream operators 
  170.           to perform the same function.
  171.  
  172.         DOME was first released in August 1993; version 2 in May 1994.
  173.  
  174.  
  175. 3.8.7  Books, Articles, And Literature
  176. --------------------------------------
  177.  
  178. This section is expected to grow considerably in the future.
  179.  
  180. "Distributed Object Computing With CORBA", C++ Report, July/August 1993
  181.  
  182. The Object Database Standard: ODMG-93
  183. edited by: R.G.G. Cattell
  184. published by Morgan Kaufmann Publishers, San Mateo, California
  185. [Covers CORBA standards with respect to OODBs]
  186.  
  187.  
  188. 3.9)  Why Is Garbage Collection a Good Thing?
  189. ---------------------------------------------
  190.  
  191.   From: Paul Johnson (paj@gec-mrc.co.uk)
  192.  
  193. Garbage collection (GC) is a facility in the run-time system associated with a
  194. language which will automatically reclaim objects which are no longer used.
  195. OO Languages which require garbage collection include Eiffel, Smalltalk and
  196. CLOS.  C and C++ can have garbage collection retrofitted (see [3] below).
  197. [Ada has switchable GC, too -bob]
  198.  
  199. Without GC programmers must explicitly deallocate dynamic storage when
  200. it is no longer needed (in C this is done by a call to free(3)).
  201. There are a number of problems with this:
  202.  
  203. 1: Bugs due to errors in storage deallocation are very hard to find,
  204.    although products are available which can help.
  205.  
  206. 2: In some circumstances the decision about whether to deallocate
  207.    storage cannot be made by the programmer.  Drawing editors and
  208.    interpreters often suffer from this.  The usual result is that the
  209.    programmer has to write an application-specific garbage collector.
  210.  
  211. 3: An object which is responsible for deallocating storage must be
  212.    certain that no other object still needs that storage.  Thus many
  213.    modules must co-operate closely.  This leads to a tight binding
  214.    between supposedly independent modules.
  215.  
  216. 4: Libraries with different deallocation strategies are often
  217.    incompatible, hindering reuse.
  218.  
  219. 5: In order to avoid problems 3 and 4, programmers may end up copying
  220.    and comparing whole objects rather than just references.  This is a
  221.    particular problem with temporary values produced by C++ overloaded
  222.    operators.
  223.  
  224. 6: Because keeping track of storage is extra work, programmers often
  225.    resort to statically allocated arrays.  This in turn leads to
  226.    arbitrary restrictions on input data which can cause failure when
  227.    the assumptions behind the chosen limits no longer apply.  For
  228.    instance many C compilers limit expression nesting, identifier
  229.    length, include file nesting and macro stack depth.  This causes
  230.    problems for programs that generate C.
  231.  
  232. One partial solution to a lack of GC is reference counting.  In this
  233. scheme each object keeps a count of references to it.  When this count
  234. drops to zero the object is automatically deallocated.  However this
  235. is inefficient (swapping two references will result in three
  236. decrements, three increments and six comparisons) and cannot reclaim
  237. circular data structures.  Two systems that use a reference count GC
  238. are the Interviews C++ graphics library and the Unix file system (the
  239. link count).
  240.  
  241. Opponents of GC reply that it introduces an overhead which is
  242. unacceptable in some applications.  However the overhead of manual
  243. storage deallocation is probably as high as GC.  GC algorithms are
  244. also available with good real-time behaviour.
  245.  
  246. [Further, GC can perform compaction improving locality of reference.]
  247.  
  248. Further Reading:
  249.  
  250. [1] "Object-Oriented Software Construction" by Meyer puts the argument
  251. for GC.
  252.  
  253. [2] "Uniprocessor Garbage Collection Techniques," by Paul R. Wilson,
  254. in Memory Management (proceedings of 1992 Int'l Workshop on Memory 
  255. Management, Sept. 1992, St. Malo, France, Yves Bekkers and Jacques Cohen, 
  256. eds.), Springer Verlag Lecture Notes in Computer Science #637.
  257.  
  258. This is an excellent summary of the state of the art in GC algorithms.  This
  259. and other papers about garbage collection are available in PostScript via
  260. anonymous ftp (cs.utexas.edu:pub/garbage/gcsurvey.ps.  [See APPENDIX E]
  261.  
  262. [3] "Garbage Collection in an Uncooperative Environment" by Boehm and
  263. Weiser.  Software --- Practise and Experience vol 18(9), pp 807-820.
  264. Sept 1988.  This describes GC in C and C++.
  265.  
  266.  
  267. 3.10)  What Can I Do To Teach OO To The Kids?
  268. ---------------------------------------------
  269.  
  270. Smalltalk (in its original 1972 version) was initially intended to make
  271. computer programming easy enough for children.  The idea was that manipulating
  272. objects was something more intuitive and natural than coding procedures.
  273.  
  274. Other entries or suggestions are welcome, please send to the author of the FAQ.
  275.  
  276.  
  277. 3.11) What Is Available On Object-Oriented Testing?
  278. ---------------------------------------------------
  279.  
  280. [This entry was donated by Doug Shaker and is certainly a FAQ]
  281.  
  282. Testing of Object-Oriented Programming (TOOP) FAQ/Resource Summary
  283.  
  284. Posted to comp.object, comp.lang.c++, comp.lang.smalltalk and
  285. comp.software.testing.
  286.  
  287. Last revised on 93.10.27.  The most notable change is in the additions
  288. to the Software section.  Also a couple of articles added to the
  289. Written Material section.
  290.  
  291.  
  292. > What?
  293.  
  294. This is a summary of resources on the Testing of Object-Oriented
  295. Programming that have been mentioned to me over the net, in email,
  296. or other means.  Sections include Written Material, Courses, and
  297. Software.  It is kind of like an FAQ, though it isn't organized 
  298. that way.
  299.  
  300. > Who?
  301.  
  302. I work for a Unix software house, Qualix Group, in the US.   Here is
  303. my sig:
  304.  - Doug Shaker
  305.     voice:    415/572-0200
  306.     fax:    415/572-1300
  307.     email:    dshaker@qualix.com
  308.     mail:    Qualix Group
  309.         1900 S. Norfolk St., #224
  310.         San Mateo, CA 94403
  311. I am NOT a researcher on the testing of object-oriented programming.
  312. I just collate the stuff that is sent to me by people who REALLY know
  313. something.  See the section "ACKs" at the end.
  314.  
  315. I just think it is important.
  316.  
  317. > Why?
  318.  
  319. Why is this important? If classes are really to be reused in
  320. confidence, they must be blatantly correct.  The classes must be easily
  321. testable during initial evaluation by the client programmer.  They must
  322. also be testable under different OS configurations, different compiler
  323. optimizations, etc.  This means that testing modules must be
  324. constructed in a way which is recognized as correct and the modules
  325. must be shipped with the class libraries.  
  326.  
  327. As soon as one major class library vendor starts to ship real test code
  328. with their libraries, all of the other vendors will be forced, by
  329. market pressure, to do so as well, or face market share erosion.  Think
  330. about it.  If you had to recommend a class library to a committee that
  331. was choosing a basis for the next five years of work, wouldn't you feel
  332. safer with a class library that could be auto-tested in your
  333. environment?
  334.  
  335.  
  336. > Written Material
  337.  
  338. Berard, Edward.  Essays on Object-Oriented Software Engineering.  
  339.     Prentice-Hall, Englewood Cliffs, NJ. $35.
  340.     This book has two chapters on testing of object-oriented software, 
  341.     focusing on how to do it.
  342.  
  343. Berard, Edward.  Project Management Handbook.  Must be purchased
  344.     direct from Berard Software Engineering, Ltd., 902 Wind River
  345.     Lane, Suite 203, Gaithersburg, Maryland 20878.  $225.
  346.     The book focuses on the management of OOP projects.  It
  347.     includes one chapter on testing OO software and one chapter
  348.     on quality assurance.
  349.  
  350. Bezier, Boris, "Software Testing Techniques", 2nd edition, Van Nostrand
  351.     Reinhold, 1990, 503pp, $43, ISBN 0-442-20672-0.  While this is
  352.     not specifically about testing of OOP, it is mentioned so often
  353.     by so many people as a definitive software testing work, that
  354.     I have to mention it anyway.
  355.  
  356. Cheatham Thomas J., and Lee Mellinger, "Testing Object-Oriented
  357.     Software Systems",  Proceedings of the 18th ACM Annual Computer
  358.     Science Conference, ACM, Inc., New York, NY, 1990, pp. 161-165.
  359.  
  360. Doong, Roong-Ko and Phyllis G. Frankl, "Case Studies on Testing 
  361.     Object-Oriented Programs", Proceedings of the 4th Symposium on
  362.     Testing, Analysis, and Verification (TAV4), 1991, ACM, Inc.,
  363.     New York, NY, 1991, pp. 165-177.
  364.  
  365. Fiedler, Steven P., "Object-Oriented Unit Testing", Hewlett-Packard 
  366.     Journal, April, 1989, pp. 69-74.
  367.  
  368. Firesmith, D.G., "Testing Object-Oriented Software", Proceedings 
  369.     of 11th. TOOLS USA Conference, Santa Barbara, Aug 1993, pp 407-426.
  370.  
  371. Frankl, Phyllis G. and Roong-Ko Doong, "Tools for Testing 
  372.     Object-Oriented Programs", Proceedings of the 8th Pacific
  373.     Northwest Conference on Software Quality, 1990, pp. 309-324.
  374.     One author can be reached at pfrankl@polyof.poly.edu.
  375.  
  376. Graham, J.A., Drakeford, A.C.T., Turner, C.D. 1993. The Verification, 
  377.     Validation and Testing of Object Oriented Systems, BT Technol
  378.     J.  Vol 11, No 3. One author's email address is
  379.     jgraham@axion.bt.co.uk.
  380.  
  381. Harrold, Mary Jean, John D. McGregor, and Kevin J. Fitzpatrick, 
  382.     "Incremental Testing of Object-Oriented Class Structures",
  383.     International Conference on Software Engineering, May, 1992,
  384.     ACM, Inc., pp. 68 - 80.
  385.  
  386. Hoffman, Daniel and Paul Strooper.  A Case Study in Class Testing.
  387.     To be Presented at the IBM Center for Advanced Studies Fall
  388.     Conference, October 1993, Toronto.  Email addresses for authors
  389.     are dhoffman@csr.uvic.ca and pstropp@cs.uq.oz.au.  Describes an
  390.     approach to testing which the authors call Testgraphs.  An
  391.     example is worked out in C++ which tests a commercial class.
  392.  
  393. Hoffman, D. M.  A CASE Study in Module Testing.  In Proc. Conf. Software
  394.     Maintenance, pp. 100-105. IEEE Computer Society, October 1989.
  395.  
  396. Hoffman, D.M. and P.A. Strooper.  Graph-Based Class Testing.  In 
  397.     7th Australian Software Engineering Conference (to appear), 1993.
  398.  
  399. Klimas, Edward "Quality Assurance Issues for Smalltalk Based Applications", 
  400.     The Smalltalk Report, Vol. 1, No. 9, pp.3-7.  The author's
  401.     email address is "ac690@cleveland.freenet.edu".
  402.  
  403. Lakos, John S.  "Designing-In Quality in Large C++ Projects" Presented
  404.     at the 10th Annual Pacific Northwest Software Quality Conference,
  405.     Portland, Oregon, October 21, 1993.  Abstract:
  406.         The focus of this paper is on ensuring quality by
  407.         designing software that avoids acyclic component
  408.         dependencies.  This in-turn permits incremental,
  409.         hierarchical testing.  The importance of good physical
  410.         design becomes a key factor only for large and very
  411.         large projects.  Intuition gained from smaller projects
  412.         leads to errors in large designs.  Compile-coupling
  413.         ("Insulation") is also discussed.
  414.     Copies of the postscript file can be obtained by sending email
  415.     to "john_lakos@warren.mentorg.com".
  416.  
  417. Leavens, G. T., "Modular Specification and Verification of 
  418.     Object-Oriented Programs", IEEE Software, July 1991, pp. 72-80.
  419.  
  420. Love, Tom.  Object Lessons.  SIGS Books, 588 Broadway #604, New York, NY 
  421.     10012. $49.
  422.     This book eloquently elucidates the need for testing of object-
  423.     oriented code and has a chapter on how it was done at Stepstone
  424.     during the first release of their initial class library.
  425.  
  426. Marick, Brian.  The Craft of Software Testing, Prentice-Hall, in press.
  427.     Makes the argument that testing of object-oriented software is
  428.     simply a special case of testing software which retains state
  429.     and which is resused.  The author can be reached at 
  430.     info@testing.com.
  431.  
  432. Narick, Brian. "Testing Software that Reuses", Technical Note 2, Testing
  433.     Foundations, Champaign, Illinois, 1992. Copies may be obtainable 
  434.     via email. The author can be reached at info@testing.com.
  435.  
  436. Murphy, G.C., Wong, P. 1992, Towards a Testing Methodology for 
  437.     Object Oriented Systems, M.P.R Teltech Ltd. A poster at the
  438.     Conference on Object Oriented Programming Systems, Languages
  439.     and Applications ACM. Copies of this paper can be obtained
  440.     through townsend@mprgate.mpr.ca.
  441.  
  442. Murphy, G. and P. Wong.  Object-Oriented Systems Testing Methodlogy: An
  443.     Overview.  Techical Report TR92-0656, MPR Teltech Ltd., October 
  444.     1992.
  445.  
  446. Perry, D.E. and G.E. Kaiser, "Adequate Testing and Object-Oriented 
  447.     Programming", Journal of Object-Oriented Programming, 
  448.     2(5):13-19, Jan/Feb 1990.
  449.  
  450. Purchase, Jan A. and Russel L. Winder, "Debugging tools for 
  451.     object-oriented programming", Journal of Object-Oriented 
  452.     Programming, June, 1991, Vol. 4, No. 3, pp. 10 - 27.
  453.  
  454. Smith, M. D. and D. J. Robson, " A Framework for Testing Object-Oriented 
  455.     Programs", JOOP, 5(3):45-53, June 1992.
  456.     Describes ways in which the usual approach to software testing
  457.     could be adapted for object-oriented software.
  458.     This paper, or one with the same title and authors, is
  459.     available by anonymouns ftp from vega.dur.ac.uk as
  460.     "/pub/papers/foot.dvi".
  461.  
  462. Smith, M. D. and D. J. Robson, "Object-Oriented Programming - the 
  463.     Problems of Validation",  Proceedings of the 6th International 
  464.     Conference on Software Maintenance 1990, IEEE Computer Society 
  465.     Press, Los Alamitos, CA., pp. 272-281.
  466.  
  467. Taylor, David. "A quality-first program for object technology", Object 
  468.     Magazine, Vol. 2, No. 2, July-August 1992, pp17-18. SIGs
  469.     Publications.  The article talks some about why testing is
  470.     important for OOP and describes one quality program.
  471.  
  472. Theilen, David.  "No Bugs.  Delivering error free code in C and C++.",
  473.     Addison-Wesley, 1992, ISBN:0-201-60890-1.
  474.  
  475. Turner, C. D. and D. J. Robson, "The Testing of Object-Oriented Programs",
  476.     Technical Report TR-13/92, Computer Science Division, School of
  477.     Engineering and Computer Sciences (SECS), University of Durham,
  478.     England.
  479.     Includes a survey of existing literature on testing of OO
  480.     programs.  Testing of OOP is compared with traditional software
  481.     testing.  A state-based approach is described.
  482.     This paper is available by anonymous ftp from vega.dur.ac.uk in
  483.     /pub/papers. Get "toop.ps.Z" for A4 paper and "toopus.ps.Z" for
  484.     US letter paper formatting.
  485.  
  486. Turner, C. D. and D. J. Robson, "A Suite of Tools for the State-Based
  487.     Testing of Object-Oriented Programs", Technical Report
  488.     TR-14/92, Computer Science Division, School of Engineering and
  489.     Computer Science (SECS), University of Durham, Durham,
  490.     England.  Describes a series of tools for the generation and
  491.     execution of test cases for OOP.  These tools assume a
  492.     state-based testing approach.
  493.     This paper is available by anonymous ftp from vega.dur.ac.uk in
  494.     /pub/papers.  Get "tools.ps.Z" for A4 paper formatting or get
  495.     "toolsus.ps.Z" for US letter formatting.
  496.  
  497. Turner, C. D. and D. J. Robson, "Guidance for the Testing of Object-
  498.     Oriented Programs", Technical Report TR-2/93, Computer Science
  499.     Division, School of Engineering and Computer Science (SECS),
  500.     University of Durham, Durham, England.  Discusses different
  501.     methods of making class declarations and the implications of
  502.     those methods for testing.
  503.     This paper is available by anonymous ftp from vega.dur.ac.uk in
  504.     /pub/papers.  Get "guide.ps.Z" for A4 paper formatting or get
  505.     "guideus.ps.Z" for US letter formatting.
  506.  
  507. Turner, C. D. and D. J. Robson, "State-Based Testing and Inheritance",
  508.     Technical Report TR-1/93, Computer Science Division, School of
  509.     Engineering and Computer Science (SECS), University of Durham,
  510.     Durham, England.
  511.     Discusses the implications of inheritance for testing,
  512.     particularily incremental testing.
  513.     This paper is available by anonymous ftp from vega.dur.ac.uk in
  514.     /pub/papers.  Get toopinht.ps.Z" for A4 paper formatting or get
  515.     "toopinhtus.ps.Z" for US letter formatting.
  516.  
  517. Wong, P. Automated Class Exerciser (ACE) User's Guide.  Technical
  518.     Report TR92-0655, MPR Teltech Ltd., September 1992.
  519.  
  520. > Courses
  521.  
  522. Berard Software Engineering, Inc. teaches a seminar on Testing of
  523. Object-Oriented Software (TOOS).  The next one scheduled that I know of
  524. is November 8-12, in Washington.  Call 301-417-9884 for details.
  525.  
  526. Quality Fractals, Inc. has a course called "Testing Object-Oriented
  527. Software".  Contact: 508-359-7273 (Box 337, Medfield, MA 02052).  The
  528. course is taught by Shel Siegel of YESS!, Inc.  Contact: 916-944-1032.
  529.  
  530.  
  531. > Software
  532.  
  533. There is a smalltalk class library in the Univ. of Illinois archives
  534. which includes a simple Tester class written by Bruce Samuelson
  535. (bruce@utafll.uta.edu). It is a general superclass for application
  536. specific classes that test non-interactive objects such as trees,
  537. collections, or numbers. It is not suitable for testing user interface
  538. components such as windows, cursors, or scroll bars. The filein
  539. includes Tree classes, Tester itself, and subclasses of Tester that are
  540. used to validate the Tree classes. For ParcPlace Smalltalk (ObjectWorks
  541. 4.1 and VisualWorks 1.0). To get it ftp the file
  542. "/pub/st80_vw/TreeLW1.1" from st.cs.uiuc.edu.
  543.  
  544. IPL Ltd. (in the UK) has a testing tool called Cantata which allows for
  545. testing C++, but as far as I am able to determine, it has no special
  546. features for C++ testing.  From the product literature:
  547.     Cantata allows testing to be performed in an intuitive way
  548.     making the tool exceptionally easy to use and productive in
  549.     operation. Cantata is suitable for testing software written in
  550.     either C or C++.
  551.  
  552.     Cantata provides comprehensive facilities for all forms of
  553.     dynamic testing, including: functional testing, structural
  554.     testing, unit testing and integration testing. Cantata has been
  555.     specifically designed to operate in both host and target
  556.     systems and so allow full portability of tests between these
  557.     environments.
  558. For more information contact IPL:
  559.     IPL Ltd.
  560.     Eveleigh House, Grove Street, 
  561.     Bath  BA1 5LR
  562.     UK
  563.     (0225) 444888
  564.     (0225) 444400 (FAX)
  565.     email: shaun@iplbath.demon.co.uk
  566.  
  567. TestCenter from CenterLine will do coverage testing of C++ (and C)
  568. code.  Also does some memory debugging (similar to Purify) and regression
  569. testing.  Highlights from CenterLine literature:
  570.   *Automatic run-time error-checking on executables to enhance quality 
  571.   *Automatic memory leak detection on executables to optimize memory use
  572.   *Graphical test coverage to highlight any code not executed during test runs
  573.   *Intuitive GUI for easy test analysis 
  574.   *Programmatic interface to output files and cumulative code coverage 
  575.    to support batch-mode and regression testing
  576.   *No recompilation needed, resulting in quick turnaround
  577.   *Complete C and C++ language support
  578.   *Integration with leading programming tools for maximum productivity gains
  579.  
  580. MicroTech Pacific Research (mpr.ca) has a C++ class testing tool called
  581. ACE (Automated Class Exerciser) which is available under non-disclosure
  582. agreement.  It is not currently for sale.  If you are interested,
  583. contact Paul Townsend, townsend@mprgate.mpr.ca.
  584.  
  585. Software Research Inc. (625 Third St, San Francisco, CA 94107-1997,
  586. voice: 1-415-957-1441, email: info@soft.com) has a coverage tool for C++
  587. that is called tcat++.  It is an extension of SRI's tcat program.
  588.  
  589. Quality Assured Software Engineering (938 Willowleaf Dr., Suite 2806,
  590. San Jose, CA 95128, voice: 1-408-298-3824 ) has a coverage tool for
  591. C and C++ called MetaC.  It also dones some syntax checking and memory
  592. allocation checking.
  593.  
  594. A group of volunteers is building a C++ test harness for the automated
  595. testing of C++, C and Perl programs.  The system is called ETET (Extended
  596. Test Environment Toolkit).  To join the group of volunteers, send email to
  597.     etet_support@uel.co.uk
  598. The software is available via anonymous FTP from bright.ecs.soton.ac.uk
  599. (152.78.64.201) as "/pub/etet/etet1.10.1.tar.Z".  They are looking for
  600. other FTP sites - sned email to the above address if you can provide
  601. one.  This is a beta release and _should_ compile on any POSIX.1 system.
  602. As much of this work is being done by SunSoft, my guess is that the
  603. software will have the fewest problems on SunOS or Solaris releases.
  604.  
  605. > ACKs
  606.  
  607. Thanks to the following for helping assemble this list:
  608.     Benjamin C. Cohen, bcohen@scdt.intel.com
  609.     Brian Marick, marick@hal.cs.uiuc.edu
  610.     Bruce Samuleson, bruce@utafll.uta.edu
  611.     Daniel M. Hoffman, dhoffman@uvunix.uvic.ca
  612.     Edward Klimas, ac690@cleveland.freenet.edu
  613.     John Graham, J.Graham@axion.bt.co.uk
  614.     Jim Youlio, jim@bse.com
  615.     Jeffery Brown, jeffrey.brown@medtronic.com
  616.     Lars Jonsson, konlajo@etna.ericsson.se
  617.     Manfred Scheifert, ch_schie@rcvie.co.at
  618.     Mark Swanson, mswanson@mechmail.cv.com
  619.     Mary L. Schweizer, mary@gdwest.gd.com
  620.     Michael Einkauf, Michael_Einkauf@iegate.mitre.org
  621.     Paul Townsend, townsend@mprgate.mpr.ca
  622.     Phyllis G. Frankl, pfrankl@polyof.poly.edu
  623.     Rachel Harrison, rh@ecs.soton.ac.uk
  624.     Risto Hakli, rkh@tko.vtt.fi
  625.     Russ Hopler, russ@bse.com
  626.     Stephane Barbey, barbey@di.epfl.ch
  627.     Tony Reis, tonyr@hpsadln.sr.hp.com
  628.     Yawar Ali, yali@bnr.ca
  629.  
  630.  
  631. 3.12) What Distributed Systems Are Available?
  632. ---------------------------------------------
  633.  
  634. The following post helps to provide some answers with at least a partial list.
  635. See also Appendix E.
  636.  
  637. From: rmarcus@bcsaic.boeing.com (Bob Marcus)
  638. Newsgroups: comp.object,comp.client-server
  639. Subject: Distributed Computing Products Overview
  640. Date: 17 Sep 93 00:02:40 GMT
  641. Organization: Boeing Computer Services
  642.            
  643.              DISTRIBUTED COMPUTING PRODUCTS OVERVIEW
  644.  
  645.   There was a recent posting concerning the relationship between OMG's CORBA
  646.  and Distributed Transaction Processing Monitors. In general, there is a lot of
  647.  uncertainty as to how the various distributed computing tools, products and
  648.  environments might work together.  Below is the outline of an eight-page
  649.  posting to the Corporate Facilitators of  Object-Oriented Technology (CFOOT)
  650.  mailing list addressing these issues. Let me know if you would like a copy
  651.  of the posting and/or to be added to the CFOOT mailing list. 
  652.      
  653.                                           Bob Marcus 
  654.                                           rmarcus@atc.boeing.com
  655.  -----------------------------------------------------------------------
  656.  SOME GENERAL REFERENCES FOR ADDITIONAL INFORMATION 
  657.  -----------------------------------------------------------------------
  658.  MULTIPROTOCOL NETWORK TRANSPORTS
  659.  
  660.   Peer Logic (PIPES)
  661.   ATT (Transport Layer Interface) 
  662.  -----------------------------------------------------------------------
  663.  MICROKERNELS
  664.  
  665.   OSF(Mach)
  666.   Chorus Systems (Chorus)
  667.   Microsoft (NT)
  668.  -----------------------------------------------------------------------
  669.  REMOTE PROCEDURE CALLS
  670.  
  671.   NobleNet (EZ-RPC)
  672.   Netwise (Netwise-RPC) 
  673.   ATT/Sun (TI-RPC)
  674.   OSF (DCE/RPC)
  675.  -----------------------------------------------------------------------
  676.  CONVERSATIONAL PROGRAMMING
  677.  
  678.   IBM(Common Programming Interface-Communications)
  679.  -----------------------------------------------------------------------
  680.  MESSAGING PRODUCTS
  681.  
  682.   System Strategies/IBM (MQ Series)
  683.   Horizon Strategies (Message Express) 
  684.   Covia Systems(Communications Integrator)
  685.   Momentum Software(X-IPC)
  686.   Creative System Interface (AAI)
  687.   Digital (DECmessageQ)
  688.   HP (Sockets)(BMS)
  689.   IBM (DataTrade)(DAE)
  690.   Suite Software (SuiteTalk)
  691.   Symbiotics (Networks)
  692.  -----------------------------------------------------------------------
  693.  PUBLISH AND SUBSCRIBE MESSAGING 
  694.  
  695.   Sun(Tooltalk)
  696.   Teknekron (Teknekron Information Bus)
  697.   ISIS(Distributed News)
  698.   Expert Database Systems (Rnet)
  699.  ----------------------------------------------------------------------
  700.  DISTRIBUTED COMPUTING ENVIRONMENTS
  701.  
  702.   OSF/DCE
  703.   ISIS(Distributed Toolkit)
  704.  -----------------------------------------------------------------------
  705.  TRANSACTION PROCESSING MANAGERS 
  706.  
  707.   Unix Systems Lab (Tuxedo) 
  708.   Information Management Company (Open TransPort) 
  709.   NCR (TopEnd)
  710.   Transarc (Encina)
  711.   IBM/HP/Transarc (Open CICS)
  712.  -----------------------------------------------------------------------
  713.  DISTRIBUTED WORKSTATION EXECUTION SYSTEMS
  714.  
  715.   Aggregate Systems (NetShare)
  716.   Platform Computing(Utopia)
  717.   ISIS(Resource Manager)
  718.  -----------------------------------------------------------------------
  719.  OBJECT REQUEST BROKERS 
  720.  
  721.   Hyperdesk (Distributed Object Manager)
  722.   IBM Distributed System Object Model(DSOM)
  723.   Microsoft (Distributed OLE)
  724.   Iona Technologies Ltd. (Orbix) 
  725.   BBN (Cronus)
  726.   ISIS (RDOM)
  727.   Qualix (NetClasses)
  728.   Symbiotics (Networks!)
  729.   Digital(ACA Services) 
  730.   Suite Software (SuiteDOME)
  731.  -----------------------------------------------------------------------
  732.  SYSTEM MANAGEMENT  
  733.  
  734.   OSF (Distributed Management Environment)
  735.   Legent
  736.   Digital Analysis (HyperManagement)
  737.  -----------------------------------------------------------------------
  738.  DISTRIBUTED DEVELOPMENT/EXECUTION PRODUCTS   
  739.  
  740.   Texas Instruments (Information Engineering Facility)
  741.   HP (SoftBench)
  742.   Digital (COHESIONworX) 
  743.  -----------------------------------------------------------------------
  744.  DISTRIBUTED DEVELOPMENT/EXECUTION PRODUCTS   
  745.  
  746.   Independence Technologies (iTRAN)
  747.   Intellicorp(Kappa) 
  748.   ISIS Distributed Systems (RDOM) 
  749.   Early, Cloud & Company (Message Driven processor)
  750.   Expersoft(XShell)
  751.   Cooperative Solutions(Ellipse)
  752.  -----------------------------------------------------------------------
  753.  
  754.  
  755. 3.13) What Is The MVC Framework?
  756. --------------------------------
  757.  
  758. MVC stands for Model-View-Controller.  This framework was originally adopted
  759. in Smalltalk to support Graphical User Interfaces.  Views support graphical
  760. interfacing, controllers handle interaction, and models are the application
  761. objects.  See [Krasner 88] and [LaLonde 90b].
  762.  
  763. From: Carl Petter Swensson <cepe@taskon.no>
  764.   Prof. Trygve Reenskaug is generally cited as being the creator of
  765.   the MVC concept. He worked with the Smalltalk group at Xerox PARC
  766.   as a visiting scientist in 78/79. During this stay at Xerox PARC 
  767.   he developed the MVC. I know him well and have talked to him about
  768.   this. He confirms it, although stating that it was a collaborative
  769.   effort at Xerox PARC.
  770.  
  771.   The implementation of MVC in Smalltalk-80 has since been further
  772.   developed by ParcPlace Systems.
  773.  
  774.   He has worked with Smalltalk in a commercial and research
  775.   environments since then. His group at the Centre for Industral
  776.   Research in Oslo (now part of the SINTEF group) had the only
  777.   Smalltalk-78 implementation outside Xerox PARC.  He is now working
  778.   with Taskon AS.
  779.  
  780.   The ideas that initially gave MVC has been developed further and 
  781.   is the basis of the work Trygve is currently doing on the
  782.   OOram methodology.
  783.  
  784.  
  785. 3.14) What is Real-Time?
  786. ------------------------
  787.  
  788. Real-time is our linear extrapolation/perception of imaginary time.
  789.  
  790. [This section is YTBI]
  791.  
  792.  
  793. 3.15) What Is Available on OO Metrics?
  794.  
  795. This section is essentially YTBI.
  796.  
  797. [Berard 93] contains an elaborate bibliography and section on OO metrics.
  798. [Booch 94] also contains some coverage.
  799.  
  800. Also:
  801. Object Oriented Software development
  802. Mark Lorenz ISBN 0-13-726928-5
  803. Prentice Hall
  804.  
  805. Software Metrics
  806. Grady-Caswell ISBN 0-13-821844-7
  807. Prentice Hall
  808.  
  809. Measuring software design quality
  810. Card-Glass ISBN 0-13-568593-1
  811. Prentice Hall
  812.  
  813.  
  814.  
  815. SECTION 4:  COMMONLY ASKED LANGUAGE SPECIFIC QUESTIONS
  816. ======================================================
  817.  
  818. 4.1)  What is Downcasting?
  819. --------------------------
  820.  
  821. Downcasting is the term used in C++ for casting a pointer or reference to
  822. a base class to a derived class.  This should usually be checked with an
  823. embedded dynamic typing scheme if such a scheme is not present in the
  824. language, such as with a typecase (Modula-3) or inspect (Simula) construct.
  825. In C++, it is even possible to use conversion functions to perform some
  826. checks, although the proposed RTTI will perform checked downcasting as
  827. its primary ability.
  828.  
  829.  
  830. 4.2)  What are Virtual Functions?
  831. ---------------------------------
  832.  
  833. Look under "Dynamic Binding" and "Polymorphism".
  834.  
  835.  
  836. 4.3)  Can I Use Multiple-Polymorphism Or Multi-Methods In C++?
  837. ---------------------------------------------------------------
  838.  
  839. Yes, but you'll need to embed a dynamic typing scheme to do it.  With dynamic
  840. types in place, an overriding method in a derived class can explicitly check
  841. argument types in a switch statement and invoke the desired method emulating
  842. multiple-polymorphism [See Coplien 92].  
  843.  
  844. For true CLOS multi-methods, the above technique implemented as a base function
  845. (CLOS defgeneric), switching to specialized functions (CLOS methods, made
  846. friends of all arguments) will provide the functional calling syntax, multiple-
  847. polymorphism and access to parameters found in CLOS.  This can require some
  848. complex switching, which is somewhat mitigated when multiple-polymorphism
  849. is implemented with virtual functions.
  850.  
  851. Future FAQs should contain more detail.
  852.  
  853.  
  854. 4.4)  Can I Use Dynamic Inheritance In C++?
  855. -------------------------------------------
  856.  
  857. Yes, [Coplien 92] describes a scheme where a class can contain a pointer to
  858. a base class that can switch between its derived classes, providing a limited
  859. form.  Earlier chapters contain entries on bypassing C++'s message system and
  860. even bypassing static linking.
  861.  
  862. Future FAQs should contain more detail.
  863.  
  864.  
  865.  
  866. ANNOTATED BIBLIOGRAPHY
  867. ======================
  868.  
  869. [Agrawal 91]  R. Agrawal et al.  "Static Type Checking of Multi-Methods".
  870.  OOPSLA 91.  Object-Oriented Programming Systems, Languages, and Applications.  
  871.  ACM Press.  Addison Wesley.
  872.  
  873.   Compile-time checking and optimizations for multi-methods.
  874.  
  875. [Aho 86] Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman.  Compilers:
  876.  Principles, Techniques, and Tools. Reading, MA: Addison-Wesley, 1986.
  877.  
  878.   Authoritative, classic book on compilers and optimizations.  Type chapter
  879.   contains section on type inferencing (using ML as an example).
  880.  
  881. [Berard 93]  Edward V. Berard.  Essays on Object-Oriented Software
  882.   Engineering.  Prentice Hall.
  883.  
  884.   Many topics on OOSE, includes coverage of OO domain and requirements
  885.   analysis.
  886.  
  887. [Black 86] A. Black et al.  Object-Structure in the Emerald System.  OOPSLA
  888.  '86 Conference Proceedings, SIGPLAN Notices (Special Issue), Vol. 21, n0. 11,
  889.  pp 78-86.    [I believe there is a more recent article, YTBI]
  890.  
  891.   The original article on Emerald.  OO language without inheritance but with
  892.   abstract types and static subtype polymorphism.  Also designed for
  893.   distributed programming and reuse.  See article for references: Jade on
  894.   reuse [Raj 89]) and Distr. Prog.
  895.  
  896. [Black 87] A. Black, N. Hutchinson, E. Jul, H. Levyand L. Carter.  Distribution
  897.  and Abstract Types in Emerald, IEEE Transactions on Software Engineering, Vol.
  898.  SE13, no. 1 Jam., pp 65-76.
  899.  
  900.   Subtype polymorphism for distributed programming in Emerald [Black 86].
  901.  
  902. [Blair 89] "Genericity vs Inheritance vs Delegation vs Conformance vs ..."
  903.  Gordon Blair, John Gallagher and Javad Malik, Journal of Object Oriented
  904.  Programming, Sept/Oct 1989, pp11-17.
  905.  
  906.   Recommended by a reader, but the Author has yet to review this article.
  907.  
  908. [Boehm 86] B.W. Boehm. A Spiral Model of Software Development and Enhancement.
  909.  Software Engineering Notes, Aug., vol. 11 (4), p 22.
  910.  
  911.  Presents an alternative evolutionary approach to the strict waterfall software
  912.  engineering life-cycle.  Now a classic, most OO methodologies now emphasize
  913.  the iterative or evolutionary approach to software development.
  914.  
  915. [Booch 87] Grady Booch.  Software Engineering with Ada.  2nd Ed.  Benjamin
  916.  Cummings.
  917.  
  918.   Booch in his early years.  Mostly object-based programming with Ada.
  919.  
  920. [Booch 87b] Grady Booch.  Software Components With Ada, Structures, Tools,
  921.  and Subsystems.  Benjamin Cummings.
  922.  
  923.   A taxonomy and collection of object-based components in Ada (includes code).
  924.   Has many examples with generics.
  925.  
  926. [Booch 91] Booch, Grady. Object-Oriented Design With Applications.  Benjamin
  927.   Cummings.
  928.  
  929.   The often referred to book on OOD.  Offers design notation and methodology.
  930.   Brief coverage of OOA and elaborate OOD/P coverage in the applications.
  931.   Good on basic principles and has case studies in Smalltalk, Object Pascal, 
  932.   C++, CLOS and Ada.
  933.  
  934.   Also contains an *elaborate* classified bibliography on many areas of OO.
  935.  
  936. [Booch 94]  Grady Booch.  Object-Oriented Analysis And Design With
  937.  Applications, 2nd Ed. Benjamin Cummings.  ISBN 0-8053-5340-2.
  938.  
  939.   The next FAQ should be updated to the second edition.  All examples are now
  940.   in C++.  Booch incorporates several other major methodologies including
  941.   Wirf-Brock's CRC (Class-Responsibility-Collaboration) and Jacobson's Use-
  942.   Cases.
  943.  
  944. [Cardelli 85]  L. Cardelli and P. Wegner.  On Understanding Types, Data
  945.  Abstraction, and Polymorphism.  ACM Computing Surveys vol. 17 (4).
  946.  
  947.  Long, classic article on Object-Oriented Types, Data Abstraction and
  948.  Polymorphism.  Formal coverage with a type system analysis model as well.
  949.  
  950. [Chambers 92]  Craig Chambers.  The Design and Implementation of the SELF
  951.  Compiler, an Optimizing Compiler for Object-Oriented Programming Languages.
  952.  Dept of Computer Science, Stanford University, March 1992.
  953.  
  954.   Covers type optimizations for OO compilers.  See Appendix E, PAPERS.
  955.  
  956. [Chambers 93]  Craig Chambers.  Predicate Classes.  Proceedings ECOOP '93
  957.   O. Nierstrasz, LNCS 707. Springer-Verlag, Kaiserslautern, Germany
  958.   July 1993 pp 268-296
  959.  
  960.    "... an object is automatically an instance of a predicate class whenever
  961.    it satisfies a predicate expression associated with the predicate class.
  962.    The predicate expression can test the value or state of the object, thus
  963.    supporting a form of implicit property-based classification that augments
  964.    the explicit type-based classification provided by normal classes.  By
  965.    associating methods with predicate classes, method lookup can depend not
  966.    only on the dynamic class of an argument but also on its dynamic value or
  967.    state. [...] A version of predicate classes has been designed and
  968.    implemented in the context of the Cecil language.
  969.  
  970.   See Appendix E, PAPERS.
  971.  
  972. [de Champeaux 93] Dennis de Champeaux, Doug Lea, Penelope Faure.
  973.  Object-Oriented System Development.  Addison-Wesley, ISBN 0-201-56355-X.
  974.  
  975.   Covers an integrated treatment of OOA and OOD.  Takes serious the
  976.   computational model of one thread per object.  Gives more than usual
  977.   attention to the OOA&D micro process.  Presents a unique OOD language.
  978.  
  979. [Coad 91]  Peter Coad and Edward Yourdon. Object-Oriented Analysis, 2nd ed.
  980.  Englewood Cliffs, NJ. Prentice Hall.
  981.  
  982.   Coad and Yourdon's OO analysis method.
  983.  
  984. [Coad 91b]  Peter Coad and Edward Yourdon. Object-Oriented Design.  Englewood
  985.  Cliffs, NJ. Prentice Hall.
  986.  
  987.   Coad and Yourdon's OO design method.
  988.  
  989. [Coleman 94] Derek Coleman, et. al.  Object-Oriented Development - The Fusion
  990.  Method.  Prentice-Hall Object-Oriented Series. ISBN 0-13-338823-9
  991.  
  992.   Fusion is considered to be a second generation OOAD method in that it builds
  993.   on successful components of a number of first generation methods (OMT, Booch,
  994.   CRC, Objectory, etc).  However, this has been done with the requirements of
  995.   industrial software developers in mind. And so issues of traceability,
  996.   management etc. have been taken into consideration and the Method provides
  997.   full coverage from requirements through to code.
  998.  
  999. [Cook 90] W.R. Cook, W.L.Hill, P.S. Canning. Inheritance Is Not Subtyping.
  1000.   Appeared in [Hudak 90] and Gunter 94].
  1001.  
  1002.     Theoretical article on the separation between type and class, or as the
  1003.     authors state between implementation inheritance and subtyping.
  1004.  
  1005. [Coplien 92] James O. Coplien.  Advanced C++ Programming Styles and Idioms.
  1006.   Addison Wesley.
  1007.  
  1008.   Covers advanced C++ programming and performing other more advanced and
  1009.   dynamic styles of OO in C++.
  1010.  
  1011. [Colbert 89]  E. Colbert.  The Object-Oriented Software Development Method: a
  1012.  practical aproach to object-oriented development.  Tri-Ada Proc., New York.
  1013.  
  1014.   Presents the Object-Oriented Software development method.  Has emphasis on
  1015.   objects.
  1016.  
  1017. [Cox 86,91] Cox, Brad J.  Object-Oriented Programming, An Evolutionary
  1018.  Approach.  Addison Wesley.
  1019.  
  1020.   The original book on Objective-C.  Coverage on object-oriented design and
  1021.   programming.  Also covers Objective-C implementation, even into object code.
  1022.   
  1023.   Objective-C... '91 AW by Pinson and Wiener provide another good text.
  1024.  
  1025. [Embley 92]  D.W. Embley, B.D. Kurtz, S.N. Woodfield.  Object-Oriented Systems
  1026.  Analysis, A Model-Driven Approach. Yourdon Press/Prentice Hall, Englewood
  1027.  Cliffs, NJ.
  1028.  
  1029.   Presents the Embley and Kurtz OO methodology.
  1030.  
  1031. [Garfinkel 93]  Simson L. Garfinkel and Michael K. Mahoney.  NeXTSTEP
  1032.  PROGRAMMING  STEP ONE: Object-Oriented Applications.  Springer-Verlag.
  1033.  
  1034.   Introduction to the NextStep environment and applications development.
  1035.  
  1036. [Goldberg 83] Adele Goldberg and David Robson. Smalltalk-80 The Language and
  1037.  Its Implementation.  Addison Wesley.
  1038.  
  1039.   The original book on Smalltalk.  Covers implementation.  Also known as "the
  1040.   Blue Book".  Out of print.  Superceded by [Goldberg ??].
  1041.  
  1042. [Goldberg ??] Adele Goldberg and David Robson. Smalltalk-80: The Language.
  1043.  Addison-Wesley. 
  1044.  
  1045.   The "Purple Book".  Omits the obsolete abstract virtual machine description
  1046.   from the Blue Book.
  1047.  
  1048. [Gunter 94] Carl A. Gunter and John C. Mitchell. Theoretical Aspects of Object-
  1049.  Oriented Programming. MIT Press.  ISBN 0-262-07155-X.
  1050.  
  1051.   Highly mathematical, formal coverage of object-oriented programming;
  1052.   primarily on typing.
  1053.  
  1054. [Harmon 93] Paul Harmon.  Objects In Action: Commercial Applications Of Object-
  1055.  Oriented Technologies.  Jan, 1993.  A-W ISBN 0-201-63336-1.
  1056.  
  1057.   Sponsored by the OMG to summarize the use of OO technology in industry and
  1058.   business, contains a brief history and summary of OO and many case studies.
  1059.  
  1060. [HOOD 89] HOOD Working Group.  HOOD Reference Manual Issue 3.0.  WME/89-173/JB.
  1061.  Hood User Manual Issue 3.0. WME/89-353/JB.  European Space Agency.
  1062.  
  1063.   Presnets the HOOD (Hierarchical Object-Oriented Design) OOSE methodology.
  1064.   From the European Space Agency.  Based on Ada and object-based.
  1065.  
  1066. [Hudak 90] P. Hudak. Principles of Programming Languages.  ACM Press, pp 125
  1067.  -135.
  1068.  
  1069.   Contains several articles, including [Cook 90].
  1070.  
  1071. [Hudak 92] Paul Hudak and Simon Peyton Jones.  Haskell Report. SIGPLAN Notices.
  1072.  1992, vol 27, no 5.
  1073.  
  1074.   Haskell reference.
  1075.  
  1076. [Humphrey 89]  Watts Humphrey.  Managing the Software Process.  Addison Wesley.
  1077.  
  1078.   Sponsored by the Software Engineering Institute (SEI), the presented project
  1079.   management model is inspired by the work of Boehm, Brooks, Demming and Juran
  1080.   and represents a strong step in the direction of achieving 6 sigma defect
  1081.   rate prevention and optimizing the software development process for quality,
  1082.   productivity, and reliability.
  1083.  
  1084. [IBM 90,91]  Various Documents from the IBM International Technical Centers:
  1085.  GG24-3647-00, GG24-3641-00, GG24-3566-00, GG24-3580-00.
  1086.  
  1087.   Present IBM's OOSE methodology.
  1088.  
  1089. [Jacobson 92]  Ivar Jacobson, et al.  Object-Oriented Software Engineering - A
  1090.  Use Case Driven Approach. ACM Press/Addison Wesley.
  1091.  
  1092.   Presents Jacobson's new OOSE methodology based on use cases.
  1093.  
  1094. [Jones 92]  Rick Jones. Extended type checking in Eiffel. Journal of Object-
  1095.  Oriented Programming, May 1992 issue, pp.59-62.
  1096.  
  1097.   Presents subtype polymorphic extension to Eiffel (static typing only).
  1098.  
  1099. [Jurik 92] John A. Jurik, Roger S. Schemenaur, "Experiences in Object Oriented
  1100.  Development," ACM 0-89791-529-1/92/0011-0189.
  1101.  
  1102.   Presents the EVB OOSE methodology.  Also: Barbara McAllister, Business
  1103.   Development, EVB Software Engineering, Inc., (301)695-6960, barb@evb.com.
  1104.  
  1105. [Kiczales 92] Gregor Kiczales, Jim des Rivieres, Daniel G. Bobrow.  The Art
  1106.  of the Metaobject Protocol.  The MIT Press.
  1107.  
  1108.   Reflection and Metaobject Protocols (MOPs).  Uses a CLOS subset, Clossette,
  1109.   as a foundation.
  1110.  
  1111. [Kim 89]  Won Kim and Frederick Lochovsky Editors.  Object-Oriented Concepts,
  1112.  Applications, and Databases.
  1113.  
  1114.   Collection of articles on advanced OO and research systems.
  1115.  
  1116. [Krasner 88] G. E. Krasner and S. T. Pope. A Cookbook for Using the Model-View-
  1117.  Controller User Interface Paradigm in Smalltalk-80. JOOP, vol 1, no 3, August/
  1118.  September, 1988, pp 26-49,
  1119.  
  1120.   An early paper published on MVC.
  1121.  
  1122. [Lakoff 87] George Lakoff.  Women, Fire, and Dangerous Things: What Categories
  1123.   Reveal About The Mind.  UOC Press.
  1124.  
  1125.   An almost formal view of classification/categorization by the noted cognitive
  1126.   scientist, George Lakoff.  His view blasts objectivism and contends to
  1127.   replace it with a subjectivist view, based on a study of humans, natural
  1128.   language, and concept formation.
  1129.  
  1130. [LaLonde 90]  Wilf R. LaLonde and John R. Pugh.  Inside Smalltalk: Volume 1.
  1131.  Prentice Hall.
  1132.  
  1133.   Good introduction to Smalltalk.
  1134.  
  1135. [LaLonde 90b]  Wilf R. LaLonde and John R. Pugh.  Inside Smalltalk: Volume 2.
  1136.  Prentice Hall.
  1137.  
  1138.   Excellent coverage of MVC. However, it's based on ParcPlace Smalltalk-80,
  1139.   version 2.5, which is obsolete.
  1140.  
  1141. [Liskov 93] Barbara Liskov and Jeannette M. Wing.  Specifications and Their use
  1142.  in Defining Subtypes.  OOPSLA 93, pp 16-28.  ASM SIGPLAN Notices, V 28, No 10,
  1143.  Oct. 1993.  A-W ISBN 0-201-58895-1.
  1144.  
  1145.   Specifications on Subtype hierarchies.  Helps to insure the semantic
  1146.   integrity of a separate subtype system.  See section 2.7.
  1147.  
  1148. [Madsen 93] Ole Lehrmann  Madsen, Birger Moller-Pedersen, Kristen Nygaard:
  1149.  Object-oriented programming in the BETA programming language.  Addison-Wesley,
  1150.  June 1993. ISBN 0 201 62430 3
  1151.  
  1152.   The new and authoritative book on BETA, by the original designers.  They
  1153.   are some of the same designers of the Simula languages, originating OO.
  1154.   Also just announced:
  1155.     Object-Oriented Environments: The Mjolner Approach
  1156.     Editors: Jorgen Lindskov Knudsen, Mats Lofgren, Ole Lehrmann Madsen,
  1157.          Boris Magnusson
  1158.     Prentice Hall: The Object-Oriented Series
  1159.     ISBN: 0-13-009291-6 (hbk)
  1160.  
  1161. [Martin 92] James Martin and James J. Odell. Object-Oriented Analysis and
  1162.  Design, Prentice-Hall, Englewood Cliffs, NJ.  
  1163.  
  1164.   Its primary purpose is to indicate how information engineering (IE) can be 
  1165.   evolved to accommodate OO.  The analysis portion (starting at Chapter 15) 
  1166.   attempts to go back to 'first principles' and is based on a formal foundation.
  1167.   Therefore, the IE aspect is not required.  Emphasis is more on analysis than 
  1168.   design.
  1169.  
  1170. [Meyer 88] Bertrand Meyer. Object-Oriented Software Construction.  Prentice
  1171.  Hall.  [Is there a new edition out?]
  1172.  
  1173.   The original book on Eiffel.  Coverage on object-oriented design and
  1174.   programming.  Also:
  1175.  
  1176.  
  1177. [Meyer 92] Bertrand Meyer. Eiffel: The Language. Prentice Hall. Englewood
  1178.  Cliffs, NJ. 1992.
  1179.  
  1180.   The definitive book on Eiffel by its author.
  1181.  
  1182. [Meyer 94] Bertrand Meyer. Reusable Software: The Base Object-Oriented
  1183.  Components Libraries.
  1184.  
  1185.   The new Eiffel class Libraries.
  1186.  
  1187. [Mugridge 91] Warwick B. Mugridge et al.  Multi-Methods in a Statically-Typed
  1188.  Programming Language. Proc. ECOOP.
  1189.  
  1190.   Efficient implementation of Multi-Methods.
  1191.  
  1192. [Murray 93] Robert B. Murray.  C++ Strategies and Tactics.  Addison Wesley.
  1193.  
  1194.   C++, has template examples.
  1195.  
  1196. [Nerson 92] Jean-Marc Nerson.  Applying Object-Oriented Analysis and Design.
  1197.  CACM, 9/92.
  1198.  
  1199.   Demonstrates the basics of the BON method/notation.  Nerson: marc@eiffel.fr
  1200.  
  1201. [Paepcke 93] Andreas Paepcke.  Object-Oriented Programming: The CLOS
  1202.  Perspective.  MIT Press.  ISBN 0-262-16136-2.
  1203.  
  1204.   CLOS, readable introduction to its metaobject protocol, comparisons with
  1205.   other languages, uses and methodology, and implementation.  Develops a
  1206.   persistent object metaclass example.
  1207.  
  1208. [Raj 89] R.K. Raj and H.M. Levy.  A Compositional Model for Software Reuse.
  1209.  The Computer Journal, Vol 32, No. 4, 1989. 
  1210.  
  1211.   A novel approach aading reuse to Emerald [Black 86] without inheritance.
  1212.  
  1213. [Reenskaug 91] T. Reenskaug, et al.  OORASS: seamless support for the creation
  1214.  and maintenance of object-oriented systems. Journal of Object-Oriented
  1215.  Programming, 5(6).
  1216.  
  1217.   Presents the Object-Oriented Role Analysis, synthesis, and Structuring
  1218.   OOSE methodology.
  1219.  
  1220. [Royce 70] W. W. Royce. Managing the Development of Large Software Systems.
  1221.  Proceedings of IEEE WESCON, August 1970.
  1222.  
  1223.  Introduces the Waterfall Process Model.
  1224.  
  1225. [Rumbaugh 91] Rumbaugh James, et al.  Object-Oriented Modeling and Design.
  1226.  Prentice Hall.
  1227.  
  1228.   The often referred to book on OOA/OOD.  Introduces the Object Modeling
  1229.   Technique (OMT) OOA/D notation and methodology.  Has case studies.
  1230.  
  1231. [Sciore 89] Edward Sciore.  Object Specialization. ACM Transactions on
  1232.  Information Systems, Vol. 7, No. 2, April 1989, p 103.
  1233.  
  1234.   A hybrid approach between delegation and classical OO.
  1235.  
  1236. [Selic 94] Bran Selic, Garth Gullekson, and Paul T. Ward. Real-Time
  1237.  Object-Oriented Modeling. Published by John Wiley & Sons. 
  1238.  ISBN 0-471-59917-4
  1239.  
  1240.   OO method addresses complete lifecycle needs of real-time systems. Emphasizes
  1241.   executable models for early validation of requirements, architecture, and
  1242.   design combined with techniques for automatic generation of implementations.
  1243.   Specifically real-time with iterative and incremental development process.
  1244.   Single consistent graphical modeling concepts apply uniformly to OOA/D/I.
  1245.  
  1246. [Shlaer 88] Sally Shlaer and Stephen J. Mellor.  Object-Oriented Systems
  1247.  Analysis: Modeling the World in Data.
  1248.  
  1249.   Credited as the first book proposing an OOA method.
  1250.  
  1251. [Shlaer 92] Sally Shlaer and Stephen J. Mellor.  Object Lifecycles: Modeling
  1252.   the World in States.
  1253.  
  1254.   An addition to [Shlaer 88], provides dynamic modeling with a state-
  1255.   transition driven approach.
  1256.  
  1257. [Strachey 67]  C. Strachey.  Fundamental Concepts in programming languages.
  1258.  Lecture Notes for International Summer School in Computer Programming,
  1259.  Copenhagen, Aug.
  1260.  
  1261.   Contains original, classical definition of polymorphism.
  1262.  
  1263. [Stroustrup 90] Ellis, M.A., Stroustrup. The Annotated C++ Reference Manual.
  1264.  Addison Wesley.
  1265.  
  1266.   The ARM; the original and definitive book on C++.  Serves as the ANSI
  1267.   base document for C++.  Also covers C++ implementation.  It is meant as 
  1268.   a reference (including for compiler writers), not as a tutorial for
  1269.   beginners.  Perhaps a better ref is [Stroustrup 91].
  1270.  
  1271. [Stroustrup 91] Stroustrup, B.  The C++ Programming Language (2nd edition).
  1272.  
  1273.   Has the ARM, better reference for the use of C++ (recommended by bs).
  1274.   Contains sections on object-oriented software engineering.
  1275.  
  1276. [Tasker 93]  Dan Tasker.  The Problem Space, Practical Techniques for
  1277.   Gathering & Specifying Requirements. ISBN: 0-646-12524-9.  Avail only from
  1278.   author, dant@swdev.research.otc.com.au.
  1279.  
  1280.   Object-oriented requirements definition.  Hypertext.  Uses Rumbaugh's OMT as
  1281.   a base.  See also APPENDIX D.
  1282.  
  1283. [Ungar 87] D. Ungar and R.B. Smith.  The Self Papers. [Entry To Be Completed]
  1284.  
  1285.   The documents on Self; a delegation/prototyping language.  Also covers Self
  1286.   implementation and optimization.  See also APPENDIX E, PAPERS section.
  1287.  
  1288. [Wasserman 90] A.I. Wasserman et al. The Object-Oriented Software Design
  1289.  Notation for Software Design Representation. IEEE Computer, 23(3).
  1290.  
  1291.   Presents the Object-Oriented Structured Design (OOSD) OOSE methodology.
  1292.   Traditional structured techniques to OO, hybrid containing structured
  1293.   design and Booch.
  1294.  
  1295. [Wegner 87] Peter Wegner. "Dimensions of Object-Based Language Design",
  1296.   Proceedings of OOPSLA '87, October 4-8 1987, SIGPLAN Notices
  1297.   (Special Issue), V22, No 12, pp168-182, 1987.
  1298.  
  1299. [Wikstrom 87] Ake Wikstrom.  Functional Programming Using Standard ML.
  1300.  Prentice Hall, ISBN 0-13-331661-0, 1987.
  1301.  
  1302.   ML reference.
  1303.  
  1304. [Wilkie 93] George Wilkie. Object-Oriented Software Engineering - The
  1305.  Professional Developer's Guide. Addison Wesley.
  1306.  
  1307.   Covers OOSE, 11 popular analysis and design methodologies with examples,
  1308.   comparisons, and analysis, information systems (OODB), and case studies.
  1309.  
  1310. [Winter Partners]  Winter Partners 
  1311.  
  1312.   A proprietary toolset (OSMOSYS) for OOA and OOD.
  1313.   Winter Partners
  1314.     London Office:                 Zurich Office:
  1315.       West Wing, The Hop Exchange
  1316.       24a Southwark Street           Florastrasse 44
  1317.       London SE1 1TY                 CH-8008 Zurich
  1318.       England                        Switzerland
  1319.       Tel. +44-(0)71-357-7292        Tel. +41-(0)1-386-95 11
  1320.       Fax. +44-(0)71-357-6650        Fax. +41-(0)1-386-95 00
  1321.  
  1322. [Wirfs-Brock 90] Rebecca Wirfs-Brock, Brian Wilkerson, Lauren Wiener.
  1323.  Designing Object Oriented Software, Englewood Cliffs, NJ. Prentice Hall.
  1324.  
  1325.   Presents a "Responsibility Driven Design" (RDD) with "Class, Responsibility,
  1326.   Collaboration" (CRC) technique, a modern and new OOA/OOD methodology.
  1327.  
  1328. [Yaoqing 93]  Gao Yaoqing and Yuen Chung Kwong.  A Survey of Implementations
  1329.  of Parallel, Concurrent, and Distributed Smalltalk.  ACM SIGPLAN Notices.
  1330.  Vol 28, No. 9, Sept 93.
  1331.  
  1332.   Covers implementations of Parallel, Concurrent, and Distributed Smalltalk.
  1333.  
  1334. [Yourdon 92]  Edward Yourdon.  Decline and Fall of the American Programmer.
  1335.  YPCS.
  1336.  
  1337.   Excellent coverage of modern software engineering practice and world-class
  1338.   software development organizations.
  1339.  
  1340.  
  1341.  
  1342. APPENDICES
  1343. ==========
  1344.  
  1345.  
  1346. APPENDIX A  VIPS
  1347. ================
  1348.  
  1349. These are individuals whose names appear in comp.object most often. 
  1350. Please send recommendations for *major* VIPS often cited or referenced.
  1351.  
  1352. Booch, Grady <egb@rational.com>
  1353. -------------------------------
  1354.  
  1355. Grady Booch has been an object-oriented Ada advocate for some time.  He's
  1356. written books such as Software Engineering with Ada, Software Components
  1357. with Ada, and OOD with Applications.  The first two are Object-Based and
  1358. the second is primarily Object-Oriented and all use OB and OO notations and
  1359. methodologies.  His last notations are often referred to as simply the
  1360. "Booch" method or notation and his company, Rational, provides automated
  1361. support with a tool named "Rose".  See also APPENDIX D.
  1362.  
  1363.  
  1364. Cox, Brad
  1365. ---------
  1366.  
  1367. Founder of Objective-C, which grafts the Smalltalk facilities of an
  1368. Object id and a messaging mechanism onto C.  Author of [Cox 87].
  1369.  
  1370.  
  1371. Goldberg, Adele  (Alan Kay, Dan Ingalls)
  1372. ----------------------------------------
  1373.  
  1374. One of the founders of Smalltalk (with Alan Kay and Dan Ingalls).  Coauthor
  1375. of [Goldberg 83, ??], "Smalltalk-80 The Language and its Implementation".
  1376. Smalltalk was invented by a group at Xerox PARC; and a spinoff, ParcPlace, is
  1377. now marketing Smalltalk environments (see APPENDIX C).
  1378.  
  1379.  
  1380. Meyer, Bertrand <bertrand@eiffel.com>
  1381. -------------------------------------
  1382.  
  1383. Founder of Eiffel, author of [Meyer 88].  Often posts to comp.lang.eiffel
  1384. and comp.object [what a FAQ writer notices].  His company, Interactive
  1385. Software Engineering, has a case tool called EiffelCase (see APPENDIX D).
  1386.  
  1387.  
  1388. Nygaard, Krysten (and Dahl, Ole-Johan)
  1389. --------------------------------------
  1390.  
  1391. Inventor of Simula, the first object-oriented programming language.  Also
  1392. inventor of object oriented design, for which Simula-67 was considered an
  1393. implementation technique.  Now B.B. Kristensen, O.L. Madsen, B. Moller-
  1394. Pedersen, and K. Nygaard are working on BETA, their successor to Simula.
  1395.  
  1396.  
  1397. Rumbaugh, Dr. James
  1398. -------------------
  1399.  
  1400. Part of Rumbaugh, Blaha, Premerlani, Eddy and Lorenson, the authors of
  1401. [Rumbaugh 91].  They all work for GE Corporate Research and Development Center
  1402. in Schenectady New York and have an OOA/OOD notation/methodology called the
  1403. "Object Modeling Technique" (OMT).  It is a rather formal and complete method 
  1404. often discussed in comp.object.  OMTool is the name of the CASE system provided
  1405. by Martin Marietta which supports OMT.  See APPENDIX D.
  1406.  
  1407.  
  1408. Shlaer, Sally (and Mellor, Stephen J.)
  1409. --------------------------------------
  1410.  
  1411. >Sally Shlaer            sally@projtech.com
  1412. >Project Technology      Training and Consulting using Shlaer-Mellor OOA/RD
  1413. >Berkeley, CA            (510) 845 1484
  1414.  
  1415. Cofounder of the Shlaer/Mellor OOA/RD method, president of Project Technology.
  1416. As shown above, occasionally posts to comp.object [what a FAQ writer notices].
  1417.  
  1418.  
  1419. Stroustrup, Bjarne (bs@alice.att.com)
  1420. -------------------------------------
  1421.  
  1422. Inventor of C++, a C superset, which has probably gained the most widespread
  1423. use of any object-oriented language today.  Often found in comp.lang.c++ and
  1424. comp.object.
  1425.  
  1426.  
  1427.  
  1428. APPENDIX B  OBJECT-ORIENTED DATABASES AND VENDORS
  1429. =================================================
  1430.  
  1431. This is a list of available Object-Oriented databases.  Thanks go to Stewart
  1432. Clamen, who's survey on schema evolution provided a good start.  Additional
  1433. short entries are encouraged; please send additions to the author of the FAQ
  1434. (and/or to Stewart).
  1435.  
  1436. The most recent copy of Stewart Clamen's summary on available databases
  1437. support for schema evolution will be available indefinitely via anonymous
  1438. FTP from BYRON.SP.CS.CMU.EDU:/usr/anon/OODBMS/evolution-summary.
  1439.  
  1440. [Kim 89] covers a few of the research systems below in depth.
  1441.  
  1442. Starred entries also have an entry in "APPENDIX E  ANONYMOUS FTP SITES".
  1443.  
  1444.  
  1445. TABLE OF CONTENTS
  1446.  
  1447. Extended Relational Database Model
  1448.  Research Systems
  1449.   POSTGRES*     [marketed by Montage]
  1450.   Starburst     [IBM almaden, entry NYI]
  1451.  Commercial Systems
  1452.   Montage       [Research System POSTGRES]
  1453.  
  1454. Object-Oriented Data Model
  1455.  Research Systems
  1456.   AVANCE
  1457.   CLOSQL
  1458.   ConceptBase*
  1459.   COOL/COCOON
  1460.   Encore*
  1461.   Exodus*
  1462.   Machiavelli
  1463.   MOOD4-PC*
  1464.   OBST/STONE*
  1465.   Ode*
  1466.   Oggetto
  1467.   Orion [marketed as ITASCA, see Entry]
  1468.   OTGen
  1469.   VODAK
  1470.  Commercial Systems
  1471.   ArtBASE
  1472.   EasyDB (Objective Systems, Sweden)
  1473.   GemStone/GeODE
  1474.   ITASCA
  1475.   Matisse
  1476.   NeoAccess
  1477.   O2
  1478.   Objectivity/DB
  1479.   ObjectStore
  1480.   Ontos [formerly VBase]
  1481.   Odapter/OpenODB program (HP)
  1482.   Poet
  1483.   Statice
  1484.   UniSQL
  1485.   Versant
  1486.  
  1487. Other Models
  1488.  Research Systems  
  1489.   GRAS*
  1490.   IRIS
  1491.  Commercial Systems  
  1492.   IDL
  1493.   Kala
  1494.   Pick
  1495.  
  1496. Interfaces
  1497.  Research Systems
  1498.   Penguin
  1499.  Commercial Systems
  1500.   AllegroStore (Franz)
  1501.   Persistence
  1502.   Subtlware
  1503.   Synchronicity (Smalltalk)
  1504.  
  1505.  
  1506. EXTENDED RELATIONAL DB MODEL
  1507. ----------------------------
  1508.  
  1509. Research Systems
  1510. ________________
  1511.  
  1512.  
  1513. > POSTGRES (Berkeley)
  1514.  
  1515. POSTGRES is an extended-relational database manager that supports
  1516. inheritance, user-defined types, functions, and operators, ad-hoc
  1517. queries, time travel, a rules system, tertiary storage devices,
  1518. and very large typed objects, among other things.  POSTGRES speaks
  1519. postquel, a derivative of the quel query language originally
  1520. designed at berkeley for the ingres database system.  User functions
  1521. may be written in C or in postquel.  C functions will be dynamically
  1522. loaded into the database server on demand, and either kind of function
  1523. may be executed from the query language.
  1524.  
  1525. POSTGRES and the papers that describe it are available free of charge
  1526. from toe.CS.Berkeley.EDU (128.32.149.117) in directory pub/postgres.
  1527. The code is stored in a directory named after the latest release; at
  1528. the time of this writing, that directory is postgres-v4r1.  The list
  1529. of officially-supported ports is short (decstations running ultrix 4.x
  1530. and sparcstations).  Unofficially, many more are supported -- people
  1531. elsewhere have done the ports and distribute their versions of the
  1532. code.  The list of unofficial ports is available in pub/postgres as
  1533. file UNOFFICIAL-PORT-LIST.
  1534.  
  1535. On Type Evolution:
  1536. You ask explicitly about type evolution.  We support schema
  1537. modification on all classes, including user classes.  This means that
  1538. you can add attributes (instance slots) and methods at any time.
  1539. Further, since postgres is a shared database system, such changes are
  1540. instantly visible to any other user of the class.
  1541.  
  1542. The language syntax supports attribute deletion, but the system won't
  1543. do it yet.  Since all data is persistent, removing attributes from a
  1544. class requires some work -- you need to either get rid of or ignore
  1545. all the values you've already stored.
  1546.  
  1547. Contact:
  1548. Paul Aoki <aoki@cs.berkeley.edu>
  1549.  
  1550. The postgres code from uc berkeley is being commercialized by
  1551. Miro Systems, Inc.        [This seems to have been updated to Montage]
  1552.  
  1553. Contact:
  1554.   paula hawthorn (paula@miro.com) 
  1555.   dave segleau (dave@miro.com)
  1556.  
  1557.  
  1558. Commercial Systems
  1559. ------------------
  1560.  
  1561. > Montage (ORDBMS) [Research System POSTGRES]
  1562.  
  1563. From: markh@montage.com (Mark Helfen)
  1564. Subject: Montage Database - brief product announcement
  1565. Followup-To: sales@montage.com 
  1566. Organization: Montage Software, Inc.
  1567. Date: Wed, 10 Nov 1993 23:05:03 GMT
  1568.  
  1569. The Montage object-relational database management system 
  1570. (ORDBMS) is now available from Montage Software, Inc. 
  1571.