Qualifying Examination in Software Engineering


To be held: TBD
(Last Revised: January 24, 2008)

The reading list for the qualifying exam in software engineering consists of two text books and several papers, articles, and book chapters taken from the literature. The papers, articles, and book chapters are intended to provide historical perspective and added depth to a selection of topics. You will be allowed to bring these materials to the exam.

You should be prepared to discuss and/or apply any technique presented in the reading list. You can expect questions in the general areas of:

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

  1. F.P. Brooks, The Mythical Man-Month, Anniversary Edition, Addison Wesley, Reading, Massachusetts, 1995.
  2. Hans van Vliet, Software Engineering Principles and Practices, 2nd Edition, John Wiley and Sons, to be published 2008 (available online here).


Papers, Articles, and Book Chapters

  1. L. Bass, P. Clements, and R. Kazman. Part One of Software Architecture in Practice, Addison Wesley, Reading, Massachusetts, 2002. Available from Prof. Stafford.
  2. Prologue to P. Clements, F. Bachmann, L. Bass, D. Garlan, J. Ivers, R. Little, R. Nord, J. Stafford, "Documenting Software Architectures: Views and Beyond," Addison Wesley, September 2002. Available from Prof. Stafford.
  3. R. Conradi and B. Westfechtel. Version Models for Software Configuration Management. ACM Computing Surveys, 30(2):232-282, June 1998.
  4. 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.
  5. 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.
  6. N.G. Leveson, Software Safety: What, Why, and How. ACM Computing Surveys, 18(2):125-164, June 1986.
  7. B. Meyer. Design by Contract. IEEE Computer, 25(10):40-51, 1992.
  8. H.D. Mills, M. Dyer, and R.C. Linger. Cleanroom Software Engineering. IEEE Software, 4(5):19-25, September 1987.
  9. D.L. Parnas. On the Criteria to be Used in Decomposing Systems into Modules. Communications of the ACM, 15(12):1053-1058, December 1972.
  10. 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.
  11. M. Paulk, B. Curtis, M. Chrissis, and C. Weber. Capability Maturity Model, Version 1.1. IEEE Software, 10(4):18-27, July 1993.
  12. D.E. Perry and A.L. Wolf. Foundations for the Study of Software Architecture. ACM Software Engineering Notes, 17(4):40-52, 1992.
  13. M. Weiser. Program Slicing. IEEE Transactions on Software Engineering, 10(4):352-357, July 1984.
  14. J.M. Wing. A Specifier's Introduction to Formal Methods. IEEE Computer, 23(9):8-24, September 1990.