CSE210 - Principles of Software Engineering
Bill Griswold
Readings Schedule
Warning: The ordering of this material is subject to change.
Required books:
- F.P. Brooks, The Mythical Man Month: Essays on Software
Engineering, Anniversary Edition, Addison-Wesley, 1995.
The ``back-up'' text for this class is:
- C. Ghezzi, M. Jazayeri, and D. Mandrioli, Fundamentals of Software
Engineering, 2nd edition, Prentice Hall, 2002.
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 the
two other books and a couple of dozen research articles. I will put the few
hardcopy readings outside my door for you to photocopy.
Note that most of the online readings can only be accessed from a UCSD
IP address. You can access these resources from home by accessing
the web through the campus's web proxy, or running UCSD's VPN client.
The following list of readings is daunting. Indeed, it is difficult
to teach an adequate class in 10 weeks. As you approach these readings,
recognize that you probably do not need to read every page in equal
detail. Guidance on reading an engineering
research paper is available. If the papers for a topic initially appear
unapproachable, try reading the introduction of the associated chapter in
Ghezzi et al.
Week 1
- Tuesday: Introduction (papers do not need to be read)
- 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), reference only
- The class web pages.
- Thursday: Problems I
- N.G. Leveson and C.S. Turner, An Investigation of the Therac-25 Accidents,
Computer, vol. 26, no. 7, pages 18-41, July 1993.
- F.P. Brooks, No Silver Bullet--Essence and Accidents of Software
Engineering, Computer, 20(4), 1987.
(also a Chapter from The Mythical Man Month: Essays on Software
Engineering, Anniversary Edition, Addison-Wesley, 1995.)
Week 2
- Tuesday: Problems II
- B.W. Boehm, Software Engineering Economics, Prentice-Hall, 1981.
(Chapters 1 and 2) - reading provided via e-mail
- Thursday: Software Process
Week 3
- Tuesday: Requirements - 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.
- K.H. Madsen, A Guide to Metaphorical Design, Communications of
the ACM, vol. 37, no. 12, Dec. 1994.
- Thursday: Requirements - 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.
Week 4
- Tuesday: Requirements III - Participatory Design
- E. Carmel et al., PD and Joint Application Design: A Transatlantic
Comparison, Communications of the ACM, June 1993.
- Assorted surrounding side-bars from same June 1993 CACM special issue:
Intro,
sidebar 1,
sidebar 2.
- F. Kensing and K.H. Madsen, Generating Visions: Future Workshops and
Metaphorical Design, Design at Work: Cooperative Design of Computer
Systems, Chapter 8, L. Erlbaum Associates, 1991.
- Thursday: Requirements - Domain Analysis
- J. Rumbaugh et al., Object-oriented Modeling and Design,
Prentice Hall, 1991. (Chapters 2-3, 7-8.4)
- See also:
Week 5: Specification and Design
- Tuesday: Specification
- C. Ghezzi, et al. (Chapter 5 through 5.7.1, skip subsection 5.5.3)
- Thursday: Design I - Modularity
Week 6: Design and Testing
- Tuesday: Design II - Software Architecture and Layering
- Thursday: Testing and Verification
- C. Ghezzi, et al. (Chapter 6)
Week 7: 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-15)
- Thursday: Case Study - Microsoft
Week 8 - Advanced Topics in Modularity
- Tuesday: Advanced Modularity (Bill G. to present)
- 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.
- W. G. Griswold, J. J. Yuan, Y. Kato,
Exploiting the Map Metaphor in a
Tool for Software Evolution, Proceedings of the 2001
International Conference on Software Engineering, Toronto,
IEEE, March, 2001.
- Thursday: Design III - Design Microstructure
Week 9: Current Models of Software Development - Rad or Fad?
- Tuesday: Agile Software Process
- Thursday: Open Source
Week 10: Program Analysis
- Tuesday: Static Checking (Sorin Lerner presents)
- Thursday: Advanced Language Support (Ranjit Jhala presents)
- Killian, C. E., Anderson, J. W., Braud, R., Jhala, R., and Vahdat, A. M. 2007. Mace: language support for building distributed systems. 2007 ACM SIGPLAN Conference on Programming Language Design and Implementation (San Diego, California, USA, June 10 - 13, 2007). PLDI '07. ACM, New York, NY, 179-188. URL
- Charles Killian, James Anderson, Ranjit Jhala, and Amin Vahdat. "Life, Death, and the Critical Transition: Finding Liveness Bugs in Systems Code", Proceedings of the 4th USENIX Symposium on Networked Systems Design and Implementation, 2007 (NSDI 2007). URL
Finals Week
- Project Demos and Postmortems
Back to CSE 210 Course Page