Informatics 121: Software Design I

Fall Quarter 2008

Last update: December 1, 2008



Richard N. Taylor


(taylor [at] ics [dot] uci [dot] edu)
To ensure a response to your email, please include "Informatics 121" in the subject line and send your email from a UCI account.

Office hours:

After class, or by email appointment


Tuesday and Thursday 11:00-12:20, ICS 243

TA Yongjie Zheng (zhengy at Office hours: TBD
Discussion M 11:00-11:50, ICS 209
Web site:

What's New?

Description - Schedule - Grading - Readings - Policies


Catalog description:

Introduction to software design principles, paradigms, tools, and techniques. Topics include alternative architectural styles, iterative refinement, design patterns, mapping design onto code, design tools, and design notations. Includes extensive practice in creating designs and study of existing designs. Prerequisite: Informatics 102 with a grade of C or better.

Textbook and Assigned Readings

There will be a lot of assigned reading from numerous sources during the quarter... especially the first half.


  1. Alexander, C. The Timeless Way of Building. Oxford University Press: New York, 1979.
  2. Brand, S. How Buildings Learn: What Happens After They're Built. Penguin Books, 1994.
  3. Brooks, F.P. The Mythical Man-Month: Essays on Software Engineering.  2 ed., Addison-Wesley, 1995.
  4. Eberhart, M. Why Things Break: Understanding the World by the Way It Comes Apart. Harmony Books: New York, 2003.
  5. Gamma, E., Helm, R., Johnson, R., and Vlissides, J. Design Patterns: Elements of Reusable Object-Oriented Software.  Addison-Wesley Professional Computing Series.  Addison-Wesley: Reading, MA, 1995.
  6. Jackson, M. System Development. Prentice Hall: Englewood Cliffs, N.J., 1983.
  7. Jackson, M. Problem Frames. Addison-Wesley Professional: Reading, MA, 2001.
  8. Jackson, M.A. Principles of Program Design. Academic Press, 1975.
  9. Jones, J.C. Design Methods: Seeds of Human Futures.   John Wiley & Sons, Ltd.: New York, 1970.
  10. Kelley, T., Littman, J., and Peters, T. The Art of Innovation: Lessons in Creativity from IDEO, America's Leading Design Firm. Currency/Doubleday: New York, 2001.
  11. Kruchten, P. The Rational Unified Process: An Introduction.   Addison-Wesley: Reading, MA, 2000.
  12. Norman, D.A. The Design of Everyday Things.  1st Basic paperback ed., Basic Books: New York, 2002.
  13. Petroski, H. To Engineer is Human.  St. Martin's Press 1985.
  14. Petroski, H. The Evolution of Useful Things.  Alfred A. Knopf, Inc., 1992.
  15. Petroski, H. Invention by Design: How engineers get from thought to thing.  Harvard University Press, 1996.
  16. Schön, D. The Reflective Practitioner: How Professionals Think in Action., Basic Books, Inc. Publishers: New York, 1983.
  17. Simon, H.A. The Sciences of the Artificial.  2nd ed.  The MIT Press, 1981.
  18. Van Duyne, D.K., Landay, J.A., and Hong, J.I. The Design of Sites : Patterns, Principles, and Processes for Crafting a Customer-centered Web Experience. Addison-Wesley: Boston, 2003.
  19. Yourdon, E. Techniques of Program Structure and Design. Prentice-Hall: Englewood Cliffs, N.J., 1975.
  20. Yourdon, E. and Constantine, L.L. Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design. Prentice-Hall, Inc., 1979.


  1. Abbott, R.J. Program Design by Informal English Descriptions. Communications of the ACM. 26(11), p. 882-894, 1983.
  2. Booch, G. Object-Oriented Development. IEEE TSE. 12(2), p. 211-221, 1986.
  3. Fischer, G. Communities of Interest: Learning through the Interaction of Multiple Knowledge Systems. User Modeling. 2001.
  4. Freeman, P. The Central Role of Design in Software Engineering. Software Engineering Education Freeman, P. and Wasserman, A. eds. Springer-Verlag: New York, 1976.
  5. Freeman, P. The Central Role of Design in Software Engineering: Implications for Research. In Software Engineering: Research Directions. p. 121-132, Academic Press, 1980.
  6. Ommering, R.v., Linden, F.v.d., Kramer, J., and Magee, J. The Koala Component Model for Consumer Electronics Software. IEEE Computer. 33(3), p. 78-85, March, 2000.
  7. Parnas, D.L. On the Criteria to be Used in Decomposing Systems into Modules. Communications of the ACM. 15(12), p. 1053-1058, 1972.
  8. Parnas, D.L. On the Design and Development of Program Families. IEEE TSE. 2(1), p. 1-9, 1976.
  9. Parnas, D.L. Designing Software for Ease of Extension and Contraction. IEEE TSE. 5(2), p. 128-137, 1979.
  10. Parnas, D.L., Clements, P.C., and Weiss, D.M. The Modular Structure of Complex Systems. IEEE TSE. 11(3), p. 259-266, March, 1985.
  11. Parnas, D.L. and Clements, P.C. A Rational Design Process: How and Why to Fake It. IEEE TSE. 12(2), p. 251-257, February, 1986.
  12. Perry, D.E. and Wolf, A.L. Foundations for the Study of Software Architecture. ACM SIGSOFT Software Engineering Notes. 17(4), p. 40-52, October, 1992.
  13. Spector, A. and Gifford, D. A Computer Science Perspective of Bridge Design. Communications of the ACM. 29(4), p. 267-283, April, 1986.
  14. Tracz, W. DSSA (Domain-Specific Software Architecture): Pedagogical Example. ACM SIGSOFT Software Engineering Notes. 20(3), July, 1995.




The schedule is subject to change. 

Week Date Topic Discussion/Assignments
25 Th Introduction to the topic of design [Spector & Gifford 86]
30 Tu[Spector & Gifford 86] "Pool papers" assigned; due 10/7 (Assignment #1)








2 Th Essence and Accidents (Brooks)
7 Tu Pool papers Brand (chapters 1 & 2) and Schon (chapter 3) ; due 10/14 (Assignment #2)
9 Th Pool papers  
14 Tu Brand and Schon Jones, Part I; due 10/21 (Assignment #3)
16 Th No class  
21 Tu Brand and Schon Parnas (#7 & #11); due 10/30 (Assignment #4)
23 Th

Jones & Design Exercise

(pdf) (Design Exercise #1)

28 Tu Design Exercise  
30 Th Parnas on Design Abbott and Booch; due 11/11 (Assignment #5)









4 Tu Parnas on Design  
6 Th Abbott and Booch; uses hierarchy Design exercise (project)
11 Tu Veteran's Day! (no class)  
13 Th Design exercise (project) discussion  
18 Tu Architectural patterns and styles Tracz and Ommering; due 11/25 (Assignment #6)
20 Th Patterns, styles, and the Web  
25 Tu Product Families  
27 Th Thanksgiving Day! (no class)  


2 Tu Student presentations (design exercise) DUE (before class)
4 Th

Student presentations (design exercise)

Review for Final Exam

Course evaluations (bring your laptop)

Exam 9 Tu Final Exam, 10:30-12:30 p.m.  

Grading and Evaluations

Grading (Tentative).


Course Evalutions. The window for fall quarter online evaluations will open at 05:00 PM 11/28/2008 through 11:45 PM 12/07/2008.

Cheating. The UCI academic honesty policy applies. Consequences of cheating in this class: a letter in your UCI file, and the course grade is lowered, most likely to F. Material that is copied from books or Web pages needs to be quoted and the source must be given. If you plagarize, you run the severe risk of failing the class, in a most disgraceful manner.

Disabilities. If you need an accommodation because of a disability, please contact the instructor and the Disability Services Center as soon as possible.

© University of California, 2008.