Reading Resource List

Only a small proportion of these are required reading; see schedule for details.

Classics

Modularity
  • [Par72]    David Lorge Parnas. On the criteria to be used in decomposing systems into modules. Communications of the ACM, Vol. 15, No. 12, December 1972.
  • [Par79]    David Lorge Parnas. Designing software for ease of extension and contraction. IEEE Transactions on Software Engineering, Vol. SE-5, March 1979.
  • Design Analysis
  • [GH80]    John Guttag and J.J. Horning. Formal specification as a design tool. Proc. Conference on Principles of Programming Languages, Las Vegas, Nevada, January 1980, pp. 251-261.
  • Relational Modelling
  • [Cod70]    E.F. Codd. A relational model of data for large shared data banks. Communications of the ACM, Vol. 13. No. 6, June 1970. pp. 377-387.
  • [Che76]    Peter Pin-Shan Chen. The entity-relationship model - toward a unified view of data. ACM Transactions on Database Systems, Vol. 1, No. 1, March 1976.
  • Data Abstraction
  • [Hoa72]    C.A.R. Hoare. Proof of correctness of data representations, Acta Informatica, 1(4), pp. 271-281, 1972.
  • [Lis74]    Barbara Liskov. Programming with abstract data types. Proc. ACM Conf. on Very High Level Languages. SIGPLAN Notices, Vol. 9, April 1974, pp. 50-59.
  • [LZ75]    Barbara Liskov and Stephen Zilles. Specification Techniques for Data Abstractions. IEEE Transactions on Software Engineering, Vol. SE-1, No. 1, March 1975.
  • [Gut77]    John Guttag. Abstract data types and the development of data structures. Communications of the ACM, Vol. 20, No. 6, June 1977.
  • Tutorials

    Entity Life Histories
  • [Cam88]    John R. Cameron. The modelling phase of JSD. Information and Software Technology. Vol. 30, No. 6. July/August 1988. pp. 373-383.
  • [C+94]     Derek Coleman, Partick Arnold, Stephanie Bodoff, Chris Dollin, Helena Gilchrist, Fiona Hayes and Paul Jeremaes. Object-Oriented Development: The Fusion Method. Chapter 2: Analysis Models and Notations, pp. 12-35. Prentice Hall, 1994.
  • Object Models
  • [DW98]    Desmond D'Souza and Alan Cameron Wills. Catalysis: Objects, Frameworks and Components in UML. Addison Wesley, 1998. Chapter 3 and 4.
  • Declarative specification
  • [Spi92]    J. Michael Spivey. The Z Notation, A Reference Manual. Prentice Hall, 1992. Chapter 4: The Mathematical Toolkit.
  • [GH93]    John V. Guttag and James J. Horning, with S.J. Garland, K.D. Jones, A. Modet and J.M. Wing. Larch: Languages and Tools for Formal Specification. Springer-Verlag, 1993. Chapter 3: An introduction to Larch. pp. 14-34.
  • [Hay93]    Ian Hayes. Specification Case Studies. Chapters 1- 3. Prentice Hall, 1993.
  • [Win96]    Jeannette M. Wing. Hints to Specifiers. in Teaching and Learning Formal Methods, Dean and Hinchey, editors, Academic Press, 1996, Chapter 5, pp. 57-77. Also available as Technical Report CMU-CS-95-118R, School of Computer Science, Carnegie Mellon University, May 1995.
  • [Jac97]    Jonathan Jacky. The Way of Z. Cambridge University Press, 1997. Chapters 7, 12 and 17.
  • Design Patterns, Software Architecture & Problem Frames
  • [G+95]    Erich Gamma, Richard Help, Ralph Johnson and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, 1995. Chapters 1 and 2, then excerpts on particular patterns (Abstract Factory, Bridge, Observer, State, Visitor).
  • [Pre95]    Wolfgang Pree. Design Patterns for Object-Oriented Software Development. Addison Wesley, 1995.
  • [SG96]    Mary Shaw and David Garlan. Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, 1996. Chapters 1 and 2, pp. 1-32.
  • [Lea97]    Doug Lea. Concurrent Programming in Java: Design Principles and Patterns. Addison Wesley, 1997.
  • [Jac95]    Michael Jackson. Software Requirements and Specifications: a Lexicon of Practice, Principles and Prejudices. Addison-Wesley, 1995.
  • Research Papers

    Analysis
  • [MNS95]    Gail C. Murphy, David Notkin and Kevin Sullivan. Software Reflexion Models: Bridging the Gap Between Source and High-Level Models. Proc. Third ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE '95), October 1995.
  • [Det96]    David L. Detlefs. An overview of the Extended Static Checking system. Proc. International Symposium on Software Testing and Analysis (ISSTA 96), San Diego, CA, January 1996.
  • [C+98]    William Chan, Richard J. Anderson, Paul Beame, Steve Burns, Francesmary Modugno, David Notkin, and Jon D. Reese. Model Checking Large Software Specifications. IEEE Transactions on Software Engineering, Vol. 24, No. 7, pp. 498-520, July 1998.
  • [DLN98]    David L. Detlefs, K. Rustan M. Leino, Greg Nelson. Wrestling with rep exposure. SRC Research Report 156, Digital Systems Research Center, Palo Alto, CA, July 29, 1998.
  • [GHJ98]    Patrice Godefroid, Bob Hanmer and Lalita Jagadeesan. Model Checking Without a Model: An Analysis of the Heart-Beat Monitor of a Telephone Switch using VeriSoft. Proc. International Symposium on Software Testing and Analysis (ISSTA'98), pages 124-133, Clearwater Beach, March 1998.
  • Design Structure
  • [K+97]    Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier, John Irwin. Aspect-Oriented Programming. Proceedings of the European Conference on Object-Oriented Programming (ECOOP), Finland. Springer-Verlag LNCS 1241, June 1997.
  • [Gri98]    W. G. Griswold. Coping with software change using information transparency. Technical Report CS98-585, Department of Computer Science and Engineering, University of California, San Diego, April 1998 (revised August 1998).
  • [KF98]    Shriram Krishnamurthi and Matthias Felleisen. Toward a formal theory of extensible software. Proc. ACM SIGSOFT Conference on Foundations of Software Engineering, Orlando, FL, November 1998.
  • [SPL98]    Linda Seiter, Jens Palsberg and Karl J. Lieberherr. Evolution of object behavior using context relations. IEEE Transactions on Software Engineering, 1998.
  • CTAS and Air-Traffic Control

  • [FAA87]    Federal Aviation Authority. ATC Background. DOT/FAA/AP-87-01 (Vol. 1), 6 July 1987.
  • [D+91]    Davis, T. J., Erzberger, H., Green, S. M., Nedell, W. Design and Evaluation of an Air Traffic Control Final Approach Spacing Tool. Journal of Guidance, Control, and Dynamics, Volume 14, Number 4, July-August 1991, Pages 848-854.
  • [DKB94]    Davis, T. J., Krzeczowski, K. J., and Bergh, C.  The Final Approach Spacing Tool. 13th IFAC Symposium on Automatic Control in Aerospace, Palo Alto, California, September 1994.
  • [GV96]    Green, S., Vivona, R. Field Evaluation of Descent Advisor Trajectory Prediction Accuracy. AIAA Guidance Navigation and Control Conference, July 29-31, 1996, San Diego, California.
  • [D+97]    Denery, Dallas G., Erzberger, Heinz., Davis, Thomas J., Green, Steven N., McNally, B. David. Challenges of Air Traffic Management Research: Analysis, Simulation, and Field Test.  AIAA Guidance, Navigation, and Control Conference, August 11-13, 1997/New Orleans, Louisiana. AIAA-97-3832.
  • Manifestos, Diatribes & Critiques

  • [Nau82]    Peter Naur. Formalization in Program Development. BIT 22(1982), pp. 437-453.
  • [Fer92]    Eugene Ferguson. Engineering and the Mind's Eye, MIT Press, 1992. Chapter 5: The development and dissemination of engineeering knowledge, pp. 114-152.
  • [Par95]    David Lorge Parnas. On ICSE's "most influential papers". Software Engineering Notes, Vol. 20, No. 3, July 1995, pp. 29-32.
  • [Hoa96]    C. A. R. Hoare. How did software get so reliable without proof? 3rd International Symposium of Formal Methods Europe. Oxford, UK. March 18-22, 1996. Springer-Verlag, Marie-Claude Gaudel and James Woodcock, eds. pp. 1-17.
  • [Sai96]    Hossein Saiedian, ed. An Invitation to Formal Methods. IEEE Computer, April 1996, pp.16-30.
  • [Mey97]    Bertrand Meyer. UML: The Positive Spin. Vol. 10, No. 3, American Programmer, 1997.
  • [Par98]    David Lorge Parnas. Successful software engineering research. Software Engineering Notes, Vol. 23, No. 3, May 1998, pp. 64-68.
  • 6.894 home