subject: Comp.software-eng FAQ (Part 3): readings

text:
Last-Modified: 30 Nov 1997
Archive-name: software-eng/part3

This is the monthly "frequently asked questions" (FAQ) posting on
reading materials for software engineers.  Topics include:
    Textbooks
    Periodicals on Software Engineering
        Professional Journals
        Mixed Research and Practice
        Research Journals
        Other magazines
    Other sources of information
    General reading for software engineers
        General
        Programming in the large
        Programming in the small
        Mathematical Approaches
        Other
    Cost Estimation
    Formal Specification
    Metrics
        Metrics - General
        Metrics for object-oriented systems
    Object-Oriented Analysis and Design
    Programming Style
    Real-Time Systems
    Requirements Analysis
        Requirements Analysis - General
        Collaborative Requirements Analysis
    Software Process
    Software Testing
    User Interfaces
        Human-Computer Interaction -- General
        User Interface Development -- General
        User Interface Design -- Principles and Guidelines
        User Interface Development - Software
        User Interface Evaluation
        Styleguides for Specific Platforms
        Human Factors and Ergonomics
Look for lines starting with "Subject:" (control-G command in rn).

Be warned: the only mechanism we use to compose this list is to gather
information submitted by people around the net, post it regularly, and
incorporate feedback.  All evaluations are the opinions of those who submitted
them; your mileage may vary.  Send comments to [email] (David
Alex Lamb).

------------------------------------------------------------------------
Subject: Textbooks
Date: 23 Aug 1997
Originally collected by: [email] (Hal Render)
The first 8 items are Hal Render's original list in his rough order of prefer-
ence.

1.  Software Engineering: The Production of Quality Software by Shari Pfleeger,
    2nd Edition, Macmillan, 1991, ISBN 0-02-395115-X.
    [email]: Like #2&#3, had the best explanations of what
    I want to cover (different engineering lifecycles, methods, and tools).
2.  Software Engineering: A Practitioner's Approach by Roger Pressman, 4th
    Edition, McGraw-Hill, 1997, ISBN 0-07-052182-4
    [email]: (on 2nd edition): Like #1&#3, had the best
      explanations of what I want to cover (different engineering lifecycles,
      methods, and tools).
    [email] (Robb Swanson): The definitive book on the subject as far
      as I'm concerned.
    [email] (Michelle Johnson): A good text book as well as
      reference.
3.  Software Systems Engineering by Andrew Sage and James D. Palmer.
    [email]: Like #1&#2, had the best explanations of what
      I want to cover (different engineering lifecycles, methods, and tools).
4.  Fundamentals of Software Engineering by Ghezzi, Jayazeri and Mandrioli,
    Prentice-Hall, 1991
    [email]: Like #5, good, and covered the issue of
      specifications and verification better, but at the expense of other
      aspects of the development process.  I may use one of them for a graduate
      course in software engineering.
    [email] (Nancy Leveson): Better than Sommerville, although
      I like much of Sommerville.
5.  Software Engineering with Abstractions by Valdis Berzins and Luqi, Addison
    Wesley, 1991, 624 pages.
    [email]: Like #4, good, and covered the issue
      of specifications and verification better, but at the expense of other
      aspects of the development process.  I may use one of them for a graduate
      course in software engineering.
    [email] (Pablo A. Straub): Both this and #9 have a good emphasis
      on using formal techniques (i.e.,  doing engineering properly), but they
      do not disregard informal methods; chapters are roughly organized around
      the traditional lifecycle.  #5 is longer and can be used in a two-term
      sequence or for graduate students (it's  possible  to use  it in a one-
      term undergrad course by covering only part of the material). One thing I
      like is that management and validation is given in all chapters, so that
      these activities are integrated into the development process.  Emphasizes
      the use of formally specified abstractions.  Uses the authors'
      specification language (Spec) to develop a project in Ada.
6.  Software Engineering by Ian Sommerville, Addison-Wesley, ISBN 0-201-17568-1
    [email]: Our current text, and my basic problem with it
      is the vague way it covers many of the topics.
7.  Software Engineering with Student Project Guidance by Barbara Mynatt
    [email]: Like #8, not bad, but fairly low-level and
      doesn't cover many tools and techniques I consider valuable.
8.  Software Engineering by Roger Jones
    [email]: Like #7, not bad, but fairly low-level and
      doesn't cover many tools and techniques I consider valuable.
9.  Software Engineering: Planning for Change by David Alex Lamb, Prentice-
    Hall, 1988, 298 pages.
    [email] (Pablo A. Straub): Both this and #5 have a good emphasis
      on using formal techniques (i.e.,  doing engineering properly), but they
      do not disregard informal methods; chapters are roughly organized around
      the traditional lifecycle. #9 has the advantage of being shorter, yet
      covering most relevant topics (lifecycle phases, formal specs, v&v,
      configurations, management, etc.).  It is very appropriate for an
      undergrad course.  It emphasizes that maintenance is a given and should
      be taken into account (hence the title).  Several specification
      techniques are covered and used to develop a project in Pascal.
10. A Practical Handbook for Software Development by N.D. Birrell and M.A.
    Ould, Cambridge University Press, 1985/88. ISBN 0-521-34792-0 (Paper
    cover); ISBN 0-521-25462-0 (Hard cover).
    [email] (Eoin Woods):
11. Fundamentals of Computing for Software Engineers by Eric S. Chan & Murat M.
    Tanik, Van Nostrand Reinhold.
    [email] (Mehmet M. Kayaalp MD):
12. Classic and Object-Oriented Software Engineering, 3rd Edition, by Stephen
    R. Schach, Richard D. Irwin, Inc. (ISBN 0-256-18298-1), 1996.  Advertised
    as senior/first year graduate level, emphasizing the object-oriented
    paradigm, metrics, CASE tools, testing, and maintenance.
13. Practical Software Engineering by Stephen R. Schach, Aksen Associates and
    Richard D. Irwin Inc. (ISBN 0-256-11455-2), 1992. Advertised as sophomore
    through senior level, emphasizing teams, maintenance, reuse, CASE tools.

------------------------------------------------------------------------
Subject: Periodicals on Software Engineering
Date:  2 Oct 1996

A. Professional Journals
Meant for working professionals with technical backgrounds.
   1.  IEEE Software
       summary: often presents recent research work, but much more readably
         than typical research journals.
       publisher: IEEE (Institute of Electrical and Electronic Engineers)
       subscriptions: IEEE Service Center, 445 Hoes Lane, P.O. Box 1331,
         Piscataway, NJ 08855-1331, USA
   2.  Software Engineering Notes
       summary: unrefereed newsletter; includes digest of comp.risks
       publisher: ACM (Association for Computing Machinery) SIGSOFT (Special
         Interest Group on Software engineering)
       subscriptions: ACM, 11 West 42d St, New York, NY 10036, USA
   3.  Software Maintenance News
       summary: monthly report on people and technology in maintenance; aimed
         at practitioners
       publisher: Software Maintenance News Inc, B10 Suite 237, 4546 El Camino
         Real, Los Altos, CA 94022, USA
       subscriptions: as above
   4.  Software Testing, Verification and Reliability
       summary: aimed at practitioners; dissemination of new techniques,
         methodologies and standards
       publisher: John Wiley & Sons Ltd, Baffins Lane, Chichester, West Sussex
         PO19 1UD, UK
   5.  The Software Practitioner (TSP)
       summary: started late 1990; meant for real practitioners
       publisher: Computing Trends, 1416 Sare Rd., Bloomington IN  47401  USA;
         voice/fax: 812-337-8047
B. Mixed Research and Practice
   1.  Journal of Software Maintenance: Research and Practice
       summary: refereed; intended for both researchers and practitioners;
         joint US/UK editorial board
       publisher: Wiley (see above)
       subscriptions: Journals Subscription Department, at above address
   2.  Software Engineering Journal (SEJ)
       summary: full spectrum of articles from practical experience to long-
         term research
       publisher: IEE (Institution of Electrical Engineers) and BCS (British
         Computer Society); write to IEE Publication Sales, PO Box 96,
         Stevenage, Herts, SG1 2SD, United Kingdom.
   3.  Software: Practice and Experience
       summary: not always software engineering; good reputation for practice
       publisher: Wiley (see above)
   4.  The Software Quality Journal
       summary: academic research and industrial case studies and experience
       publisher: Chapman & Hall, Journals Promotion Department, North
         America:29 West 35th Street, New York, NY 10001-2291, USA.  Europe:
         2-6 Boundary Row, London SE1 8HN, UK
C. Research Journals
Meant for presenting recent research results.
   1.  Information and Software Technology (IST)
       summary: broad spectrum, much software engineering, software process,
         but also computer science topics.
       publisher: Butterworth-Heineman, Linacre House, Jordan Hill, Oxford, UK
   2.  Transactions on Software Engineering (TSE)
       summary: main software engineering research journal
       publisher: IEEE (see above)
   3.  Transaction on Software Engineering Methodology (TOSEM)
       summary: first issue dated January 1992; not enough track record for an
         opinon yet.
       publisher: Association for Computing Machinery
   4.  Journal of Systems and Software
       summary: meant to be more practitioner-oriented than other research
         journals
       publisher: Elsevier
D. Other magazines
   1.  Software
       summary: "For Managers of Enterprise-Wide Software Resources" primarily
         aimed at Management Information Systems (MIS) world
       publisher: Sentry Publishing Company, Inc, 1900 West Park Drive,
         Westborough, MA 01581, (508) 366-2031
   2.  Testing Techniques Newsletter
       summary: E-mailed on a monthly basis to support the publisher's
         customers and to provide information of general use to the testing
         community.
       publisher: Software Research, Inc.,  625 Third Street,  San Francisco,
         CA 94107-1997; Phone: (415) 957-1441; Toll Free: (800) 942-SOFT; FAX:
         (415) 957-0730; E-MAIL: [email].

------------------------------------------------------------------------
Subject: Other sources of information
Date: 22 Oct 1994

Software Quality Engineering has a publication division called Single Source,
Publications, Books, and Information for Software Practitioners and Managers:

    Software Quality Engineering -- Single Source
    3000-2 Hartley Road
    Jacksonville, FL 32257
    (904) 268-8639
    FAX (904) 268-0733
    TOLL FREE 1-800-423-8378
They do regular reviews of most of the literature relevant to testing, s-eng,
and management. The books which are deemed useful by the reviewers are
purchased for reselling. Their catalog includes most of the literature that
I've come across on Software Testing.  One of the items in the catalog is a
publication which the company puts together itself, The Testing Tools
Reference Guide, a sort of catalog of tools that have passed certain criteria,
(number of unit sold, at least three verifiable references, etc.) They charge
$145.00 for this guide.  This includes two bi-annual updates. I've found the
guide very useful in tracking down vendors which specialize in CASE and
testing tools, although it seems to be heavily biased towards IBM mainframe
hardware and COBOL programming (shudder!).  Each text is described and
summarized I'm sure SQE would be happy to send catalogs free of charge and
most of the prices seem reasonable.  - Glenn Stowe [email]

------------------------------------------------------------------------
Subject: General reading for software engineers
Date: 13 Jul 1996
Originally collected by: [email] (Christopher Lott)
Summary: responses to "what should every software engineering have read?"

A. General
   1.  Read about 100 pages of comp.risks
   2.  Frederick P. Brooks, Jr., The Mythical Man-Month, Addison Wesley, 1978.
       ISBN 0-201-00650-2
   3.  The anecdotal books of Robert L. Glass, from Computing Trends, P.O.Box
       213, State College, PA 16804, including: "Tales of Computing Folk: Hot
       Dogs and Mixed Nuts", "The Universal Elixir and other Computing Projects
       Which Failed", "The Second Coming: More Computing Projects Which
       Failed", "The Power of Peonage", "Computing Catastrophes", "Computing
       Shakeout", "Software Folklore"
   4.  Paul W. Oman & Ted G. Lewis, Milestones in Software Evolution, IEEE
       Computing Society, ISBN 0-8186-9033-X.
   5.  J.A. McDermid (editor), Software Engineer's Reference Book, Butterworth-
       Heinemann Ltd., 1991.  ISBN No: 0 750 61040 9.  Focuses on the
       foundations, and subject matter that is not volatile.  The book is
       divided into three major parts: Theory and Mathematics; Methods,
       Techniques, and Technology; Principles of Applications.  For a beginner,
       the first two parts are indispensible.  It does not provide details of
       current research, but points an interested reader to the right sources.
B. Programming in the large
   1.  Grady Booch, Software Engineering with Ada, second edition,
       Benjamin/Cummings, 1987
   2.  Bertrand Meyer, Object-Oriented Software Construction, Prentice-Hall,
       1988.
   3.  David L. Parnas, On the Criteria to be Used in Decomposing Systems into
       Modules, Communications of the ACM 15,2 (December 1972).
C. Programming in the small
   1.  Jon Louis Bentley, Writing Efficient Programs, Prentice-Hall, 1982.
   2.  Jon Bentley, Programming Pearls, Addison-Wesley, 1986.
   3.  Jon Bentley, More Programming Pearls, Addison-Wesley, 1988.
   4.  O.-J. Dahl, E.W. Dijkstra, C.A.R. Hoare, Structured Programming,
       Academic Press, 1972.
   5.  Brian W. Kernighan, and P.J. Plauger, Software Tools, Addison-Wesley,
       1976.
   6.  Brian W. Kernighan & P.J. Plauger, The Elements of Programming Style,
       Second Edition, McGraw-Hill, 1978. ISBN 0-07-034207-5.
D. Mathematical Approaches
   1.  Edsger W. Dijkstra, A Discipline of Programming, Prentice-Hall, 1976.
   2.  E.W.Dijkstra.  Selected writings on computing: a personal perspective.
       Springer Verlag, 1982.
   3.  David Gries (editor), Programming methodology. A collection of articles
       by members of IFIP Working Group 2.3. Springer Verlag, 1978.
E. Other
   1.  Daniel P. Freedman and Gerald M. Weinberg, Handbook of Walkthoughs,
       Inspections and Technical Reviews, 3rd edition Dorset House Publishing,
       1990, ISBN 0-932633-19-6.  Originally published by Little, Brown &
       Company, 1982: ISBN 0-316-292826.
   2.  Tom Gilb, Principles of Software Engineering Management, Addison-Wesley,
       1988, ISBN 0-201-19246-2
   3.  Glenford J. Myers, The Art of Software Testing, Wiley, 1979.
   4.  Herb Simon, The Sciences of the Artificial, Second Edition, MIT Press,
       1981
   5.  Gerald M. Weinberg, The Psychology of Computer Programming, Van Nostrand
       Reinhold, 1971. ISBN 0-442-29264-3

------------------------------------------------------------------------
Subject: Cost Estimation
Date: 13 Jul 1996

1.  Lawrence Putnam and Ware Myers, "MEASURES FOR EXCELLENCE: Reliable Software
    on Time, Within Budget," Prentice-Hall, 1992, ISBN 0-13-567694-0.
    Suggested in Fall 1995 as the current standard by several correspondents.
    Constrains solutions to those that meet the user's objectives, such as
    cost, schedule, staff available, quality.
2.  Barry W. Boehm, Software Engineering Economics, Prentice-Hall, 1981.  This
    used to be the standard; it introduced the COCOMO model.

------------------------------------------------------------------------
Subject: Formal Specification
Date: 21 Aug 1995

See also the comp.specification.z FAQ.
1.  J.M.Spivey.  "Understanding Z: a specification language and its formal
    semantics".  Cambridge University Press, 1988.
2.  David Lightfoot.  "Formal Specification Using Z".  MacMillan, 1991, ISBN
    0-333-54408-0.  A clear introduction to Z and the discrete mathematics that
    underlies it.
3.  B.Potter, J.Sinclair & D.Till.  "An introduction to formal specification
    and Z".  Prentice Hall International Series in Computer Science, 1991.
4.  D.Bjorner & C.B.Jones.  "Formal Specification & Software Development",
    Prentice-Hall International Series in Computer Science, 1980.
5.  N.Gehani & A.D.McGettrick (eds).  "Software Specification Techniques",
    Addison-Wesley Publishing Company, 1986
6.  I. van Horebeek & J.Lewi.  "Algebraic Specifications in Software
    Engineering", Springer Verlag, 1989.
7.  J.Bergstra, P.Klint & J.Heering.  "Algebraic Specification", ACM Frontier
    Press Series. The ACM Press in co-operation with Addison-Wesley, 1989.
8.  J.Wing.  "A specifiers introduction to formal methods", IEEE Computer
    23(9):8-24, 1990.
9.  Prehn & Soetenel (eds).  "Formal Software Development Methods, VDM'91",
    LNCS 551 and 552, Springer-Verlag.

------------------------------------------------------------------------
Subject: Metrics
Date: 21 Aug 1995

A. Metrics - General

Thanks especially to Horst Zuse, who sent his extensive bibliography on
metrics.  He has an extensive database with over 500 entries on metrics;
contact [email].
   1.  David N. Card and Robert L. Glass.  Measuring Software Design Quality
       Prentice Hall, Engewood Cliffs, New Jersey, 1990
   2.  S.D. Conte, H.E. Dunsmore, V.Y. Shen.  Software Engineering Metrics and
       Models.  Benjamin/Cummings Publishing Company, Menlo Park, 1984 ISBN:
       0-8053-2162-4
   3.  Tom DeMarco.  Controlling Software Projects: Management, Measurement and
       Estimation.  Englewood Cliffs, N.J.: Prentice Hall, 1982
   4.  T.Denvir, R.Herman and R.Whitty (Eds.).  Proceedings of the
       International BCS-FACS Workshop: Formal Aspects of Measurement, May 5,
       1991, South Bank Polytechnic, London, UK, Series edited by Professor
       C.J. van Rijsbergen, ISBN 3-540-19788-5.  Springer Publisher, 1992, 259
       pages.
   5.  Reiner Dumke.  Softwareentwicklung nach Ma`s - Sch`atzen - Messen -
       Bewerten, Vieweg Verlag, 1992.
   6.  Lem Ejiogu.  Software Engineering with Formal Metrics.  QED Information
       Sciences, 1991
   7.  N.E. Fenton, (Editor).  Software Metrics: A Rigorous Approach, 1991
       United Kingdom: Chapman & Hall, 2-6 Boundary Row, London SE1 8HN, ISBN
       0-412-40440-0.  United States: Van Nostrand Reinhold, 115 5th Avenue,
       New York NY 10003, ISBN 0-442-31355-1.
   8.  Robert B. Grady and Deborah L. Caswell.  Software Metrics: Establishing
       a Company-Wide Program, Prentice-Hall, 1987, ISBN 0-13-821844-7
   9.  Robert B. Grady.  Practical Software Metrics for Project Management and
       Process Improvement.  Prentice Hall 1992 ISBN 0-13-720384-5
   10. M.H. Halstead.  Elements of Software Science.  New York, Elsevier North-
       Holland, 1977
   11. S. Henry, D. Kafura, "Software Structure Metrics Based on Information
       Flow", IEEE Transactions on Software Engineering, Vol.SE-7, No.5,
       September 1981.
   12. IEEE.  Standard Dictionary of Measures to Produce Reliable Software.
       The Institute of Electrical and Electronics Engineers, Inc.  345 East
       47th Street, New York.  IEEE Standards Board, 1989
   13. IEEE.  Guide for the Use of Standard Dictionary of Measures to Produce
       Reliable Software.  The Institute of Electrical and Electronics
       Engineers, Inc 345 East 47th Street, New York.  IEEE Standard Board,
       Corrected Edition, October 23, 1989
   14. T.J. McCabe, A Complexity Measure, IEEE Transactions on Software
       Engineering, VOL. SE-2, NO. 4, Dec. 1976.
   15. Alan Perlis, Frederick Sayward, Mary Shaw.  Software Metrics: An
       Analysis and Evaluation.  The MIT Press, 1981
   16. V.Y. Shen, S.D. Conte, H.E. Dunsmore, Software Science Revisited: A
       Critical Analysis of the Theory and Its Empirical Support, IEEE
       Transactions on  Software Engineering, Vol. SE-9, No. 2, March 1983.
       Abstract: a critical evaluation of Halstead's software science metric.
   17. Martin Sheppard, Software Engineering Metrics, McGraw-Hill Book Company
       (UK) Limited, Shoppenhangers Road, Maidenhead, Berkshire, SL6 2QL.  ISBN
       0-07-707410-6 (UK).  Contains 24 selected papers; 1992.  Tel: +44 (0)698
       23431/2 Fax: +44 (0)698 770224
   18. Horst Zuse, Software Complexity: Measures and Methods, de Gruyer (200
       Saw Mill River Road, Hawthorne, NY 10532 - 914/747-0110) 1991
B. Metrics for object-oriented systems
   1.  Morris Kenneth L.  Metrics for Object-Oriented Software Development
       Environments (master's thesis). 1989, MIT.
   2.  Rocacher, Daniel: Metrics Definitions for Smalltalk.  Project ESPRIT
       1257, MUSE WP9A, 1988.
   3.  Rocacher, Daniel: Smalltalk Measure Analysis Manual.  Project ESPRIT
       1257, MUSE WP9A, 1989.
   4.  Lake, Al: A Software Complexity Metric for C++.  Annual Oregon Workshop
       on Software Metrics, March 22-24, 1992, Silver Falls, Oregon, USA.
   5.  Bieman, J.M.: Deriving Measures of Software Reuse in Object Oriented
       Systems.  Technical Report #CS91-112, July 1991, Colorado State
       Universty, Fort Collins/ Colorado, USA.

------------------------------------------------------------------------
Subject: Object-Oriented Analysis and Design
Date: 26 Mar 1993
Originally collected by: [email] (24122-kilov)

1.  Bertrand Meyer.  Object-oriented software construction. Prentice-Hall, 1988
    For the somewhat advanced - perhaps, with some programming maturity.
2.  B. Henderson-Sellers.  A book of object-oriented knowledge. Prentice-Hall,
    1992.  This has quite a few viewgraphs in it!
3.  Grady Booch.  Object-oriented design with applications.  Addison-Wesley,
    1991.
4.  Ivar Jacobson Object-Oriented Software Engineering.  Addison-Wesley, 1992.
    This book gives a complete look at Object-orientation from requirement-
    analysis to last phase in design and implementation.

------------------------------------------------------------------------
Subject: Programming Style
Date: 21 Aug 1995
Originally collected by: [email] (Paul W. Oman)

1.  N. Anand (1988) "Clarify Function!"  ACM SigPLAN Notices, 23(6), 69-79.
    Advocates the use of mnemonic names for entities in a system.  Rules are
    presented for naming procedures, variable, pointers, etc.
2.  S. Henry (1988) "A Technique for Hiding Proprietary Details While Providing
    Sufficient Information for Researchers; or, do you Recognize this Well-
    known Algorithm?," Journal of Systems and Software, 8(1), 3-11.  Suggests
    encryption of variable names as part of a technique for encoding
    algorithms, while still providing sufficient information to researchers.
3.  R. Brooks (1980) "Studying Programmer Behavior Experimentally: The Problems
    of Proper Methodology," Communications of the ACM, 23(4), 207-213.
    Discusses issues and tradeoffs in proper control of experiments involving
    computer programmers.
4.  E. Thomas & P. Oman "A Bibliography of Programming Style Literature," ACM
    SIGPLAN Notices, Vol. 25(2), Feb. 1990, pp.  7-16.

------------------------------------------------------------------------
Subject: Real-Time Systems
Date:  3 May 1995
Originally collected by: [email] (John Willmore)

1.  Derek J. Hatley and Imtiaz A. Pirbhai.  Strategies for Real-Time System
    Specification Dorset House, 1987
2.  Paul Ward and Stephen Mellor.  Structured Development for Real-Time Systems
    Yourdon Press, 1985
3.  Bran Selic, Garth Gullekson and Paul Ward.  Real-Time Object-Oriented
    Modeling, Wiley, 1994 (1-800-CALL-WILEY), ISBN 0471-59917-4.  Supported by
    the ObjecTime CASE tool.

------------------------------------------------------------------------
Subject: Requirements Analysis
Date: 21 Aug 1995

A. Requirements Analysis - General
   1.  Special issue on requirements gathering, Communications of the ACM,
       Volume 38, #2, May 1995.
   2.  Al Davis, Software Requirements: Objects, Functions, & States.
       Prentice-Hall, 1993.  A revision of #2 (below).
   3.  Al Davis, Software Requirements: Analysis and specification.
       Prentice/Hall, 1990.  Has some treatment of all of the popular
       requirements analysis and specification methods including OOA,
       Structured Analysis, SREM, FSM, but not the "trendy" stuff (Information
       Engineering, JAD).
   4.  Donald C. Gause and Gerald M. Weinberg, Exploring Requirements: Quality
       before design.  Dorset House Publishing, 353 West 12th Street, New York,
       NY 10014
   5.  Richard H. Thayer and Merlin Dorfman (editors), Software Requirements
       Engineering, IEEE Computer Society Press, Los Alamitos, CA, 1990.
B. Collaborative Requirements Analysis
(thanks to Annie I. Anton, [email]).
   1.  Palmer, J.D., Aiken, P. and Fields, N.A.  "A Computer Supported
       Cooperative Work Environment for Requirements Engineering and Analysis",
       Proceedings of the Requirements Engineering and Analysis Workshop,
       Software Engineering Institute, March 12-14, 1991.
   2.  Palmer, J.D. and Aiken, P.H.  "Utilizing Interactive Multimedia to
       Support Knowledge-based Development of Software Requirements",
       Proceedings of the 5th Annual RADC Knowledge-Based Software Assistant
       Conference, Syracuse, NY, September 24-28, 1990.
   3.  Marca, D.  "Specifying Groupware Requirements From Direct Experience",
       Proc 6th International Workshop On Software Specification And Design,
       October 1991
   4.  Marca, D.  "Augmenting SADT To Develop Computer-Supported Cooperative
       Work", Proceedings of the International Conference on Software
       Engineering; May 1991
   5.  Marca, D.  "Experiences in Building Meeting Support Software",
       Proceedings of the 1st Groupware Technology Workshop; August 1989
   6.  Marca, D.  "Specifying Coordinators: Guidelines for Groupware
       Developers", Proceedings of the 5th International Workshop on Software
       Specification and Design; May 1989

------------------------------------------------------------------------
Subject: Software Process
Date: 30 Oct 1996
Originally collected by: [email] (Christopher Lott)

1.  Watts S. Humphrey.  Managing the Software Process.  Addison-Wesley
    Publishing Co., Reading, Massachusetts, 1989; Chapters 13--15, 18.
2.  Watts S. Humphrey.  A Discipline for Software Engineering.  Addison Wesley,
    SEI Series in Software Engineering, 1995, ISBN 0-201-54610-8.  Presents a
    method for applying project management techniques to personal methods of
    software engineering.
3.  Bill Curtis, Marc I. Kellner and Jim Over.  "Process Modeling,"
    Communications of the ACM, Sept 92, Vol 35, No 9, 75-90.
4.  Victor R. Basili.  "Iterative Enhancement:  A Practical Technique for
    Software Development".  IEEE Transactions on Software Engineering. v.~SE-1,
    n.~4, December 1975, pp.~390--396.
5.  Victor R. Basili and H. Dieter Rombach.  "The TAME Project:  Towards
    Improvement-Oriented Software Environments", IEEE Transactions on Software
    Engineering, v. SE-14, n. 6, June 1988, pp.~758--773.
6.  Victor R. Basili, "Software Development:  A Paradigm for the Future",
    Proceedings of the Thirteenth Annual International Computer Science and
    Applications Conference, Orlando, Florida, September 1989, pp.~471--485.
7.  Barry W. Boehm.  "A Spiral Model of Software Development and Enhancement",
    IEEE Computer, v.~21, n.~5, May 1988, pp.~61--72.
8.  Frank DeRemer and Hans H. Kron.  "Programming-in-the-Large Versus
    Programming-in-the-Small", IEEE Transactions on Software Engineering,
    v.~SE-2, n.~2, June 1976, pp.~80--86.
9.  M. M. Lehman.  "Process Models, Process Programs, Programming Support",
    Proceedings of the Ninth International Conference on Software Engineering,
    Monterey, CA, March 1987, pp.~14--16.
10. Leon Osterweil.  "Software Processes are Software Too", Proceedings of the
    Ninth International Conference on Software Engineering, Monterey, CA, March
    1987, pp.~2--13.
11. Winston W. Royce.  "Managing the Development of Large Software Systems:
    Concepts and Techniques", 1970 WESCON Technical Papers, v.~14, Western
    Electronic Show and Convention, Los Angeles, Aug. 25-28, 1970; Los Angeles:
    WESCON, 1970, pp.~A/1-1 -- A/1-9; Reprinted in Proceedings of the Ninth
    International Conference on Software Engineering, Pittsburgh, PA, USA, ACM
    Press, 1989, pp.~328--338.
12. Peter H. Feiler and Watts S. Humphrey.  "Software Process Development and
    Enactment:  Concepts and Definitions", Software Engineering Institute,
    Carnegie Mellon University, Pittsburgh, PA, 1991.
13. Watts S. Humphrey.  "Session Summary:  Review of the State-of-the-Art",
    Proceedings of the Fifth International Software Process Workshop,
    Kennebunkport, Maine, USA, 10-13 October 1989, IEEE Computer Society Press,
    Los Alamitos, CA, 1990.
14. Gail E. Kaiser.  "Rule-Based Modeling of the Software Development Process",
    Proceedings of the 4th International Software Process Workshop,
    Moretonhampstead, Devon, UK, 11-13 May 1988, ACM Press, Baltimore, MD,
    1989, pp.~84--86.
15. Takuya Katayama.  "A Hierarchical and Functional Software Process
    Description and its Enaction", Proceedings of the Ninth International
    Conference on Software Engineering, Pittsburgh, PA, USA, ACM Press, 1989,
    pp.~343--352.
16. Marc I. Kellner and H. Dieter Rombach.  "Comparisons of Software Process
    Descriptions", Proceedings of the Sixth International Software Process
    Workshop, Hakodate, Hokkaido, Japan, 29-31 October 1990, IEEE Computer
    Society Press, 1991.
17. Jayashree Ramanathan and Soumitra Sarkar.  "Providing Customized Assistance
    for Software Lifecycle Approaches", IEEE Transactions on Software
    Engineering, v.~14, n.~6, June 1988, pp.~749--757.
18. H. Dieter Rombach.  "An Experimental Process Modeling Language: Lessons
    Learned from Modeling a Maintenance Environment", Proceedings of the
    Conference on Software Maintenance - 1989, IEEE, October 16-19, 1989.
19. H. Dieter Rombach.  "MVP--L:  A Language for Process Modeling
    In--the--Large", University of Maryland Institute for Advanced Computer
    Studies Technical Report UMIACS--TR--91--96, CS--TR--2709, Department of
    Computer Science, University of Maryland, College Park, MD, 20742.
20. Stanley M. Sutton, Jr.  "APPL/A:  A Prototpye Language for Software Process
    Programming", Department of Computer Science Report CU-CS-448-89,
    University of Colorado, Boulder, CO, 1989.

------------------------------------------------------------------------
Subject: Software Testing
Date: 27 Oct 1994

The original request that prompted the posting of this information asked for
recent work, not buried in a Software Engineering tome.
1.  Boris Beizer, Software Testing Techniques, Van Nostrand Reinhold, 1990 (2nd
    edition) ISBN 0-442-20672-0.  503 pages, $43.  Has 37-page annotated
    bibliography of references.
2.  Cheatham and Mellinger, Testing Object Oriented Software Systems,
    Proceedings of the 1990 ACM SCS Conference
3.  William C. Hetzel, The Complete Guide to Software Testing, Second edition,
    QED Information Services INC, 1988.  ISBN 0-89435-242-3
4.  Testing Techniques Newsletter (see periodicals)

------------------------------------------------------------------------
Subject: User Interfaces
Date: 21 Aug 1995
Originally collected by: [email] (Gary Perlman)
This collection of recommended books for user interface developers is based on
searches of The HCI Bibliography, a free-access online bibliography on Human-
Computer Interaction.  The bibliography contains the tables of contents of
almost all of the books listed.  See the files abooks.bib (authored books),
ebooks.bib (edited books), and reports.bib (technical reports).  About 10,000
bibliographic entries on books, conference proceedings, and journal articles
can be accessed via anonymous FTP to site archive.cis.ohio-state.edu as
/pub/hcibib, or email requests can be sent to:
     [email]

A. Human-Computer Interaction -- General
   1.  Ronald M. Baecker & William A. S. Buxton (Editors).  Readings in Human-
       Computer Interaction: A Multidisciplinary Approach.  Los Altos, CA:
       Morgan-Kaufmann Publishers, 1987.  ISBN 0-934613-24-9.  This and the
       second edition are excellent collection of readings, integrated with
       clear and thought-provoking prose by the editors.  This excellent
       introduction to the field is also a great value, making it the most used
       university text on HCI.
   2.  Ronald M. Baecker, Jonathan Grudin, William A. S. Buxton & Saul
       Greenberg (Editors).  Readings in Human-Computer Interaction: Toward the
       Year 2000 (Second Edition).  Los Altos, CA: Morgan-Kaufmann Publishers,
       1994.  ISBN 1-55860-246-1.  This new version is very different from the
       first and should be considered a different snapshot of the field.  An
       excellent introduction to the field.
   3.  Stuart K. Card, Thomas P. Moran & Allen Newell.  The Psychology of
       Human-Computer Interaction.  Hillsdale, NJ: Lawrence Erlbaum Associates,
       1983.  This classic defines the early theoretical basis for HCI.  It is
       primarily for researchers.
   4.  Alan Dix, Janet Finlay, Gregory Abowd & Russell Beale.  Human-Computer
       Interaction.  Hillsdale, NJ: Prentice Hall, 1993.  ISBN 0-13-458266-7
       (hardback); 0-13-437211-5 (paperback) only outside USA.  This is a broad
       introduction to HCI, including a clear statement of a user interface
       development process.  It should be useful to researchers in training and
       practitioners.
   5.  Martin Helander (Editor).  Handbook of Human-Computer Interaction.
       Amsterdam: North-Holland, 1988.  ISBN 0-444-88673-7 (paper).  This
       collection of survey papers contains excellent reference material for
       both researchers and practitioners.  The softcover edition is reasonably
       affordable.
   6.  Jenny Preece, Yvonne Rogers, Helen Sharp, David Benyon, Simon Holland &
       Tom Carey.  Human-Computer Interaction.  Wokingham, UK: Addison Wesley,
       1994.  ISBN 0-201-62769-8.  This is the latest general HCI textbook.  It
       is the first one to contain all the pedagogical features (examples,
       exercises, etc.) to make it good for undergraduate and graduate level
       use.
B. User Interface Development -- General
   1.  Deborah Hix & H. Rex Hartson.  Developing User Interfaces: Ensuring
       Usability Through Product and Process.  New York, New York: John Wiley &
       Sons, Inc., 1993.  ISBN 0-471-57813-4.  This book generated a lot of
       positive reviews when it came out.
   2.  Ben Shneiderman.  Designing the User Interface: Strategies for Effective
       Human-Computer Interaction (Second Edition).  Reading, MA: Addison-
       Wesley Publishing Co., 1992.  ISBN 0-201-57286-9.  This is the second
       edition of a very popular textbook.  Although it is a survey of user
       interface development, it can also be used as a guide for practitioners.
C. User Interface Design -- Principles and Guidelines
   1.  C. Marlin "Lin" Brown.  Human-Computer Interface Design Guidelines.
       Norwood, NJ: Ablex Publishing Corp., 1988.  ISBN 0-89391-332-4.  An good
       source of guidelines for graphical interfaces.
   2.  James D. Foley, Andries van Dam, Steven K. Feiner & John F. Hughes.
       Computer Graphics: Principles and Practice (2nd Edition).  Reading, MA:
       Addison-Wesley Publishing Co., 1990.  ISBN 0-201-12110-7.  The second
       edition of this classic contains a few chapters on input and output
       devices and user interface architecture.
   3.  Brenda Laurel (Editor).  The Art of Human-Computer Interface Design.
       Reading, MA: Addison-Wesley Publishing Co., 1990.  This is a popular
       collection of inspiring readings on design.
   4.  Clayton Lewis & John Rieman.  Task-Centered User Interface Design: A
       Practical Introduction.  Boulder, Colorado: University of Colorado,
       Boulder, 1993.  ftp ftp.cs.colorado.edu/pub/cs/distribs/clewis/HCI-
       Design-Book This is the first shareware book on UI design.
   5.  Aaron Marcus.  Graphic Design for Electronic Documents and User
       Interfaces.  Reading, MA: Addison-Wesley Publishing Co. (ACM Press),
       1992.  ISBN 0-201-54363-9; ACM Order number 703900.  This book contains
       many examples and includes a comparative study of graphical user
       interfaces on different platforms.
   6.  Deborah J. Mayhew.  Principles and Guidelines in Software User Interface
       Design.  Englewood Cliffs, NJ: Prentice Hall, 1992.  ISBN 0-13-721929-6.
       This is an excellent practical guide for effective design.
   7.  Donald A. Norman.  The Psychology of Everyday Things.  New York: Basic
       Books, 1988.  ISBN 0-465-06709-3.  Also published as The Design of
       Everyday Things, 1990, Doubleday ISBN 0-385-26774-6 (paperback).  This
       is a very popular book on good (and bad) design of the devices with
       which we interact on a daily basis, and as such it provides insights and
       inspiration about how to design usable software.
   8.  Donald A. Norman & Stephen W. Draper (Editors) User Centered System
       Design: New Perspectives on Human-Computer Interaction.  Hillsdale, NJ:
       Lawrence Erlbaum Associates, 1986.  ISBN 0-89859-872-9 (paper).  This is
       an early set of readings that defined the idea of designing systems for
       users first.
   9.  Sidney L. Smith & Jane N. Mosier.  Guidelines for Designing User
       Interface Software.  ESD-TR-86-278.  Bedford, MA 01730: The MITRE
       Corporation, 1986.  ftp archive.cis.ohio-state.edu/pub/hci/Guidelines
       This set of guidelines is widely used in military systems, but is based
       on mid-80s technology with little on graphical user interfaces.
   10. Bruce Tognazzini.  Tog on Interface.  Reading, MA: Addison-Wesley, 1992.
       ISBN 0-201-60842-1.  A collection of inspiring columns by the user
       interface "evangelist" of the Apple Macintosh.
   11. U.S. Department of Defense.  Military Standard: Human Engineering Design
       Criteria for Military Systems, Equipment and Facilities.  MIL-STD-1472D
       Washington, DC: U.S. Government Printing Office, March 14, 1989.
       Section 5.15 of this standard is largely drawn from the MITRE
       guidelines.  Macintosh HyperCard stack available via anonymous FTP to
       site archive.cis.ohio-state.edu as /pub/hci/1472/.
D. User Interface Development - Software
   1.  Dan R. Olsen, Jr.  User Interface Management Systems: Models and
       Algorithms.  Mountain View, CA: Morgan Kaufmann, 1992.  ISBN
       1-55860-220-8.  Len Bass & Joelle Coutaz.  Developing Software for the
       User Interface.  Reading, MA: Addison-Wesley, 1991.  ISBN 0-201-51056-4.
E. User Interface Evaluation
   1.  Joseph S. Dumas & Janice C. Redish.  A Practical Guide to Usability
       Testing.  Norwood, NJ: Ablex Publishing, 1993.  ISBN 0-89391-991-8.
       This step-by-step guide provides checklists and offers insights for
       every stage of usability testing.
   2.  Jakob Nielsen.  Usability Engineering.  Boston, MA: Academic Press,
       1993.  ISBN 0-12-518405-0.  This book immediately sold out when it was
       first published.  It is an practical handbook for people who want to
       evaluate systems.
   3.  Jakob Nielsen & Robert L. Mack (Eds.) Usability Inspection Methods.  New
       York: John Wiley & Sons, 1994.  ISBN 0-471-01877-5.  This book contains
       chapters contributed by experts on usability inspections methods such as
       heuristic evaluation, cognitive walkthroughs, and others.
   4.  Randolph G. Bias & Deborah J. Mayhew (Eds.) Cost-Justifying Usability.
       Boston: Academic Press, 1994.  ISBN 0-12-095810-4.  This edited
       collection contains 14 chapters devoted to the demonstration of the
       importance of usability evaluation to the success of software
       development.
   5.  Michael E. Wiklund (Ed.) Usability in Practice: How Companies Develop
       User-Friendly Products.  Boston: Academic Press, 1994.  ISBN
       0-12-751250-0.  This collection of contributed chapters describes
       usability practices of 17 companies: American Airlines, Ameritech,
       Apple, Bellcore, Borland, Compaq, Digital, Dun & Bradstreet, Kodak, GE
       Information Services, GTE Labs, H-P, Lotus, Microsoft, Silicon Graphics,
       Thompson Consumer Electronics, and Ziff Desktop Information.  It amounts
       to the broadest usability lab tour ever.
F. Styleguides for Specific Platforms
The following style guides define (or redefine) a standard to which all
applications on that platform should conform.  Thanks to Samu Mielonen
([email]) Univ. of Tampere, Finland, for compiling an earlier version of
the styleguide list.
   1.  Apple Computer, Inc.  Macintosh Human Interface Guidelines.  Reading,
       MA: Addison-Wesley Publishing Co., 1992.  ISBN 0-201-62216-5.  There is
       an interactive animated companion CD-ROM to these Mac guidelines called
       "Making it Macintosh", Addison-Wesley, 1993.  ISBN 0-201-62626-8.
   2.  Commodore-Amiga, Inc.  Amiga User Interface Style Guide.  Reading,
       Mass.: Addison-Wesley, 1991.  ISBN 0-201-57757-7.
   3.  GO Corporation.  PenPoint User Interface Design Reference.  Reading, MA:
       Addison-Wesley, 1992.  ISBN 0-201-60858-8.
   4.  Hewlett-Packard, IBM, Sunsoft Inc. & USL.  Common Desktop Environment:
       Functional Specification (Preliminary Draft).  X/Open Company Ltd.,
       1993.  ISBN 1-85912-001-6.  ftp XOPEN.CO.UK/pub/cdespec1/cde1_ps.Z
   5.  IBM.  Object-Oriented Interface Design: IBM Common User Access
       Guidelines.  Carmel, Indiana: Que, 1992.  ISBN 1-56529-170-0.
   6.  James Martin, Kathleen Kavanagh Chapman & Joe Leben.  Systems
       Application Architecture: Common User Access.  Englewood Cliffs, NJ:
       Prentice-Hall, 1991.  ISBN 0-13-785023-9.
   7.  Microsoft Corporation.  The GUI Guide: International Terminology for the
       Windows Interface.  Redmond, WA: Microsoft Press, 1993.  ISBN
       1-55615-538-7.
   8.  Microsoft Corporation.  The Windows Interface: An Application Design
       Guide.  Redmond, WA: Microsoft Press, 1992.  ISBN 1-55615-384-8.
   9.  Open Software Foundation.  OSF/Motif Style Guide.  Englewood Cliffs, NJ:
       Prentice Hall, 1993.  ISBN 0-13-643123-2.
   10. NeXT Computer, Inc.  NeXTSTEP User Interface Guidelines (Release 3).
       Reading, Mass.: Addison-Wesley Publishing, 1992.  ISBN 0-201-63250-0.
   11. Sun Microsystems, Inc.  OPEN LOOK Graphical User Interface Application
       Style Guidelines.  Reading, Mass.: Addison-Wesley, 1989.  ISBN
       0-201-52364-7.
   12. Sun Microsystems, Inc.  OPEN LOOK Graphical User Interface Functional
       Specification.  Reading, Mass.: Addison-Wesley, 1989.  ISBN
       0-201-52365-5.
G. Human Factors and Ergonomics
   1.  Barry H. Kantowitz & Robert D. Sorkin.  Human Factors: Understanding
       People-System Relationships.  New York, NY: John Wiley & Sons, 1983.
       ISBN 0-471-09594-X.
   2.  Kenneth R. Boff & Janet E. Lincoln (Editors).  Engineering Data
       Compendium: Human Perception and Performance.  Wright-Patterson Air
       Force Base, Ohio: Harry G. Armstrong Aerospace Medical Research
       Laboratory, 1988.
   3.  Ernest J. McCormick & M. S. Sanders.  Human Factors in Engineering and
       Design.  New York, NY: McGraw-Hill Book Company, 1987.  Perlman expects
       soon to review the new edition (7th?) dated 1993.
   4.  David Meister.  Human Factors Evaluation and Testing.  Amsterdam:
       Elsevier, 1986.
   5.  Richard Rubinstein & Harry Hersh.  The Human Factor: Designing Computer
       Systems for People.  Maynard, MA: Digital Press, 1984.  ISBN
       0-932376-44-4.
   6.  Gavriel Salvendy (Editor).  Handbook of Human Factors.  New York: John
       Wiley & Sons, 1987.  ISBN 0-471-88015-9.