CSE584 (Winter 2001): Reading assignments


  • Here is a list of the papers are found in your course pack
  • Read by 9 January 2001
    • General issues in software engineering [note: these are not technical papers, in any strong sense]
      • W.W. Gibbs.  Software's Chronic Crisis.  Scientific American (January 1994).
      • F.P. Brooks, Jr.  The Mythical Man-Month.  Addison-Wesley (1995).  This is not required, but I really recommend that you take an evening and read it anyway.
    • Requirements and specifications
      • M. Spivey.  The Z Notation: A Reference Manual.  Prentice-Hall (out-of-print).  You can retrieve a gzipped-postscript file from http://spivey.oriel.ox.ac.uk/~mike/zrm/.  (If you have trouble getting it or printing it, let me know.  OK, some people had problems: here's PDF.) It's 168 pages, but you are only required to read the first chapter in detail and to skim the second chapter.  You may need to look at more of it later on for an assignment, but you don't need to print it out yet.
      • Richard J. Anderson, Paul Beame, Steve Burns, William Chan, Francesmary Modugno, David Notkin and Jon D. Reese. Model Checking Large Software Specifications.  In SIGSOFT'96: Proceedings of the Fourth ACM SIGSOFT Symposium on the Foundation of Software Engineering, pages 156-166, October 1996, San Francisco, USA. PDF
  • Read by 23 January 2001 (all from your course pack)
    • D.L. Parnas (1972). On the criteria to be used in decomposing systems into modules. Communications of the ACM, 15 (12), 1053-1058.

    • D.L. Parnas, et al. (1976). Design and specification of the minimal subset of an operating system family. IEEE Transactions on Software Engineering, 2 (4), 301-307.

    • D.L. Parnas (1979). Designing software for ease of extension and contraction. IEEE Transactions on Software Engineering, 5 (2), 128-138.

    • D.L. Parnas & P. Clements (1986). A rational design process: How and why to fake it. IEEE Transactions on Software Engineering, 12 (2), 251-257.

  • Read by 30 January 2001 (all from your course pack)

    • G. Kiczales (1996). Beyond the black box: Open implementation. IEEE Software, 13 (1), 8, 10-11.

    • E. Gamma, et al. (1993). Design patterns: Abstraction and reuse of object-oriented design. Proceedings of ECOOP '93: 7th European Conference Proceedings, (707), 406-431.

    • K. Sullivan & D. Notkin (1992). Reconciling environment integration and software evolution. ACM Transactions on Software Engineering and Methodology, 1 (3), 229-268.

    • M. VanHilst & D. Notkin (1996). Decoupling change from design. ACM SIGSOFT Symposium on the Foundations of Software Engineering, 21 (6), 58-69.  

  • Read by 13 February 2001

    • T. Ball & S. Eick (1996). Software visualization in the large. Computer, 29 (4), 33-43.

    • G. Murphy & D. Notkin (1997). Reengineering with reflexion models: A case study. Computer, 30 (8), 29-36.

    • Either of the Rigi papers yellow-highlighted on this web page (which contains links to the papers themselves)  

  • Read by 27 February 2001

    • T. Ball (1999). The concept of dynamic analysis. Software Engineering Notes, 24 (6),  216-234.

    • R. O'Callahan and D. Jackson. Lackwit: A program understanding tool based on type inference. Proceedings of the 1997 International Conference on Software Engineering, Boston, USA, 1997 (ICSE'97).

    • M.D. Ernst, J. Cockrell, W.G. Griswold, D. Notkin. Dynamically Discovering Likely Program Invariants to Support Program Evolution. IEEE Transactions in Software Engineering, v27#2, Feb 2001, pp 1-25.  Found at the top of http://sdg.lcs.mit.edu/~mernst/pubs/invariants-tse-abstract.html.

    • D. Evans.  Static Detection of Dynamic Memory Errors.  In SIGPLAN Conference on Programming Language Design and Implementation (PLDI'96), May 1996.  Found at http://www.cs.virginia.edu/~evans/pldi96-abstract.html

    • S. Horwitz and T. Reps.  The Use of Program Dependence Graphs in Software Engineering.  Proceedings of the 14th international Conference on Software engineering (May 1992).  Found here.