Reading List for the Spring 2005 SE Prelim is now final.
The reading list for the software engineering preliminary examination consists of three text books and several papers, articles, and book chapters taken from the literature. The text books complement each other by covering different topics and by covering the same topics from different perspectives. The papers, articles, and book chapters are intended to provide historical perspective, as well as to provide detailed descriptions of specific techniques.
You should be prepared to discuss and/or apply any technique presented in the entire reading list.
Further background material and pointers to the software engineering literature are available from the Software Engineering Body of Knowledge (SWEBOK) project. These may be useful to you as you prepare for the examination.
Text Books
- G. Booch, J. Rumbaugh, and I. Jacobson. The Unified Modeling Language User Guide, Addison-Wesley, Reading, MA, 1999. [Chapters 1-24].
- C. Ghezzi, M. Jazayeri, and D. Mandrioli. Fundamentals of Software Engineering, Prentice Hall, Englewood Cliffs, New Jersey, 1991.
- S.L. Pfleeger. Software Engineering: Theory and Practice, Second Edition, Prentice Hall, Upper Saddle River, New Jersey, 2001.
Papers, Articles, and Book Chapters
- L. Bass, P. Clements, and R. Kazman. Part One of Software Architecture in Practice, Addison Wesley, Reading, Massachusetts, 1998.
- M. Bishop. Robust Programming. 2001. (Available here).
- J.R. Black. Cryptography. UNESCO Encyplopedia, December 2001. (Available here).
- J.R. Burch, E.M. Clarke, K.L. McMillan, D.L. Dill, and L.J. Hwang. Symbolic Model Checking: 10^20 States and Beyond. Information and Computation, 98(2):142-170, 1992.
- R. Conradi and B. Westfechtel. Version Models for Software Configuration Management. ACM Computing Surveys, 30(2):232-282, June 1998.
- B. Curtis, M.I. Kellner, and J. Over. Process Modeling. Communications of the ACM, 35(9):75-90, September 1992.
- N.E. Fenton and S.L. Pfleeger. Chapters 1 through 4 of Software Metrics: A Rigorous and Practical Approach, Second Edition (or later), PWS Publishing Company, 1997.
- N.G. Leveson, Software Safety: What, Why, and How. ACM Computing Surveys, 18(2):125-164, June 1986.
- S.M. Lewandowski. Frameworks for Component-Based Client/Server Computing. ACM Computing Surveys, 30(1):3-27, March 1998.
- D.L. Parnas. On the Criteria to be Used in Decomposing Systems into Modules. Communications of the ACM, 15(12):1053-1058, December 1972.
- D.L. Parnas and P.C. Clements. A Rational Design Process: How and Why to Fake It. IEEE Transactions on Software Engineering, SE-12(2):251-257, February 1986.
- S.P. Reiss. Connecting Tools Using Message Passing in the Field Environment. IEEE Software, pages 57-66, July 1990.
- D.S. Rosenblum. A Practical Approach to Programming with Assertions. IEEE Transactions on Software Engineering, 21(1):19-31, January 1995.
- S. Sinha, M.J. Harrold, and G. Rothermel. Interprocedural Control Dependence. ACM Transactions on Software Engineering and Methodology, 10(2):209-254, April 2001.
- R. Wieringa. A Survey of Structured and Object-Oriented Software Specification Methods and Techniques. ACM Computing Surveys, 30(4):459-527, December 1998.
- J.M. Wing. A Specifier's Introduction to Formal Methods. IEEE Computer, 23(9):8-24, September 1990.
Papers on Past Exams (not currently required)
- K. Anderson, S. Sherba, and W. Lepthien. Towards Large-Scale Information Integration. Proceedings of the 24th International Conference on Software Engineering, May 2002. (Available here).
- V.R. Basili, R.W. Selby, and D.H. Hutchens. Experimentation in Software Engineering. IEEE Transactions on Software Engineering, SE-12(7):733-743, July 1986.
- F.P. Brooks. The Mythical Man-Month, 20th Anniversary Edition, Addison Wesley, Reading, Massachusetts, 1995.
- M.E. Fagan. Advances in Software Inspections. IEEE Transactions on Software Engineering, SE-12(7):744-751, July 1986.
- D. Garlan and M. Shaw. An Introduction to Software Architecture. In V. Ambriola and G. Tortora, editors, Advances in Software Engineering and Knowledge Engineering, volume 1. World Scientific, New Jersey, 1993.
- T.L. Graves, M.J. Harrold, J.-M. Kim, A. Porter, and G. Rothermel. An Empirical Study of Regression Test Selection Techniques. ACM Transactions on Software Engineering and Methodology, 10(2):184-208, April 2001.
- H.D. Mills, M. Dyer, and R.C. Linger. Cleanroom Software Engineering. IEEE Software, 4(5):19-25, September 1987.
- M. Paulk, B. Curtis, M. Chrissis, and C. Weber. Capability Maturity Model, Version 1.1. IEEE Software, 10(4):18-27, July 1993.
- A. Podgurski and L.A. Clarke. A Formal Model of Program Dependencies and its Implications for Software Testing, Debugging, and Maintenance. IEEE Transactions on Software Engineering, 16(9):965-979, September 1990.
- R.S. Pressman. Software Engineering, Fourth Edition (or later), McGraw-Hill, New York, New York, 1997.
- R.N. Taylor. A General Purpose Algorithm for Analyzing Concurrent Programs. Communications of the ACM, 26(5):362-376, May 1983.
- M. Weiser. Program Slicing. IEEE Transactions on Software Engineering, 10(4):352-357, July 1984.