home *** CD-ROM | disk | FTP | other *** search
/ ftp.pasteur.org/FAQ/ / ftp-pasteur-org-FAQ.zip / FAQ / object-faq / part4 < prev    next >
Text File  |  1996-04-05  |  52KB  |  1,289 lines

  1. Newsgroups: comp.object,comp.answers,news.answers
  2. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!spool.mu.edu!howland.reston.ans.net!vixen.cso.uiuc.edu!uchinews!news
  3. From: Bob Hathaway <rjh@geodesic.com>
  4. Subject: Comp.Object FAQ Version 1.0.9 (04-02) Part 4/13
  5. X-Nntp-Posting-Host: ford.uchicago.edu
  6. Message-ID: <Dp9qA5.A8L@midway.uchicago.edu>
  7. Followup-To: comp.object
  8. Summary: Frequently Asked Questions (FAQ) List and Available Systems For Object-Oriented Technology
  9. Sender: news@midway.uchicago.edu (News Administrator)
  10. Organization: Geodesic Systems
  11. References: <Dp9prv.92t@midway.uchicago.edu>
  12. Date: Wed, 3 Apr 1996 04:10:53 GMT
  13. Approved: news-answers-request@MIT.Edu
  14. Lines: 1272
  15. Xref: senator-bedfellow.mit.edu comp.object:46930 comp.answers:17963 news.answers:68636
  16.  
  17. Archive-name: object-faq/part4
  18. Last-Modified: 04/02/96
  19. Version: 1.0.9
  20.  
  21. This is a summary of resources on the Testing of Object-Oriented
  22. Programming that have been mentioned to me over the net, in email,
  23. or other means.  Sections include Written Material, Courses, and
  24. Software.  It is kind of like an FAQ, though it isn't organized 
  25. that way.
  26.  
  27. > Who?
  28.  
  29. I work for a Unix software house, Qualix Group, in the US.   Here is
  30. my sig:
  31.  - Doug Shaker
  32.     voice:    415/572-0200
  33.     fax:    415/572-1300
  34.     email:    dshaker@qualix.com
  35.     mail:    Qualix Group
  36.         1900 S. Norfolk St., #224
  37.         San Mateo, CA 94403
  38. I am NOT a researcher on the testing of object-oriented programming.
  39. I just collate the stuff that is sent to me by people who REALLY know
  40. something.  See the section "ACKs" at the end.
  41.  
  42. I just think it is important.
  43.  
  44. > Why?
  45.  
  46. Why is this important? If classes are really to be reused in
  47. confidence, they must be blatantly correct.  The classes must be easily
  48. testable during initial evaluation by the client programmer.  They must
  49. also be testable under different OS configurations, different compiler
  50. optimizations, etc.  This means that testing modules must be
  51. constructed in a way which is recognized as correct and the modules
  52. must be shipped with the class libraries.  
  53.  
  54. As soon as one major class library vendor starts to ship real test code
  55. with their libraries, all of the other vendors will be forced, by
  56. market pressure, to do so as well, or face market share erosion.  Think
  57. about it.  If you had to recommend a class library to a committee that
  58. was choosing a basis for the next five years of work, wouldn't you feel
  59. safer with a class library that could be auto-tested in your
  60. environment?
  61.  
  62.  
  63. > Written Material
  64.  
  65. Berard, Edward.  Essays on Object-Oriented Software Engineering.  
  66.     Prentice-Hall, Englewood Cliffs, NJ. $35.
  67.     This book has two chapters on testing of object-oriented software, 
  68.     focusing on how to do it.
  69.  
  70. Berard, Edward.  Project Management Handbook.  Must be purchased
  71.     direct from Berard Software Engineering, Ltd., 902 Wind River
  72.     Lane, Suite 203, Gaithersburg, Maryland 20878.  $225.
  73.     The book focuses on the management of OOP projects.  It
  74.     includes one chapter on testing OO software and one chapter
  75.     on quality assurance.
  76.  
  77. Bezier, Boris, "Software Testing Techniques", 2nd edition, Van Nostrand
  78.     Reinhold, 1990, 503pp, $43, ISBN 0-442-20672-0.  While this is
  79.     not specifically about testing of OOP, it is mentioned so often
  80.     by so many people as a definitive software testing work, that
  81.     I have to mention it anyway.
  82.  
  83. Cheatham Thomas J., and Lee Mellinger, "Testing Object-Oriented
  84.     Software Systems",  Proceedings of the 18th ACM Annual Computer
  85.     Science Conference, ACM, Inc., New York, NY, 1990, pp. 161-165.
  86.  
  87. Doong, Roong-Ko and Phyllis G. Frankl, "Case Studies on Testing 
  88.     Object-Oriented Programs", Proceedings of the 4th Symposium on
  89.     Testing, Analysis, and Verification (TAV4), 1991, ACM, Inc.,
  90.     New York, NY, 1991, pp. 165-177.
  91.  
  92. Fiedler, Steven P., "Object-Oriented Unit Testing", Hewlett-Packard 
  93.     Journal, April, 1989, pp. 69-74.
  94.  
  95. Firesmith, D.G., "Testing Object-Oriented Software", Proceedings 
  96.     of 11th. TOOLS USA Conference, Santa Barbara, Aug 1993, pp 407-426.
  97.  
  98. Frankl, Phyllis G. and Roong-Ko Doong, "Tools for Testing 
  99.     Object-Oriented Programs", Proceedings of the 8th Pacific
  100.     Northwest Conference on Software Quality, 1990, pp. 309-324.
  101.     One author can be reached at pfrankl@polyof.poly.edu.
  102.  
  103. Graham, J.A., Drakeford, A.C.T., Turner, C.D. 1993. The Verification, 
  104.     Validation and Testing of Object Oriented Systems, BT Technol
  105.     J.  Vol 11, No 3. One author's email address is
  106.     jgraham@axion.bt.co.uk.
  107.  
  108. Harrold, Mary Jean, John D. McGregor, and Kevin J. Fitzpatrick, 
  109.     "Incremental Testing of Object-Oriented Class Structures",
  110.     International Conference on Software Engineering, May, 1992,
  111.     ACM, Inc., pp. 68 - 80.
  112.  
  113. Hoffman, Daniel and Paul Strooper.  A Case Study in Class Testing.
  114.     To be Presented at the IBM Center for Advanced Studies Fall
  115.     Conference, October 1993, Toronto.  Email addresses for authors
  116.     are dhoffman@csr.uvic.ca and pstropp@cs.uq.oz.au.  Describes an
  117.     approach to testing which the authors call Testgraphs.  An
  118.     example is worked out in C++ which tests a commercial class.
  119.  
  120. Hoffman, D. M.  A CASE Study in Module Testing.  In Proc. Conf. Software
  121.     Maintenance, pp. 100-105. IEEE Computer Society, October 1989.
  122.  
  123. Hoffman, D.M. and P.A. Strooper.  Graph-Based Class Testing.  In 
  124.     7th Australian Software Engineering Conference (to appear), 1993.
  125.  
  126. Klimas, Edward "Quality Assurance Issues for Smalltalk Based Applications", 
  127.     The Smalltalk Report, Vol. 1, No. 9, pp.3-7.  The author's
  128.     email address is "ac690@cleveland.freenet.edu".
  129.  
  130. Lakos, John S.  "Designing-In Quality in Large C++ Projects" Presented
  131.     at the 10th Annual Pacific Northwest Software Quality Conference,
  132.     Portland, Oregon, October 21, 1993.  Abstract:
  133.         The focus of this paper is on ensuring quality by
  134.         designing software that avoids acyclic component
  135.         dependencies.  This in-turn permits incremental,
  136.         hierarchical testing.  The importance of good physical
  137.         design becomes a key factor only for large and very
  138.         large projects.  Intuition gained from smaller projects
  139.         leads to errors in large designs.  Compile-coupling
  140.         ("Insulation") is also discussed.
  141.     Copies of the postscript file can be obtained by sending email
  142.     to "john_lakos@warren.mentorg.com".
  143.  
  144. Leavens, G. T., "Modular Specification and Verification of 
  145.     Object-Oriented Programs", IEEE Software, July 1991, pp. 72-80.
  146.  
  147. Love, Tom.  Object Lessons.  SIGS Books, 588 Broadway #604, New York, NY 
  148.     10012. $49.
  149.     This book eloquently elucidates the need for testing of object-
  150.     oriented code and has a chapter on how it was done at Stepstone
  151.     during the first release of their initial class library.
  152.  
  153. Marick, Brian.  The Craft of Software Testing, Prentice-Hall, in press.
  154.     Makes the argument that testing of object-oriented software is
  155.     simply a special case of testing software which retains state
  156.     and which is reused.  The author can be reached at 
  157.     info@testing.com.
  158.  
  159. Narick, Brian. "Testing Software that Reuses", Technical Note 2, Testing
  160.     Foundations, Champaign, Illinois, 1992. Copies may be obtainable 
  161.     via email. The author can be reached at info@testing.com.
  162.  
  163. Murphy, G.C., Wong, P. 1992, Towards a Testing Methodology for 
  164.     Object Oriented Systems, M.P.R Teltech Ltd. A poster at the
  165.     Conference on Object Oriented Programming Systems, Languages
  166.     and Applications ACM. Copies of this paper can be obtained
  167.     through townsend@mprgate.mpr.ca.
  168.  
  169. Murphy, G. and P. Wong.  Object-Oriented Systems Testing Methodology: An
  170.     Overview.  Techical Report TR92-0656, MPR Teltech Ltd., October 
  171.     1992.
  172.  
  173. Perry, D.E. and G.E. Kaiser, "Adequate Testing and Object-Oriented 
  174.     Programming", Journal of Object-Oriented Programming, 
  175.     2(5):13-19, Jan/Feb 1990.
  176.  
  177. Purchase, Jan A. and Russel L. Winder, "Debugging tools for 
  178.     object-oriented programming", Journal of Object-Oriented 
  179.     Programming, June, 1991, Vol. 4, No. 3, pp. 10 - 27.
  180.  
  181. Smith, M. D. and D. J. Robson, " A Framework for Testing Object-Oriented 
  182.     Programs", JOOP, 5(3):45-53, June 1992.
  183.     Describes ways in which the usual approach to software testing
  184.     could be adapted for object-oriented software.
  185.     This paper, or one with the same title and authors, is
  186.     available by anonymous ftp from vega.dur.ac.uk as
  187.     "/pub/papers/foot.dvi".
  188.  
  189. Smith, M. D. and D. J. Robson, "Object-Oriented Programming - the 
  190.     Problems of Validation",  Proceedings of the 6th International 
  191.     Conference on Software Maintenance 1990, IEEE Computer Society 
  192.     Press, Los Alamitos, CA., pp. 272-281.
  193.  
  194. Taylor, David. "A quality-first program for object technology", Object 
  195.     Magazine, Vol. 2, No. 2, July-August 1992, pp17-18. SIGs
  196.     Publications.  The article talks some about why testing is
  197.     important for OOP and describes one quality program.
  198.  
  199. Theilen, David.  "No Bugs.  Delivering error free code in C and C++.",
  200.     Addison-Wesley, 1992, ISBN:0-201-60890-1.
  201.  
  202. Turner, C. D. and D. J. Robson, "The Testing of Object-Oriented Programs",
  203.     Technical Report TR-13/92, Computer Science Division, School of
  204.     Engineering and Computer Sciences (SECS), University of Durham,
  205.     England.
  206.     Includes a survey of existing literature on testing of OO
  207.     programs.  Testing of OOP is compared with traditional software
  208.     testing.  A state-based approach is described.
  209.     This paper is available by anonymous ftp from vega.dur.ac.uk in
  210.     /pub/papers. Get "toop.ps.Z" for A4 paper and "toopus.ps.Z" for
  211.     US letter paper formatting.
  212.  
  213. Turner, C. D. and D. J. Robson, "A Suite of Tools for the State-Based
  214.     Testing of Object-Oriented Programs", Technical Report
  215.     TR-14/92, Computer Science Division, School of Engineering and
  216.     Computer Science (SECS), University of Durham, Durham,
  217.     England.  Describes a series of tools for the generation and
  218.     execution of test cases for OOP.  These tools assume a
  219.     state-based testing approach.
  220.     This paper is available by anonymous ftp from vega.dur.ac.uk in
  221.     /pub/papers.  Get "tools.ps.Z" for A4 paper formatting or get
  222.     "toolsus.ps.Z" for US letter formatting.
  223.  
  224. Turner, C. D. and D. J. Robson, "Guidance for the Testing of Object-
  225.     Oriented Programs", Technical Report TR-2/93, Computer Science
  226.     Division, School of Engineering and Computer Science (SECS),
  227.     University of Durham, Durham, England.  Discusses different
  228.     methods of making class declarations and the implications of
  229.     those methods for testing.
  230.     This paper is available by anonymous ftp from vega.dur.ac.uk in
  231.     /pub/papers.  Get "guide.ps.Z" for A4 paper formatting or get
  232.     "guideus.ps.Z" for US letter formatting.
  233.  
  234. Turner, C. D. and D. J. Robson, "State-Based Testing and Inheritance",
  235.     Technical Report TR-1/93, Computer Science Division, School of
  236.     Engineering and Computer Science (SECS), University of Durham,
  237.     Durham, England.
  238.     Discusses the implications of inheritance for testing,
  239.     particularily incremental testing.
  240.     This paper is available by anonymous ftp from vega.dur.ac.uk in
  241.     /pub/papers.  Get toopinht.ps.Z" for A4 paper formatting or get
  242.     "toopinhtus.ps.Z" for US letter formatting.
  243.  
  244. Wong, P. Automated Class Exerciser (ACE) User's Guide.  Technical
  245.     Report TR92-0655, MPR Teltech Ltd., September 1992.
  246.  
  247. > Courses
  248.  
  249. Berard Software Engineering, Inc. teaches a seminar on Testing of
  250. Object-Oriented Software (TOOS).  The next one scheduled that I know of
  251. is November 8-12, in Washington.  Call 301-417-9884 for details.
  252.  
  253. Quality Fractals, Inc. has a course called "Testing Object-Oriented
  254. Software".  Contact: 508-359-7273 (Box 337, Medfield, MA 02052).  The
  255. course is taught by Shel Siegel of YESS!, Inc.  Contact: 916-944-1032.
  256.  
  257.  
  258. > Software
  259.  
  260. There is a smalltalk class library in the Univ. of Illinois archives
  261. which includes a simple Tester class written by Bruce Samuelson
  262. (bruce@utafll.uta.edu). It is a general superclass for application
  263. specific classes that test non-interactive objects such as trees,
  264. collections, or numbers. It is not suitable for testing user interface
  265. components such as windows, cursors, or scroll bars. The filein
  266. includes Tree classes, Tester itself, and subclasses of Tester that are
  267. used to validate the Tree classes. For ParcPlace Smalltalk (ObjectWorks
  268. 4.1 and VisualWorks 1.0). To get it ftp the file
  269. "/pub/st80_vw/TreeLW1.1" from st.cs.uiuc.edu.
  270.  
  271. IPL Ltd. (in the UK) has a testing tool called Cantata which allows for
  272. testing C++, but as far as I am able to determine, it has no special
  273. features for C++ testing.  From the product literature:
  274.     Cantata allows testing to be performed in an intuitive way
  275.     making the tool exceptionally easy to use and productive in
  276.     operation. Cantata is suitable for testing software written in
  277.     either C or C++.
  278.  
  279.     Cantata provides comprehensive facilities for all forms of
  280.     dynamic testing, including: functional testing, structural
  281.     testing, unit testing and integration testing. Cantata has been
  282.     specifically designed to operate in both host and target
  283.     systems and so allow full portability of tests between these
  284.     environments.
  285. For more information contact IPL:
  286.     IPL Ltd.
  287.     Eveleigh House, Grove Street, 
  288.     Bath  BA1 5LR
  289.     UK
  290.     (0225) 444888
  291.     (0225) 444400 (FAX)
  292.     email: shaun@iplbath.demon.co.uk
  293.  
  294. TestCenter from CenterLine will do coverage testing of C++ (and C)
  295. code.  Also does some memory debugging (similar to Purify) and regression
  296. testing.  Highlights from CenterLine literature:
  297.   *Automatic run-time error-checking on executables to enhance quality 
  298.   *Automatic memory leak detection on executables to optimize memory use
  299.   *Graphical test coverage to highlight any code not executed during test runs
  300.   *Intuitive GUI for easy test analysis 
  301.   *Programmatic interface to output files and cumulative code coverage 
  302.    to support batch-mode and regression testing
  303.   *No recompilation needed, resulting in quick turnaround
  304.   *Complete C and C++ language support
  305.   *Integration with leading programming tools for maximum productivity gains
  306.  
  307. MicroTech Pacific Research (mpr.ca) has a C++ class testing tool called
  308. ACE (Automated Class Exerciser) which is available under non-disclosure
  309. agreement.  It is not currently for sale.  If you are interested,
  310. contact Paul Townsend, townsend@mprgate.mpr.ca.
  311.  
  312. Software Research Inc. (625 Third St, San Francisco, CA 94107-1997,
  313. voice: 1-415-957-1441, email: info@soft.com) has a coverage tool for C++
  314. that is called tcat++.  It is an extension of SRI's tcat program.
  315.  
  316. Quality Assured Software Engineering (938 Willowleaf Dr., Suite 2806,
  317. San Jose, CA 95128, voice: 1-408-298-3824 ) has a coverage tool for
  318. C and C++ called MetaC.  It also dones some syntax checking and memory
  319. allocation checking.
  320.  
  321. A group of volunteers is building a C++ test harness for the automated
  322. testing of C++, C and Perl programs.  The system is called ETET (Extended
  323. Test Environment Toolkit).  To join the group of volunteers, send email to
  324.     etet_support@uel.co.uk
  325. The software is available via anonymous FTP from bright.ecs.soton.ac.uk
  326. (152.78.64.201) as "/pub/etet/etet1.10.1.tar.Z".  They are looking for
  327. other FTP sites - sned email to the above address if you can provide
  328. one.  This is a beta release and _should_ compile on any POSIX.1 system.
  329. As much of this work is being done by SunSoft, my guess is that the
  330. software will have the fewest problems on SunOS or Solaris releases.
  331.  
  332. > ACKs
  333.  
  334. Thanks to the following for helping assemble this list:
  335.     Benjamin C. Cohen, bcohen@scdt.intel.com
  336.     Brian Marick, marick@hal.cs.uiuc.edu
  337.     Bruce Samuleson, bruce@utafll.uta.edu
  338.     Daniel M. Hoffman, dhoffman@uvunix.uvic.ca
  339.     Edward Klimas, ac690@cleveland.freenet.edu
  340.     John Graham, J.Graham@axion.bt.co.uk
  341.     Jim Youlio, jim@bse.com
  342.     Jeffery Brown, jeffrey.brown@medtronic.com
  343.     Lars Jonsson, konlajo@etna.ericsson.se
  344.     Manfred Scheifert, ch_schie@rcvie.co.at
  345.     Mark Swanson, mswanson@mechmail.cv.com
  346.     Mary L. Schweizer, mary@gdwest.gd.com
  347.     Michael Einkauf, Michael_Einkauf@iegate.mitre.org
  348.     Paul Townsend, townsend@mprgate.mpr.ca
  349.     Phyllis G. Frankl, pfrankl@polyof.poly.edu
  350.     Rachel Harrison, rh@ecs.soton.ac.uk
  351.     Risto Hakli, rkh@tko.vtt.fi
  352.     Russ Hopler, russ@bse.com
  353.     Stephane Barbey, barbey@di.epfl.ch
  354.     Tony Reis, tonyr@hpsadln.sr.hp.com
  355.     Yawar Ali, yali@bnr.ca
  356.  
  357.  
  358. 3.12) What Distributed Systems Are Available?
  359. ---------------------------------------------
  360.  
  361. The following post helps to provide some answers with at least a partial list.
  362. See also Appendix E.
  363.  
  364. From: rmarcus@bcsaic.boeing.com (Bob Marcus)
  365. Newsgroups: comp.object,comp.client-server
  366. Subject: Distributed Computing Products Overview
  367. Date: 17 Sep 93 00:02:40 GMT
  368. Organization: Boeing Computer Services
  369.            
  370.              DISTRIBUTED COMPUTING PRODUCTS OVERVIEW
  371.  
  372.   There was a recent posting concerning the relationship between OMG's CORBA
  373.  and Distributed Transaction Processing Monitors. In general, there is a lot of
  374.  uncertainty as to how the various distributed computing tools, products and
  375.  environments might work together.  Below is the outline of an eight-page
  376.  posting to the Corporate Facilitators of  Object-Oriented Technology (CFOOT)
  377.  mailing list addressing these issues. Let me know if you would like a copy
  378.  of the posting and/or to be added to the CFOOT mailing list. 
  379.      
  380.                                           Bob Marcus 
  381.                                           rmarcus@atc.boeing.com
  382.  -----------------------------------------------------------------------
  383.  SOME GENERAL REFERENCES FOR ADDITIONAL INFORMATION 
  384.  -----------------------------------------------------------------------
  385.  MULTIPROTOCOL NETWORK TRANSPORTS
  386.  
  387.   Peer Logic (PIPES)
  388.   ATT (Transport Layer Interface) 
  389.  -----------------------------------------------------------------------
  390.  MICROKERNELS
  391.  
  392.   OSF(Mach)
  393.   Chorus Systems (Chorus)
  394.   Microsoft (NT)
  395.  -----------------------------------------------------------------------
  396.  REMOTE PROCEDURE CALLS
  397.  
  398.   NobleNet (EZ-RPC)
  399.   Netwise (Netwise-RPC) 
  400.   ATT/Sun (TI-RPC)
  401.   OSF (DCE/RPC)
  402.  -----------------------------------------------------------------------
  403.  CONVERSATIONAL PROGRAMMING
  404.  
  405.   IBM(Common Programming Interface-Communications)
  406.  -----------------------------------------------------------------------
  407.  MESSAGING PRODUCTS
  408.  
  409.   System Strategies/IBM (MQ Series)
  410.   Horizon Strategies (Message Express) 
  411.   Covia Systems(Communications Integrator)
  412.   Momentum Software(X-IPC)
  413.   Creative System Interface (AAI)
  414.   Digital (DECmessageQ)
  415.   HP (Sockets)(BMS)
  416.   IBM (DataTrade)(DAE)
  417.   Suite Software (SuiteTalk)
  418.   Symbiotics (Networks)
  419.  -----------------------------------------------------------------------
  420.  PUBLISH AND SUBSCRIBE MESSAGING 
  421.  
  422.   Sun(Tooltalk)
  423.   Teknekron (Teknekron Information Bus)
  424.   ISIS(Distributed News)
  425.   Expert Database Systems (Rnet)
  426.  ----------------------------------------------------------------------
  427.  DISTRIBUTED COMPUTING ENVIRONMENTS
  428.  
  429.   OSF/DCE
  430.   ISIS(Distributed Toolkit)
  431.  -----------------------------------------------------------------------
  432.  TRANSACTION PROCESSING MANAGERS 
  433.  
  434.   Unix Systems Lab (Tuxedo) 
  435.   Information Management Company (Open TransPort) 
  436.   NCR (TopEnd)
  437.   Transarc (Encina)
  438.   IBM/HP/Transarc (Open CICS)
  439.  -----------------------------------------------------------------------
  440.  DISTRIBUTED WORKSTATION EXECUTION SYSTEMS
  441.  
  442.   Aggregate Systems (NetShare)
  443.   Platform Computing(Utopia)
  444.   ISIS(Resource Manager)
  445.  -----------------------------------------------------------------------
  446.  OBJECT REQUEST BROKERS 
  447.  
  448.   Hyperdesk (Distributed Object Manager)
  449.   IBM Distributed System Object Model(DSOM)
  450.   Microsoft (Distributed OLE)
  451.   Iona Technologies Ltd. (Orbix) 
  452.   BBN (Cronus)
  453.   ISIS (RDOM)
  454.   Qualix (NetClasses)
  455.   Symbiotics (Networks!)
  456.   Digital(ACA Services) 
  457.   Object-Oriented Technologies (SuiteDOME)
  458.  -----------------------------------------------------------------------
  459.  SYSTEM MANAGEMENT  
  460.  
  461.   OSF (Distributed Management Environment)
  462.   Legent
  463.   Digital Analysis (HyperManagement)
  464.  -----------------------------------------------------------------------
  465.  DISTRIBUTED DEVELOPMENT/EXECUTION PRODUCTS   
  466.  
  467.   Texas Instruments (Information Engineering Facility)
  468.   HP (SoftBench)
  469.   Digital (COHESIONworX) 
  470.  -----------------------------------------------------------------------
  471.  DISTRIBUTED DEVELOPMENT/EXECUTION PRODUCTS   
  472.  
  473.   Independence Technologies (iTRAN)
  474.   Intellicorp(Kappa) 
  475.   ISIS Distributed Systems (RDOM) 
  476.   Early, Cloud & Company (Message Driven processor)
  477.   Expersoft(XShell)
  478.   Cooperative Solutions(Ellipse)
  479.  -----------------------------------------------------------------------
  480.  
  481.  
  482. 3.13) What Is The MVC Framework?
  483. --------------------------------
  484.  
  485. MVC stands for Model-View-Controller.  This framework was originally adopted
  486. in Smalltalk to support Graphical User Interfaces.  Views support graphical
  487. interfacing, controllers handle interaction, and models are the application
  488. objects.  See [Krasner 88] and [LaLonde 90b].
  489.  
  490. From: Carl Petter Swensson <cepe@taskon.no>
  491.   Prof. Trygve Reenskaug is generally cited as being the creator of
  492.   the MVC concept. He worked with the Smalltalk group at Xerox PARC
  493.   as a visiting scientist in 78/79. During this stay at Xerox PARC 
  494.   he developed the MVC. I know him well and have talked to him about
  495.   this. He confirms it, although stating that it was a collaborative
  496.   effort at Xerox PARC.
  497.  
  498.   The implementation of MVC in Smalltalk-80 has since been further
  499.   developed by ParcPlace Systems.
  500.  
  501.   He has worked with Smalltalk in a commercial and research
  502.   environments since then. His group at the Centre for Industral
  503.   Research in Oslo (now part of the SINTEF group) had the only
  504.   Smalltalk-78 implementation outside Xerox PARC.  He is now working
  505.   with Taskon AS.
  506.  
  507.   The ideas that initially gave MVC has been developed further and 
  508.   is the basis of the work Trygve is currently doing on the
  509.   OOram methodology.
  510.  
  511.  
  512. 3.14) What is Real-Time?
  513. ------------------------
  514.  
  515. Real-time is our linear extrapolation/perception of imaginary time (along the
  516. quantum wave function (OTU) in ten dimensions, of course).
  517.  
  518. [This section is YTBI]
  519.  
  520.  
  521. 3.15) What Is Available on OO Metrics?
  522. --------------------------------------
  523.  
  524. This section is still building.
  525.  
  526. http://www.sbu.ac.uk/~csse/publications/OOMetrics.html
  527.  
  528. [Berard 93] contains an elaborate bibliography and section on OO metrics.
  529. [Booch 94] also contains some coverage.
  530.  
  531. Also:
  532. Object Oriented Software development
  533. Mark Lorenz ISBN 0-13-726928-5
  534. Prentice Hall
  535.  
  536. Software Metrics
  537. Grady-Caswell ISBN 0-13-821844-7
  538. Prentice Hall
  539.  
  540. Measuring Software Design Quality
  541. Card-Glass ISBN 0-13-568593-1
  542. Prentice Hall
  543.  
  544.  
  545. From: trilk@informatik.tu-muenchen.de (Joern Trilk)
  546. Newsgroups: comp.object,comp.lang.c++,comp.lang.smalltalk,comp.databases.object
  547. Subject: Re: In search of OO Metrics
  548. Date: 20 Jun 1994 14:29:27 GMT
  549. Organization: Technische Universitaet Muenchen, Germany
  550.  
  551. >...
  552. Here are some references:
  553.  
  554. @article{inheriting:1993,
  555.     author  = {G. Michael Barnes and Bradley R. Swim},
  556.     title   = {Inheriting software metrics},
  557.     journal = {JOOP},
  558.     year    = {1993},
  559.     month   = {Nov./Dec.},
  560.     volume  = {6},
  561.     number  = {7},
  562.     pages   = {27-34}
  563. }
  564.  
  565.  
  566. @article{a-new-metr:1993,
  567.     author  = {J.-Y. Chen and J.-F. Lu},
  568.     title   = {A new metric for object-oriented design},
  569.     journal = {Information and Software Technology},
  570.     year    = {1993},
  571.     month   = apr,
  572.     volume  = {35},
  573.     number  = {4},
  574.     pages   = {232-240}
  575. }
  576.  
  577.  
  578. @inproceedings{towards-a-:1991,
  579.     author  = {Shyam R. Chidamber and Chris F. Kemerer},
  580.     title   = {Towards a Metrics Suite for Object Oriented Design},
  581.     booktitle = {OOPSLA '91 Proceeedings},
  582.     year    = {1991},
  583.     pages   = {197-211}
  584. }
  585.  
  586.  
  587. @inproceedings{software-m:1992,
  588.     author  = {J. Chris Coppick and Thomas J. Cheatham},
  589.     title   = {Software Metrics for Object-Oriented Systems},
  590.     booktitle = {CSC '92 Proceedings},
  591.     year    = {1992},
  592.     pages   = {317-322}
  593. }
  594.  
  595.  
  596. @inproceedings{some-metri:1991,
  597.     author  = {B. Henderson-Sellers},
  598.     title   = {Some metrics for object-oriented software engineering},
  599.     booktitle = {TOOLS Proceedings},
  600.     year    = {1991},
  601.     pages   = {131-139}
  602. }
  603.  
  604.  
  605. @article{object-ori:1993,
  606.     author  = {Wei Li and Sallie Henry},
  607.     title   = {Object-Oriented Metrics that Predict Maintainability},
  608.     journal = {J. Systems Software},
  609.     year    = {1993},
  610.     volume  = {23},
  611.     pages   = {111-122}
  612. }
  613.  
  614.  
  615. @inproceedings{workshop-r:1992,
  616.     author  = {Teri Roberts},
  617.     title   = {Workshop Report - Metrics for Object-Oriented Software Development},
  618.     booktitle = {OOPSLA '92 (Addendum to the Proceedings)},
  619.     year    = {1992},
  620.     pages   = {97-100}
  621. }
  622.  
  623.  
  624. @techreport{softwareme:1991,
  625.     author  = {A. Buth},
  626.     title   = {Softwaremetriken f{\"u}r objekt-orientierte Programmiersprachen},    institution = {Gesellschaft f{\"u}r Mathematik und 
  627. Datenverarbeitung},
  628.     year    = {1991},
  629.     month   = jun,
  630.     number  = {545},
  631.     type    = {Arbeitspapiere der GMD}
  632. }
  633.  
  634.  
  635. The Software Engineering FAQ lists the following references concerning
  636. metrics for object-oriented systems:
  637.  
  638. Date: 26 Jan 1993 Originally collected by: ZUSE%DB0TUI11.BITNET@vm.gmd.de
  639. (Horst Zuse) 
  640.  
  641. a. Morris Kenneth L.  Metrics for Object-Oriented Software Development
  642.    Environments (master's thesis). 1989, MIT.
  643. b. Rocacher, Daniel: Metrics Definitions for Smalltalk.  Project ESPRIT 1257,
  644.    MUSE WP9A, 1988.
  645. c. Rocacher, Daniel: Smalltalk Measure Analysis Manual.  Project ESPRIT 1257,
  646.    MUSE WP9A, 1989.
  647. d. Lake, Al: A Software Complexity Metric for C++.  Annual Oregon Workshop on
  648.    Software Metrics, March 22-24, 1992, Silver Falls, Oregon, USA.
  649. e. Bieman, J.M.: Deriving Measures of Software Reuse in Object Oriented
  650.    Systems.  Technical Report #CS91-112, July 1991, Colorado State Universty,
  651.    Fort Collins/ Colorado, USA.
  652.  
  653. Hope this helps,
  654.     Joern
  655.  
  656. ----------------------------------------------------------------------
  657. Joern Trilk            Phone: ++49-89-2105-2391
  658. Institut fuer Informatik (H1)    Fax:   ++49-89-2105-5296
  659. TU Muenchen            Email: trilk@informatik.tu-muenchen.de
  660. 80290 Muenchen                    
  661. ----------------------------------------------------------------------
  662.  
  663.  
  664. Newsgroups: comp.software-eng
  665. From: scottw@advsysres.com (Scott A. Whitmire)
  666. Subject: Re: Any good OO metrics?
  667. Organization: Advanced Systems Research
  668. Date: Mon, 28 Nov 1994 05:58:29 GMT
  669.  
  670. In <3baqhn$crg@newsbf01.news.aol.com>, cjdavies@aol.com (Cjdavies) writes:
  671. >Has anyone come up with metrics that work realistically for OO
  672. >development?  The old lines of code, cyclomatic complexity and Halstead
  673. >metrics don't work so well with OO languages such as Smalltalk (or any
  674. >language that facilitates reuse).  Also, has anyone adapted function
  675. >points to OO languages?  Any ideas would be most welcome.
  676. >Thanks,
  677. >Colin Davies.
  678.  
  679. Several people have been working in metrics for oo development.  For a quick
  680. synopsis, check out my article in the "Encyclopedia of Software Engineering"
  681. edited by John Marciniak and published by John Wiley & Sons.  The article
  682. gives an overview of the work being done in the field, and what needs to be
  683. done.  It is a couple of years old now, but there really isn't that much going
  684. on.
  685.  
  686. I did run into one book called "Object-Oriented Software Metrics" (I forget the
  687. authors), but I didn't think much of it.
  688.  
  689. Your assessment of LOC, cyclomatic complexity, and Halsted are right on the
  690. money.
  691.  
  692. As for function points and OO, I think you'll find two papers useful.  The first
  693. is a chapter I wrote for the "Software Engineering Productivity Handbook" edited
  694. by Jessica Keyes and published by McGraw-Hill.  It applies standard function points
  695. to OO software.  I suspect you'll find standard function points wanting.  I use
  696. an extension I developed a couple of years ago called 3D function points.  I have
  697. an electronic (plain text) version of the paper I can send if you like.
  698.  
  699. Metrics and OO development are fairly new to each other.  I am working on ways to
  700. measure such design characteristics as cohesion, coupling, complexity, similarity
  701. and the like.  I haven't been too thrilled with the work that has been done so far.
  702. Much of it has serious theoretical and technical flaws.
  703.  
  704. Scott A. Whitmire             scottw@advsysres.com
  705. Advanced Systems Research     
  706. 25238 127th Avenue SE         tel:(206)631-7868
  707. Kent Washington 98031         fax:(206)630-2238
  708.  
  709. Consultants in networking, network-based applications, and software metrics.
  710.  
  711.  
  712. 3.16) What Are Visual Object-Oriented Programming Systems?
  713.  
  714. See also http://union.ncsa.uiuc.edu/HyperNews/get/computing/visual.html.
  715. There is also a comp.lang.visual and FAQ, similar to the www html above.
  716.  
  717. Visual programming is the use of graphics and graphical techniques in
  718. computer programming.  It is becoming more common to see many
  719. approaches to visual/graphical programming languages emerging that
  720. incorporate the object-oriented programming philisophy.  Toward this
  721. end, developers of new programming languages and programming
  722. environments are exploring how to combine visual programming with
  723. object-oriented programming by investigating how the basic concepts of
  724. OOP -- data abstraction, instantiation, composition, and
  725. specialization -- create new opportunities for programming using
  726. visual means of construction.
  727.  
  728. A workshop on this topic was conducted at the 1993 OOPSLA, and a
  729. workshop summary appeared as part of the 1993 OOPSLA Addendum.  Several
  730. of the presenters at the workshop developed full versions of their
  731. presentations, which are available in book form:
  732.  
  733.     Visual Object-Oriented Programming: Concepts and Environments,
  734.     Margaret Burnett, Adele Goldberg, and Ted Lewis, editors,
  735.     Prentice-Hall/Manning Publications, Englewood Cliffs, NJ, 1995.
  736.  
  737.     http://www.cs.orst.edu/techpub/vlib/vlib/Visual-OOP/CARD.html
  738.  
  739. -----
  740. Margaret Burnett        .       e-mail: burnett@cs.orst.edu
  741. Assistant Professor       .       WWW page: http://www.cs.orst.edu/~burnett/
  742. Computer Science Dept.      .        
  743. Oregon State University       .
  744. Corvallis, Oregon 97331 USA     .
  745.  
  746.  
  747. 3.17) What Tutorials Are Available On Object-Oriented Concepts and Languages?
  748.  
  749. Date: Thu, 25 May 95 17:31:21 EDT
  750. From: wheeler@ida.org (David Wheeler)
  751.  
  752. A list of C/C++ tutorials, including online tutorials, is maintained at:
  753.   http://vinny.csd.mu.edu/learn.html
  754.  
  755. Note that C and C++ are treated together.  One of the tutorials listed is the
  756. course: "Introduction to Object Oriented Programming Using C++", a self-paced
  757. class within the Globewide Network Academy [GNA]; this course may be found at:
  758.   http://uu-gna.mit.edu:8001/uu-gna/text/cc/index.html
  759.  
  760. Another course listed is the Coronado Enterprises C++ Tutorial, which assumes
  761. that the user is already familiar with C (not necessarily ANSI C).  It may be
  762. downloaded from:
  763.   anonymous@oak.oakland.edu:simtel/msdos/cpluspls/cptuts22.zip
  764.   anonymous@oak.oakland.edu:simtel/msdos/cpluspls/cptutt22.zip
  765.  
  766. One Ada 95 on-line tutorial is Lovelace, which is intended for those who are
  767. already familiar with other algorithmic programming languages and are somewhat
  768. familiar with object orientation.  Lovelace is available at:
  769.   anonymous@lglftp.epfl.ch:/pub/Ada/HTML/lovelace.zip
  770.   http://lglwww.epfl.ch/Ada/Tutorials/Lovelace/lovelace.html
  771.  
  772. Other Ada tutorials are listed in:
  773.   http://lglwww.epfl.ch/Ada/Tutorials/Lovelace/othert.html
  774.  
  775. The Sather home page includes a list of Sather tutorials in its "Getting
  776. Started" section:
  777.   http://http.icsi.berkeley.edu/Sather/
  778.  
  779. The BETA language is introduced in:
  780.  http://www.daimi.aau.dk/~beta/Tutorials/BETAintroduction/BETAintroduction.html
  781.  
  782. A large list of SELF-related papers available electronically is at:
  783.   http://self.stanford.edu/papers/papers.html
  784.  
  785. The Booch design method is briefly described in
  786.   http://www.itr.ch/tt/case/BoochReferenz/
  787.  
  788. For a list of many different resources of computer-language-specific
  789. information, see the YAHOO list of computer languages at:
  790.   http://www.yahoo.com/Computers/Languages/
  791.  
  792.  
  793.  
  794.  
  795. SECTION 4:  COMMONLY ASKED LANGUAGE SPECIFIC QUESTIONS
  796. ======================================================
  797.  
  798. 4.1)  What is Downcasting?
  799. --------------------------
  800.  
  801. Downcasting is the term used in C++ for casting a pointer or reference to
  802. a base class to a derived class.  This should usually be checked with an
  803. embedded dynamic typing scheme if such a scheme is not present in the
  804. language, such as with a typecase (Modula-3) or inspect (Simula) construct.
  805. In C++, it is even possible to use conversion functions to perform some
  806. checks, although the proposed RTTI will perform checked downcasting as
  807. its primary ability.
  808.  
  809.  
  810. 4.2)  What are Virtual Functions?
  811. ---------------------------------
  812.  
  813. Look under "Dynamic Binding" and "Polymorphism".
  814.  
  815.  
  816. 4.3)  Can I Use Multiple-Polymorphism Or Multi-Methods In C++?
  817. ---------------------------------------------------------------
  818.  
  819. Yes, but you'll need to embed a dynamic typing scheme to do it.  With dynamic
  820. types in place, an overriding method in a derived class can explicitly check
  821. argument types in a switch statement and invoke the desired method emulating
  822. multiple-polymorphism [See Coplien 92].  
  823.  
  824. For true CLOS multi-methods, the above technique implemented as a base function
  825. (CLOS defgeneric), switching to specialized functions (CLOS methods, made
  826. friends of all arguments) will provide the functional calling syntax, multiple-
  827. polymorphism and access to parameters found in CLOS.  This can require some
  828. complex switching, which is somewhat mitigated when multiple-polymorphism
  829. is implemented with virtual functions.
  830.  
  831. Future FAQs should contain more detail.
  832.  
  833.  
  834. 4.4)  Can I Use Dynamic Inheritance In C++?
  835. -------------------------------------------
  836.  
  837. Yes, [Coplien 92] describes a scheme where a class can contain a pointer to
  838. a base class that can switch between its derived classes, providing a limited
  839. form.  Earlier chapters contain entries on bypassing C++'s message system and
  840. even bypassing static linking.
  841.  
  842. Future FAQs should contain more detail.
  843.  
  844.  
  845.  
  846. ANNOTATED BIBLIOGRAPHY
  847. ======================
  848.  
  849. [Agrawal 91]  R. Agrawal et al.  "Static Type Checking of Multi-Methods".
  850.  OOPSLA 91.  Object-Oriented Programming Systems, Languages, and Applications.  
  851.  ACM Press.  Addison Wesley.
  852.  
  853.   Compile-time checking and optimizations for multi-methods.
  854.  
  855. [Aho 86] Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman.  Compilers:
  856.  Principles, Techniques, and Tools. Reading, MA: Addison-Wesley, 1986.
  857.  
  858.   Authoritative, classic book on compilers and optimizations.  Type chapter
  859.   contains section on type inferencing (using ML as an example).
  860.  
  861. [Berard 93]  Edward V. Berard.  Essays on Object-Oriented Software
  862.   Engineering.  Prentice Hall.
  863.  
  864.   Many topics on OOSE, includes coverage of OO domain and requirements
  865.   analysis.
  866.  
  867. [Black 86] A. Black et al.  Object-Structure in the Emerald System.  OOPSLA
  868.  '86 Conference Proceedings, SIGPLAN Notices (Special Issue), Vol. 21, n0. 11,
  869.  pp 78-86.    [I believe there is a more recent article, YTBI]
  870.  
  871.   The original article on Emerald.  OO language without inheritance but with
  872.   abstract types and static subtype polymorphism.  Also designed for
  873.   distributed programming and reuse.  See article for references: Jade on
  874.   reuse [Raj 89]) and Distr. Prog.
  875.  
  876. [Black 87] A. Black, N. Hutchinson, E. Jul, H. Levyand L. Carter.  Distribution
  877.  and Abstract Types in Emerald, IEEE Transactions on Software Engineering, Vol.
  878.  SE13, no. 1 Jam., pp 65-76.
  879.  
  880.   Subtype polymorphism for distributed programming in Emerald [Black 86].
  881.  
  882. [Blair 89] "Genericity vs Inheritance vs Delegation vs Conformance vs ..."
  883.  Gordon Blair, John Gallagher and Javad Malik, Journal of Object Oriented
  884.  Programming, Sept/Oct 1989, pp11-17.
  885.  
  886.   Recommended by a reader, but the Author has yet to review this article.
  887.  
  888. [Boehm 86] B.W. Boehm. A Spiral Model of Software Development and Enhancement.
  889.  Software Engineering Notes, Aug., vol. 11 (4), p 22.
  890.  
  891.  Presents an alternative evolutionary approach to the strict waterfall software
  892.  engineering life-cycle.  Now a classic, most OO methodologies now emphasize
  893.  the iterative or evolutionary approach to software development.
  894.  
  895. [Booch 87] Grady Booch.  Software Engineering with Ada.  2nd Ed.  Benjamin
  896.  Cummings.
  897.  
  898.   Booch in his early years.  Mostly object-based programming with Ada.
  899.  
  900. [Booch 87b] Grady Booch.  Software Components With Ada, Structures, Tools,
  901.  and Subsystems.  Benjamin Cummings.
  902.  
  903.   A taxonomy and collection of object-based components in Ada (includes code).
  904.   Has many examples with generics.
  905.  
  906. [Booch 91] Booch, Grady. Object-Oriented Design With Applications.  Benjamin
  907.   Cummings.
  908.  
  909.   The often referred to book on OOD.  Offers design notation and methodology.
  910.   Brief coverage of OOA and elaborate OOD/P coverage in the applications.
  911.   Good on basic principles and has case studies in Smalltalk, Object Pascal, 
  912.   C++, CLOS and Ada.
  913.  
  914.   Also contains an *elaborate* classified bibliography on many areas of OO.
  915.  
  916. [Booch 94]  Grady Booch.  Object-Oriented Analysis And Design With
  917.  Applications, 2nd Ed. Benjamin Cummings.  ISBN 0-8053-5340-2.
  918.  
  919.   The next FAQ should be updated to the second edition.  All examples are now
  920.   in C++.  Booch incorporates several other major methodologies including
  921.   Wirf-Brock's CRC (Class-Responsibility-Collaboration) and Jacobson's Use-
  922.   Cases.
  923.  
  924. [Cardelli 85]  L. Cardelli and P. Wegner.  On Understanding Types, Data
  925.  Abstraction, and Polymorphism.  ACM Computing Surveys vol. 17 (4).
  926.  
  927.  Long, classic article on Object-Oriented Types, Data Abstraction and
  928.  Polymorphism.  Formal coverage with a type system analysis model as well.
  929.  
  930. [Chambers 92]  Craig Chambers.  The Design and Implementation of the SELF
  931.  Compiler, an Optimizing Compiler for Object-Oriented Programming Languages.
  932.  Dept of Computer Science, Stanford University, March 1992.
  933.  
  934.   Covers type optimizations for OO compilers.  See Appendix E, PAPERS.
  935.  
  936. [Chambers 93]  Craig Chambers.  Predicate Classes.  Proceedings ECOOP '93
  937.   O. Nierstrasz, LNCS 707. Springer-Verlag, Kaiserslautern, Germany
  938.   July 1993 pp 268-296
  939.  
  940.    "... an object is automatically an instance of a predicate class whenever
  941.    it satisfies a predicate expression associated with the predicate class.
  942.    The predicate expression can test the value or state of the object, thus
  943.    supporting a form of implicit property-based classification that augments
  944.    the explicit type-based classification provided by normal classes.  By
  945.    associating methods with predicate classes, method lookup can depend not
  946.    only on the dynamic class of an argument but also on its dynamic value or
  947.    state. [...] A version of predicate classes has been designed and
  948.    implemented in the context of the Cecil language.
  949.  
  950.   See Appendix E, PAPERS.
  951.  
  952. [de Champeaux 93] Dennis de Champeaux, Doug Lea, Penelope Faure.
  953.  Object-Oriented System Development.  Addison-Wesley, ISBN 0-201-56355-X.
  954.  
  955.   Covers an integrated treatment of OOA and OOD.  Takes serious the
  956.   computational model of one thread per object.  Gives more than usual
  957.   attention to the OOA&D micro process.  Presents a unique OOD language.
  958.  
  959. [Coad 91]  Peter Coad and Edward Yourdon. Object-Oriented Analysis, 2nd ed.
  960.  Englewood Cliffs, NJ. Prentice Hall.
  961.  
  962.   Coad and Yourdon's OO analysis method.
  963.  
  964. [Coad 91b]  Peter Coad and Edward Yourdon. Object-Oriented Design.  Englewood
  965.  Cliffs, NJ. Prentice Hall.
  966.  
  967.   Coad and Yourdon's OO design method.
  968.  
  969. [Coleman 94] Derek Coleman, et. al.  Object-Oriented Development - The Fusion
  970.  Method.  Prentice-Hall Object-Oriented Series. ISBN 0-13-338823-9
  971.  
  972.   Fusion is considered to be a second generation OOAD method in that it builds
  973.   on successful components of a number of first generation methods (OMT, Booch,
  974.   CRC, Objectory, etc).  However, this has been done with the requirements of
  975.   industrial software developers in mind. And so issues of traceability,
  976.   management etc. have been taken into consideration and the Method provides
  977.   full coverage from requirements through to code.
  978.  
  979. [Cook 90] W.R. Cook, W.L.Hill, P.S. Canning. Inheritance Is Not Subtyping.
  980.   Appeared in [Hudak 90] and Gunter 94].
  981.  
  982.     Theoretical article on the separation between type and class, or as the
  983.     authors state between implementation inheritance and subtyping.
  984.  
  985. [Coplien 92] James O. Coplien.  Advanced C++ Programming Styles and Idioms.
  986.   Addison Wesley.
  987.  
  988.   Covers advanced C++ programming and performing other more advanced and
  989.   dynamic styles of OO in C++.
  990.  
  991. [Colbert 89]  E. Colbert.  The Object-Oriented Software Development Method: a
  992.  practical approach to object-oriented development.  Tri-Ada Proc., New York.
  993.  
  994.   Presents the Object-Oriented Software development method.  Has emphasis on
  995.   objects.
  996.  
  997. [Cox 86,91] Cox, Brad J.  Object-Oriented Programming, An Evolutionary
  998.  Approach.  Addison Wesley.
  999.  
  1000.   The original book on Objective-C.  Coverage on object-oriented design and
  1001.   programming.  Also covers Objective-C implementation, even into object code.
  1002.   
  1003.   Objective-C... '91 AW by Pinson and Wiener provide another good text.
  1004.  
  1005. [Embley 92]  D.W. Embley, B.D. Kurtz, S.N. Woodfield.  Object-Oriented Systems
  1006.  Analysis, A Model-Driven Approach. Yourdon Press/Prentice Hall, Englewood
  1007.  Cliffs, NJ.
  1008.  
  1009.   Presents the Embley and Kurtz OO methodology.
  1010.  
  1011. [Garfinkel 93]  Simson L. Garfinkel and Michael K. Mahoney.  NeXTSTEP
  1012.  PROGRAMMING  STEP ONE: Object-Oriented Applications.  Springer-Verlag.
  1013.  
  1014.   Introduction to the NextStep environment and applications development.
  1015.  
  1016. [Goldberg 83] Adele Goldberg and David Robson. Smalltalk-80 The Language and
  1017.  Its Implementation.  Addison Wesley.
  1018.  
  1019.   The original book on Smalltalk.  Covers implementation.  Also known as "the
  1020.   Blue Book".  Out of print.  Superceded by [Goldberg ??].
  1021.  
  1022. [Goldberg ??] Adele Goldberg and David Robson. Smalltalk-80: The Language.
  1023.  Addison-Wesley. 
  1024.  
  1025.   The "Purple Book".  Omits the obsolete abstract virtual machine description
  1026.   from the Blue Book.
  1027.  
  1028. [Gunter 94] Carl A. Gunter and John C. Mitchell. Theoretical Aspects of Object-
  1029.  Oriented Programming. MIT Press.  ISBN 0-262-07155-X.
  1030.  
  1031.   Highly mathematical, formal coverage of object-oriented programming;
  1032.   primarily on typing.
  1033.  
  1034. [Harmon 93] Paul Harmon.  Objects In Action: Commercial Applications Of Object-
  1035.  Oriented Technologies.  Jan, 1993.  A-W ISBN 0-201-63336-1.
  1036.  
  1037.   Sponsored by the OMG to summarize the use of OO technology in industry and
  1038.   business, contains a brief history and summary of OO and many case studies.
  1039.  
  1040. [HOOD 89] HOOD Working Group.  HOOD Reference Manual Issue 3.0.  WME/89-173/JB.
  1041.  Hood User Manual Issue 3.0. WME/89-353/JB.  European Space Agency.
  1042.  
  1043.   Presnets the HOOD (Hierarchical Object-Oriented Design) OOSE methodology.
  1044.   From the European Space Agency.  Based on Ada and object-based.
  1045.  
  1046. [Hudak 90] P. Hudak. Principles of Programming Languages.  ACM Press, pp 125
  1047.  -135.
  1048.  
  1049.   Contains several articles, including [Cook 90].
  1050.  
  1051. [Hudak 92] Paul Hudak and Simon Peyton Jones.  Haskell Report. SIGPLAN Notices.
  1052.  1992, vol 27, no 5.
  1053.  
  1054.   Haskell reference.
  1055.  
  1056. [Humphrey 89]  Watts Humphrey.  Managing the Software Process.  Addison Wesley.
  1057.   ISBN 0-201-18095-2
  1058.  
  1059.   Sponsored by the Software Engineering Institute (SEI), the presented project
  1060.   management model is inspired by the work of Boehm, Brooks, Deming and Juran
  1061.   and represents a strong step in the direction of achieving 6 sigma defect
  1062.   rate prevention and optimizing the software development process for quality,
  1063.   productivity, and reliability.  Presents the CMM, see section 1.21.
  1064.  
  1065. [Humphrey 95]  Watts S. Humphrey - "A Discipline for Software Engineering",
  1066.  816 pp., $47.50, 1995, Addison-Wesley (1-800-824-7799) ISBN 0-201-54610-8
  1067.  
  1068.   A scaled down version of [Humphrey 89] for individual software engineers.
  1069.   A new classic.  See section 1.21.
  1070.  
  1071. [IBM 90,91]  Various Documents from the IBM International Technical Centers:
  1072.  GG24-3647-00, GG24-3641-00, GG24-3566-00, GG24-3580-00.
  1073.  
  1074.   Present IBM's OOSE methodology.
  1075.  
  1076. [ISO] ISO Standards Compendium - ISO 9000 Quality Management, 5th edition. Switzerland.
  1077.   ISBN 92-67-10206-0. 
  1078.  
  1079.   The complete standard. 9000-3 discusses software and 9004 is a quality management
  1080.   standard.
  1081.  
  1082. [Jacobson 92]  Ivar Jacobson, et al.  Object-Oriented Software Engineering - A
  1083.  Use Case Driven Approach. ACM Press/Addison Wesley.
  1084.  
  1085.   Presents Jacobson's new OOSE methodology based on use cases.
  1086.  
  1087. [Jacobson 94]  Ivar Jacobson.  Toward Mature Object Technology. ROAD, Vol. 1,
  1088.  No. 1, May-June.  SIGS Publications.
  1089.  
  1090.   Overview of OOSE's object-oriented approach.  Includes specialized objects
  1091.   and layering for complexity management.
  1092.  
  1093. [Jones 92]  Rick Jones. Extended type checking in Eiffel. Journal of Object-
  1094.  Oriented Programming, May 1992 issue, pp.59-62.
  1095.  
  1096.   Presents subtype polymorphic extension to Eiffel (static typing only).
  1097.  
  1098. [Jurik 92] John A. Jurik, Roger S. Schemenaur, "Experiences in Object Oriented
  1099.  Development," ACM 0-89791-529-1/92/0011-0189.
  1100.  
  1101.   Presents the EVB OOSE methodology.  Also: Barbara McAllister, Business
  1102.   Development, EVB Software Engineering, Inc., (301)695-6960, barb@evb.com.
  1103.  
  1104. [Kiczales 92] Gregor Kiczales, Jim des Rivieres, Daniel G. Bobrow.  The Art
  1105.  of the Metaobject Protocol.  The MIT Press.
  1106.  
  1107.   Reflection and Metaobject Protocols (MOPs).  Uses a CLOS subset, Clossette,
  1108.   as a foundation.
  1109.  
  1110. [Kim 89]  Won Kim and Frederick Lochovsky Editors.  Object-Oriented Concepts,
  1111.  Applications, and Databases.
  1112.  
  1113.   Collection of articles on advanced OO and research systems.
  1114.  
  1115. [Krasner 88] G. E. Krasner and S. T. Pope. A Cookbook for Using the Model-View-
  1116.  Controller User Interface Paradigm in Smalltalk-80. JOOP, vol 1, no 3, August/
  1117.  September, 1988, pp 26-49,
  1118.  
  1119.   An early paper published on MVC.
  1120.  
  1121. [Lakoff 87] George Lakoff.  Women, Fire, and Dangerous Things: What Categories
  1122.   Reveal About The Mind.  UOC Press.
  1123.  
  1124.   An almost formal view of classification/categorization by the noted cognitive
  1125.   scientist, George Lakoff.  His view blasts objectivism and contends to
  1126.   replace it with a subjectivist view, based on a study of humans, natural
  1127.   language, and concept formation.
  1128.  
  1129. [LaLonde 90]  Wilf R. LaLonde and John R. Pugh.  Inside Smalltalk: Volume 1.
  1130.  Prentice Hall.
  1131.  
  1132.   Good introduction to Smalltalk.
  1133.  
  1134. [LaLonde 90b]  Wilf R. LaLonde and John R. Pugh.  Inside Smalltalk: Volume 2.
  1135.  Prentice Hall.
  1136.  
  1137.   Excellent coverage of MVC. However, it's based on ParcPlace Smalltalk-80,
  1138.   version 2.5, which is obsolete.
  1139.  
  1140. [Liskov 93] Barbara Liskov and Jeannette M. Wing.  Specifications and Their use
  1141.  in Defining Subtypes.  OOPSLA 93, pp 16-28.  ASM SIGPLAN Notices, V 28, No 10,
  1142.  Oct. 1993.  A-W ISBN 0-201-58895-1.
  1143.  
  1144.   Specifications on Subtype hierarchies.  Helps to insure the semantic
  1145.   integrity of a separate subtype system.  See section 2.7.
  1146.  
  1147. [Madsen 93] Ole Lehrmann  Madsen, Birger Moller-Pedersen, Kristen Nygaard:
  1148.  Object-oriented programming in the BETA programming language.  Addison-Wesley,
  1149.  June 1993. ISBN 0 201 62430 3
  1150.  
  1151.   The new and authoritative book on BETA, by the original designers.  They
  1152.   are some of the same designers of the Simula languages, originating OO.
  1153.   Also just announced:
  1154.     Object-Oriented Environments: The Mjolner Approach
  1155.     Editors: Jorgen Lindskov Knudsen, Mats Lofgren, Ole Lehrmann Madsen,
  1156.          Boris Magnusson
  1157.     Prentice Hall: The Object-Oriented Series
  1158.     ISBN: 0-13-009291-6 (hbk)
  1159.  
  1160. [Martin 92] James Martin and James J. Odell. Object-Oriented Analysis and
  1161.  Design, Prentice-Hall, Englewood Cliffs, NJ.  
  1162.  
  1163.   Its primary purpose is to indicate how information engineering (IE) can be 
  1164.   evolved to accommodate OO.  The analysis portion (starting at Chapter 15) 
  1165.   attempts to go back to 'first principles' and is based on a formal foundation.
  1166.   Therefore, the IE aspect is not required.  Emphasis is more on analysis than 
  1167.   design.
  1168.  
  1169. [Meyer 88] Bertrand Meyer. Object-Oriented Software Construction.  Prentice
  1170.  Hall.  [Is there a new edition out?]
  1171.  
  1172.   The original book on Eiffel.  Coverage on object-oriented design and
  1173.   programming.  Also:
  1174.  
  1175.  
  1176. [Meyer 92] Bertrand Meyer. Eiffel: The Language. Prentice Hall. Englewood
  1177.  Cliffs, NJ. 1992.
  1178.  
  1179.   The definitive book on Eiffel by its author.
  1180.  
  1181. [Meyer 94] Bertrand Meyer. Reusable Software: The Base Object-Oriented
  1182.  Components Libraries.
  1183.  
  1184.   The new Eiffel class Libraries.
  1185.  
  1186. [Mugridge 91] Warwick B. Mugridge et al.  Multi-Methods in a Statically-Typed
  1187.  Programming Language. Proc. ECOOP.
  1188.  
  1189.   Efficient implementation of Multi-Methods.
  1190.  
  1191. [Murray 93] Robert B. Murray.  C++ Strategies and Tactics.  Addison Wesley.
  1192.  
  1193.   C++, has template examples.
  1194.  
  1195. [Nerson 92] Jean-Marc Nerson.  Applying Object-Oriented Analysis and Design.
  1196.  CACM, 9/92.
  1197.  
  1198.   Demonstrates the basics of the BON method/notation.  Nerson: marc@eiffel.fr
  1199.  
  1200. [Paepcke 93] Andreas Paepcke.  Object-Oriented Programming: The CLOS
  1201.  Perspective.  MIT Press.  ISBN 0-262-16136-2.
  1202.  
  1203.   CLOS, readable introduction to its metaobject protocol, comparisons with
  1204.   other languages, uses and methodology, and implementation.  Develops a
  1205.   persistent object metaclass example.
  1206.  
  1207. [Raj 89] R.K. Raj and H.M. Levy.  A Compositional Model for Software Reuse.
  1208.  The Computer Journal, Vol 32, No. 4, 1989. 
  1209.  
  1210.   A novel approach aading reuse to Emerald [Black 86] without inheritance.
  1211.  
  1212. [Reenskaug 91] T. Reenskaug, et al.  OORASS: seamless support for the creation
  1213.  and maintenance of object-oriented systems. Journal of Object-Oriented
  1214.  Programming, 5(6).
  1215.  
  1216.   Presents the Object-Oriented Role Analysis, synthesis, and Structuring
  1217.   OOSE methodology.
  1218.  
  1219. [Reenskaug 95] T. Reenskaug, et al. WORKING WITH OBJECTS: The OOram Software
  1220.  Engineering Method Manning ISBN: 1-884777-10-4, PH ISBN: 0-13-452930-8.
  1221.   Accolades:
  1222.   "...the authors take you on a journey through object techniques filled with
  1223.   examples. You will come away from this book enriched, with a sound
  1224.   understanding of OT-based abstractions for modeling programs."
  1225.                                 Richard Mark Soley, OMG
  1226.   "The first method that deals realistically with reuse, and one of the few
  1227.  that comes close to describing what I do when I design."
  1228.                                 Ralph Johnson, University of Illinois
  1229.  "...the first complete account of role-based methods that have proven to be
  1230.   a step forward in OO design and development."
  1231.  
  1232.  
  1233. [Rout 95] T.T. Rout. Ed. Software Process Assessment: Theory and Practice. Proceedings, 2nd
  1234.   International SPICE Symposium. Australian Software Quality Research Institute, Brisbane,
  1235.   Australia., June 1 - 2, 1995. ISBN 0 86857 676 X. 
  1236.  
  1237.   Excellent coverage of the new SPICE standard: history, present details, goals.
  1238.  
  1239. [Royce 70] W. W. Royce. Managing the Development of Large Software Systems.
  1240.  Proceedings of IEEE WESCON, August 1970.
  1241.  
  1242.  Introduces the Waterfall Process Model.
  1243.  
  1244. [Rumbaugh 91] Rumbaugh James, et al.  Object-Oriented Modeling and Design.
  1245.  Prentice Hall.
  1246.  
  1247.   The often referred to book on OOA/OOD.  Introduces the Object Modeling
  1248.   Technique (OMT) OOA/D notation and methodology.  Has case studies.
  1249.  
  1250. [Sciore 89] Edward Sciore.  Object Specialization. ACM Transactions on
  1251.  Information Systems, Vol. 7, No. 2, April 1989, p 103.
  1252.  
  1253.   A hybrid approach between delegation and classical OO.
  1254.  
  1255. [Selic 94] Bran Selic, Garth Gullekson, and Paul T. Ward. Real-Time
  1256.  Object-Oriented Modeling. Published by John Wiley & Sons. 
  1257.  ISBN 0-471-59917-4
  1258.  
  1259.   OO method addresses complete lifecycle needs of real-time systems. Emphasizes
  1260.   executable models for early validation of requirements, architecture, and
  1261.   design combined with techniques for automatic generation of implementations.
  1262.   Specifically real-time with iterative and incremental development process.
  1263.   Single consistent graphical modeling concepts apply uniformly to OOA/D/I.
  1264.  
  1265. [Shlaer 88] Sally Shlaer and Stephen J. Mellor.  Object-Oriented Systems
  1266.  Analysis: Modeling the World in Data.
  1267.  
  1268.   Credited as the first book proposing an OOA method.
  1269.  
  1270. [Shlaer 92] Sally Shlaer and Stephen J. Mellor.  Object Lifecycles: Modeling
  1271.   the World in States.
  1272.  
  1273.   An addition to [Shlaer 88], provides dynamic modeling with a state-
  1274.   transition driven approach.
  1275.  
  1276. [Strachey 67]  C. Strachey.  Fundamental Concepts in programming languages.
  1277.  Lecture Notes for International Summer School in Computer Programming,
  1278.  Copenhagen, Aug.
  1279.  
  1280.   Contains original, classical definition of polymorphism.
  1281.  
  1282. [Stroustrup 90] Ellis, M.A., Stroustrup. The Annotated C++ Reference Manual.
  1283.  Addison Wesley.
  1284.  
  1285.   The ARM; the original and definitive book on C++.  Serves as the ANSI
  1286.   base document for C++.  Also covers C++ implementation.  It is meant as 
  1287.   a reference (including for compiler writers), not as a tutorial for
  1288.   beginners.  Perhaps a better ref is [Stroustrup 91].
  1289.