Reading List - Software Methodology

Students are expected to individually read all articles by the beginning of class on the indicated date.

Week 1: Software Process, Reengineering

September 20:

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

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.

Week 2: Design Modeling, Software Architecture, Project Management

September 23:

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

September 25:

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.

September 27:

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

September 30:

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.

October 2:

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.

October 4:

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

Week 4: Software Architecture

October 11:

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 Design

October 14:

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.

October 18:

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

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.

Week 6: Software Qualities, Black-box Testing

October 21:

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.

October 23:

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.

October 25:

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: White-box testing, Software Inspections

October 30:

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

November 1:

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

November 6:

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

November 8:

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

Week 9: Software Configuration Management

November 15:

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: Literate Programming, Extreme Programming (XP)

November 20:

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.

Week 11: Acceptance Testing and Project Delivery

November 25:

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

Last updated: 10/22/2002