CSE210 - Principles of Software Engineering
Warning: The ordering of this material, and even the content, is subject to
change. Do not print this page!
- D. Pilone and R. Miles, Head First Software Development, 1st Edition, O'Reilly, 2008. Available Online via the UCSD VPN (limited number of simultaneous readers)
- Eric Freeman, Elisabeth Robson, Kathy Sierra, Bert Bates: Head First Design Patterns, 10th Anniverary Edition, O'Reilly Media, 2017. Available Online
(Note: the online edition may be the older edition, but this is OK.)
- F.P. Brooks, The Mythical Man Month: Essays on Software
Engineering, Anniversary Edition, Addison-Wesley, 1995.
The ``back-up'' text for this class is:
The back-up text will be used mostly for background material (e.g., unassigned
reading) and to augment the readings below. Most readings comes from MMM
and a couple of dozen research articles.
- C. Ghezzi, M. Jazayeri, and D. Mandrioli, Fundamentals of Software
Engineering, 2nd edition, Prentice Hall, 2002.
Note that most of the online readings can only be accessed from a UCSD
IP address. You can access these resources from home by going through
the campus VPN.
The following list of readings appears daunting.
Guidance on reading an engineering
research paper is available can help. If the papers for a topic initially appear
unapproachable, try reading the introduction of the associated chapter in
Ghezzi et al.
- Thursday: Introduction (papers do not need to be read or marked up)
- W.W. Gibbs, Software's Chronic Crisis, Scientific American, pages 72-81, September, 1994.
- D.L. Parnas, Why Software Jewels are Rare, Computer, 29(2), 1996.
- C. Ghezzi, et al. (Chapters 2-3)
- N.G. Leveson and C.S. Turner, An Investigation of the Therac-25 Accidents, Computer, vol. 26, no. 7, pages 18-41, July 1993.
- The class web pages.
Week 1: Agile Software Process
- Chapter 3 of Dan Pilone, Russell Miles: Head First Software Development, O'Reilly Media, 2007.
- Chapter 4, pages 109-123, 130-136, 139-142, of Dan Pilone, Russell Miles: Head First Software Development, O'Reilly Media, 2007.
- Tuesday: Software Process
- Thursday: Requirements I - Scenario and Metaphorical Design
- J.M. Carroll, Making Use a Design Representation, Communications of the ACM, vol. 37, no. 12, pp. 28-35, Dec. 1994.
- North & Associates, What's in a Story?
- K.H. Madsen, A Guide to Metaphorical Design, Communications of the ACM, vol. 37, no. 12, Dec. 1994.
- Tuesday: Requirements II - Designing with Data
- J. Blomberg et al., Ethnographic Field Methods and Their Relation to Design, Participatory Design: Principles and Practices, from CPSR First Participatory Design Conference 1990, pp. 123-155, 1993.
- Thursday: Requirements III - Contextual Design (write up as single reading)
Week 4: Introduction to Software Design
- Lecture: A Theory of Objects and its Application to Design
Week 5: Big-Picture Software Design
- Tuesday: No Class, No Reading
Week 6: Modern OOD
- R. Mitchell and J. McKim, Design by Contract: By Example,
Chapters 1 and 2. (please use the 2-page form, write-up as single reading)
- Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates, Chapter 1, Head First Design Patterns, O'Reilly Media, 2004.
- E. Gamma, R. Helm, R. Johnson and J. Vlissides,
Abstraction and Reuse of Object-Oriented Design, Proceedings
of ECOOP '93, 1993.
- Tuesday: Testing
- Thursday: Code Review
- A. Bacchelli and C. Bird. Expectations, outcomes, and challenges of modern code review. In Proceedings of the 2013 International Conference on Software Engineering (ICSE '13). IEEE Press, pp. 712-721, 2013.
- M. Menarini, Y. Yan, and W. G. Griswold, Semantics-Assisted Code Review: An Efficient Toolchain and a User Study, Proceedings of Automated Software Engineering 2017 (ASE'17). (do not read, presented by Griswold)
Back to CSE 210 Course Page