Reading List - Software Methodology

Students are expected to individually read all articles during the assigned week. Students must write a brief review of all articles marked with a (*) -- check the syllabus for review due dates.

All readings are available online, and in book form at the bookstore. The only required textbook is:

This book is first used in week 6.

Online articles are password protected. The password will be given in class, or you can email the Professor or TA.

Week 1: Software Process, Reengineering

(*) Lifecycle Planning, Chapter 7 of Rapid Development, by Steve McConnell, Microsoft Press, 1996, p. 133-161.

Week 2: Software Reengienering, Architecture, Project Management

Reverse Engineering and Design Recovery: A Taxonomy, Elliot J. Chikofsky, James H. Cross II, IEEE Software, Vol. 7, No. 1, Jan. 1990, pp. 13-17.

What is Software Architecture?, Chapter 1 of Evaluating Software Architectures: Methods and Case Studies, by Paul Clements, Rick Kazman, Mark Klein, Addison-Wesley, 2002, pages 1-16.

(*) Software Risk Management: Principles and Practices, Barry W. Boehm, IEEE Software, Vol. 8, No. 1, Jan. 1991, pp. 32-41.

Putting Risk Management into Practice, Ray C. Williams, Julie A. Walker, Audrey J. Dorofee, IEEE Software, Vol. 14, No. 3, May-June 1997, pp. 75-82.
Optional article, but has practical guidance that is useful for Risk Assessment assignment.

Week 3: Requirements Engineering

Chapter 1, Introduction, (*) Chapter 3 (sections 3.1, 3.2 only) Requirements Elicitation and Analysis, of Requirements Engineering: Processes and Techniques, Gerald Kotonya, Ian Sommerville, John Wiley & Sons, 1998, pp. 3-23, 53-73.
Review only Chapter 3.

Chapter 4 (section 4.1 only), Requirements Validation, of Requirements Engineering: Processes and Techniques, Gerald Kotonya, Ian Sommerville, John Wiley & Sons, 1998, pp. 87-100.

(*) Prototyping for Tiny Fingers, Mark Rettig, Communications of the ACM, Vol. 37, No. 4, April, 1994, pp. 21-27.

Week 4: Software Architecture

(*) Software: It's Nature and Qualities, Sections 2.1, 2.2 of Fundamentals of Software Engineering, Carlo Ghezzi, Mehdi Jazayeri, Dino Mandrioli, Prentice-Hall, 1991, pp. 17-36.

(*) Software Engineering Principles, Chapter 3 through Section 3.5 of Fundamentals of Software Engineering, Carlo Ghezzi, Mehdi Jazayeri, Dino Mandrioli, Prentice-Hall, 1991, pp. 43-53.

Evaluating a Software Architecture, Chapter 2 of Evaluating Software Architectures: Methods and Case Studies, by Paul Clements, Rick Kazman, Mark Klein, Addison-Wesley, 2002, pages 19-42.

Week 5: Software Qualities, Software Design

Classes, Objects, and Their Relationships, Chapter 4 of UML Toolkit, Hans-Erik Eriksson and Magnus Penker, John Wiley, 1998, p. 65-117.

Interaction Diagrams, Chapter 18, and Processes and Threads, Chapter 22 of The Unified Modeling Language User Guide, by Grady Booch, James Rumbaugh, Ivar Jacobson, Addison-Wesley, 1999, pp. 243-256.

On the Criteria to be Used in Decomposing Systems into Modules, David Parnas, Communications of the ACM, December 1972, pp. 1053-1058.

Week 6: Software Testing

A Fault Model to Guide Software Testing, Chapter 1 of How to Break Software: A Practical Guide to Testing, James A. Whittaker, Addison-Wesley, 2003, pp. 3-16.

Testing from the User Interface: Inputs and Outputs, Chapter 2 of How to Break Software: A Practical Guide to Testing, James A. Whittaker, Addison-Wesley, 2003, pp. 19-55.

Week 7: Software Inspections

(*) Path Testing, Chapter 9 of Software Testing, A Craftsman's Approach, Paul C. Jorgensen, CRC Press, 1995, pp. 107-122.

Software Inspections: An Effective Verification Process. A. Frank Ackerman, Lynne S. Buchwald, and Frank H. Lewski, IEEE Software, May 1989, pp. 31-36.

Week 8: Software Evolution (1)

(*) Software Aging, D.L. Parnas, Proc. 16th International Conference on Software Engineering, Sorrento, Italy, May 16 - 21 1994, pp. 279 - 287.

Week 9: Software Evolution (2) and Configuration Management

(*) Rules and Tools for Software Evolution Planning and Management, M. M. Lehman, Proc. FEAST 2000 Workshop, Imperial College, London, July 10-12, 2000.

Impact of the Research Community on the Field of Software Configuration Management: Summary of an Impact Project Report, Jacky Estublier (editor), David Leblang (co-editor), Geoffrey Clemm, Reider Conradi, André van der Hoek, Walter Tichy, Darcy Wiborg-Weber, Software Engineering Notes, Vol. 27, No. 5, September, 2002, pp. 31-39.

Week 10: Acceptance Testing and Project Delivery

The New Methodology, Martin Fowler, Web site, http://www.martinfowler.com/articles/newMethodology.html.

All I Really Need to Know About Pair Programming I Learned in Kindergarten. Laurie Williams and Robert Kessler, Communications of the ACM, Vol. 43, No. 5, May 2000, pp. 108-114.

No Silver Bullet: Essence and Accidents of Software Engineering, Frederick Brooks, IEEE Computer, April 1987, pages 10-19.

Last updated: 3/3/2003