CSE 210 - Principles of Software Engineering
Bill Griswold
Readings Schedule
Warning: The ordering of this material, and even the content, is subject to
change. Do not print this page!
Required books:
- 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.
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 may appear 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.
You should start reading the Mythical Man Month now.
Reading just a chapter a week will get you really far, and will be
really useful to your project. We're reading "only" 11 of the 15
original chapters. It's fairly light reading, but there's a lot of it.
Week 0
- 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
- Tuesday
- Thursday
- 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.
Week 2
- Tuesday: Software Process
- Thursday: Requirements I - Scenario Design
Week 3
- 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: Early Software Design
Week 4: Object-Oriented Design
- Tuesday - Lecture: A Theory of Objects and its Application to Design
- Robert C. Martin, "SRP: The Single Responsibility Principle", from the book Agile Software Development, Principles, Patterns, and Practices.
- Orthogonality and the DRY Principle, A Conversation with Andy Hunt and Dave Thomas, Part II by Bill Venners, March 2003.
- Thursday
- 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)
Week 5: Software Architecture - Large and Small
- Tuesday
- Thursday
- 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,
Design Patterns:
Abstraction and Reuse of Object-Oriented Design, Proceedings
of ECOOP '93, 1993.
Week 6
- Tuesday: My Design Pattern Goes to 11
- Thursday: Testing (you may want to fill in the form rather than marking up the chapter)
Week 7
- Tuesday: 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)
- Thursday: Embracing our Humanity - Ethics and Theory-W
- B.W. Boehm, Case Study 2: An Urban School Attendance System, Software Engineering Economics, Chapter 2, Prentice-Hall, 1981.
- B.W. Boehm and R. Ross, Theory-W Software Project Management Principles
and Examples, IEEE Transactions on Software Engineering,
vol. 15, no. 7, pp. 902-16, July 1989. [link]
Week 8
- Tuesday (Bill G. presents)
- G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, W. G. Griswold,
Getting Started with AspectJ, Communications of the ACM,
pp. 59-65, October 2001.
- Thursday (discussion)
- N. Nikzad, O. Chipara, and W. G. Griswold, ``APE: An Annotation Language and Middleware for Energy-Efficient Mobile Application Development'', ICSE'14: 36th International Conference on Software Engineering, May 2014. [PDF]
Week 9: NO CLASS (Thanksgiving, Project, Read MMM)
No class this week, but plenty to do. Work on your project and keep reading Mythical
Man Month.
- Tuesday: NO CLASS
- Thursday: NO CLASS
Week 10: Case Studies
- Tuesday: Case Study - IBM OS/360
- F.P. Brooks, The Mythical Man Month: Essays on Software
Engineering, Anniversary Edition, Addison-Wesley, 1995.
(Chapters 1-5, 7, 9, 11, 13-15)
- Thursday: Case Study - Microsoft
- M.A. Cusumano and R.W. Selby, How Microsoft Builds Software, Communications of the ACM, pp. 53-61, June 1997.
- M.A. Cusumano. Extreme programming compared with Microsoft-style iterative development. Commun. ACM v.50, no. 10, pp. 15-18, October 2007. PDF
Back to CSE 210 Course Page