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