Informatics 121: Software Design I
Fall Quarter 2008
Last update:
December 1, 2008
Instructor: |
Richard N. Taylor |
Email: |
(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 |
Lectures: |
Tuesday and Thursday 11:00-12:20, ICS 243 |
TA |
Yongjie Zheng (zhengy at ics.uci.edu). Office hours: TBD |
Discussion |
M 11:00-11:50, ICS 209 |
Web site: |
http://www.ics.uci.edu/~taylor/classes/121/syllabusFQ08.html |
What's New?
- [November 5, 2008] Schedule and assignments updated, yet again. Note the
date change on Assignment #6.
Description
- Schedule - Grading
- Readings - Policies
Description
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.
Books
- Alexander, C. The Timeless Way of Building. Oxford University Press: New
York, 1979.
- Brand, S. How Buildings Learn: What Happens After They're Built. Penguin
Books, 1994.
- Brooks, F.P. The Mythical Man-Month: Essays on Software Engineering. 2
ed., Addison-Wesley, 1995.
- Eberhart, M. Why Things Break: Understanding the World by the Way It Comes
Apart. Harmony Books: New York, 2003.
- 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.
- Jackson, M. System Development. Prentice Hall: Englewood Cliffs, N.J.,
1983.
- Jackson, M. Problem Frames. Addison-Wesley Professional: Reading, MA, 2001.
- Jackson, M.A. Principles of Program Design. Academic Press, 1975.
- Jones, J.C. Design Methods: Seeds of Human Futures. John Wiley & Sons,
Ltd.: New York, 1970.
- 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.
- Kruchten, P. The Rational Unified Process: An Introduction. Addison-Wesley:
Reading, MA, 2000.
- Norman, D.A. The Design of Everyday Things. 1st Basic paperback ed.,
Basic Books: New York, 2002.
- Petroski, H. To Engineer is Human. St. Martin's Press 1985.
- Petroski, H. The Evolution of Useful Things. Alfred A. Knopf, Inc.,
1992.
- Petroski, H. Invention by Design: How engineers get from thought to thing. Harvard
University Press, 1996.
- Schön, D. The Reflective Practitioner: How Professionals Think in
Action., Basic Books, Inc. Publishers: New York, 1983.
- Simon, H.A. The Sciences of the Artificial. 2nd ed. The MIT
Press, 1981.
- 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.
- Yourdon, E. Techniques of Program Structure and Design. Prentice-Hall:
Englewood Cliffs, N.J., 1975.
- Yourdon, E. and Constantine, L.L. Structured Design: Fundamentals of a
Discipline of Computer Program and Systems Design. Prentice-Hall, Inc., 1979.
Articles
- Abbott, R.J. Program Design by Informal English Descriptions. Communications
of the ACM. 26(11), p. 882-894, 1983. http://doi.acm.org/10.1145/182.358441
- Booch, G. Object-Oriented Development. IEEE TSE. 12(2), p. 211-221, 1986.
- Fischer, G. Communities of Interest: Learning through the Interaction of
Multiple Knowledge Systems. User Modeling. 2001.
- Freeman, P. The Central Role of Design in Software Engineering. Software
Engineering Education Freeman, P. and Wasserman, A. eds. Springer-Verlag:
New York, 1976.
- Freeman, P. The Central Role of Design in Software Engineering: Implications
for Research. In Software Engineering: Research Directions. p. 121-132, Academic
Press, 1980.
- 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.
- Parnas, D.L. On the Criteria to be Used in Decomposing Systems into Modules.
Communications of the ACM. 15(12), p. 1053-1058, 1972. http://doi.acm.org/10.1145/361598.361623
- Parnas, D.L. On the Design and Development of Program Families. IEEE TSE.
2(1), p. 1-9, 1976.
- Parnas, D.L. Designing Software for Ease of Extension and Contraction.
IEEE TSE. 5(2), p. 128-137, 1979.
- 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.
- 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.
- 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. http://doi.acm.org/10.1145/141874.141884
- Spector, A. and Gifford, D. A Computer Science Perspective of Bridge Design.
Communications of the ACM. 29(4), p. 267-283, April, 1986. http://doi.acm.org/10.1145/5684.6327
- Tracz, W. DSSA (Domain-Specific Software Architecture): Pedagogical Example.
ACM SIGSOFT Software Engineering Notes. 20(3), July, 1995. http://doi.acm.org/10.1145/219308.219318
Schedule
The schedule is subject to change.
Week |
Date |
Topic |
Discussion/Assignments |
0
| September
| 25
Th
| Introduction to the topic of design
| [Spector & Gifford 86] |
1
| 30
Tu | [Spector & Gifford 86]
| "Pool papers" assigned; due 10/7 (Assignment
#1) |
O
C
T
O
B
E
R
| 2 Th
| Essence and Accidents (Brooks) |
|
2
| 7 Tu
| Pool papers |
Brand (chapters 1 & 2) and Schon (chapter 3) ;
due 10/14
(Assignment #2)
|
9 Th
| Pool papers |
|
3
| 14 Tu
| Brand and Schon |
Jones, Part I; due 10/21 (Assignment #3) |
16 Th
| No class |
|
4
| 21 Tu |
Brand and Schon |
Parnas (#7 & #11); due 10/30 (Assignment #4) |
23 Th |
Jones & Design Exercise
(pdf) (Design Exercise
#1) |
|
5
| 28 Tu
| Design Exercise |
|
30 Th
| Parnas on Design |
Abbott and Booch; due 11/11 (Assignment #5) |
6
| N
O
V
E
M
B
E
R
| 4 Tu
| Parnas on Design |
|
6 Th |
Abbott and Booch; uses hierarchy |
Design exercise (project) |
7
| 11 Tu
| Veteran's Day! (no class) |
|
13 Th
| Design exercise (project) discussion |
|
8
| 18 Tu
| Architectural patterns and styles |
Tracz and Ommering; due 11/25 (Assignment #6) |
20 Th |
Patterns, styles, and the Web |
|
9
| 25 Tu |
Product Families |
|
27 Th |
Thanksgiving Day! (no class) |
|
10
| December |
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).
- Final: 25%
- Assignments, Design Exercises, and Presentations: 75%
Policies
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.