Informatics 211: Software Engineering

(formerly ICS 221)

Fall Quarter 2006

Last update: November 30, 2006



Richard N. Taylor


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

Office hours:

After class, or by email appointment


Tuesday and Thursday 8:00-9:20 a.m, CS243

Web site:

What's New?

Description - Schedule - Grading - Readings - Policies


Catalog description:

Study of the concepts, methods, and tools for the analysis, design, construction, and measurement of complex software-intensive systems. Underlying principles emphasized. State-of-the-art software engineering and promising research areas covered, including project management. Formerly ICS 221.

Detailed Description :
This class has two objectives: (1) provide a useful overview of the state of the art (2) introduce some of the research frontiers of the field. It accomplishes this through a mix of lectures and assignments focused on the state of the art, readings from the research literature, and guest lectures from specialists in sub-areas of software engineering.


The schedule is subject to change. 

Week Date Topic Presented by Readings Assignment due
26 Tu Course introduction
Overview of software engineering
28 Th

Requirements Engineering

Alspaugh [NE00]








3 Tu Overview of SE, continued
Issues, Application, Projec



Book excerpt, Chapter 2  
5 Th Process Scacchi [Sca02a]

CTTC for Wk 1
by email
in .pdf
by midnight

3 10 Tu Design and Architecture Taylor [PW92]
Book excerpt, Chapter 5
12 Th Issues, Application, Project Taylor

CTTC for Wk 2

Reqts. spec for lunar lander

4 17 Tu Programming Languages in Software Engineering Lopes
(Taylor @ U Minn)

19 Th

Issues, Application, Project

Taylor Book excerpt CTTC for Wk 3
5 24 Tu Software Engineering aspects of Ubicomp
(Taylor @ Iowa State)
Design for LL due.
26 Th Issues, Application, Project Taylor   CTTC for Wk 4
31 Tu

Configuration Management & Coordination


van der Hoek












2 Th

Hypertext and e-Commerce




[FT02] (see note below for shorter version)
CTTC for Wk 5
7 7 Tu Reverse Engineering Sim
(Taylor @ FSE)



9 Th No Class.
(Taylor @ FSE)
  CTTC for Wk 6
8 14 Tu Issues, Application, Project Taylor    
16 Th

Software Evolution



9 21  Tu Analysis & Testing Richardson

[Wey82] [CPR+89]

CTTC for Wk 7&8

Revised designs due 24:00 on 11/22.

23  Th Thanksgiving Holiday    
10 28 Tu Software Engineering and HCI Redmiles


30 Th

Issues, Application, Project

Eric's slides on myx

Taylor CTTC for weeks 9&10 due 12/1, by midnight.
Exam Dec 5 Tu Exam from 8:00-10:00 Taylor Final project installment due 12/8, by midnight

Grading and Evaluations

There are four elements to your grade: a final exam, a little development project that will evolve throughout the quarter, short paper summaries, and class attendance and participation.

The final exam will entail your writing an evaluation of some sub-area of software engineering and identifying what you believe to be promising, or at least necessary, research directions. You'll be able to choose, in advance, the sub-area you'll write about. The purpose here is to demonstrate that you've thought substantively about an area of software engineering, to the point where you can identify some important needs, trends, opportunities, insights, ...

The purpose of the development project is simply to provide a concrete point of reference for discussion of the various techniques and ideas that will be covered during the quarter. Most likely we'll do a requirements specification, several designs, probably an implementation, and some analyses. To ensure that the focus of your time is about thinking about the issues and not grinding through loads of detail, we'll focus on a simple problem, one version of which was "solved" in the 1960's in less than 80 lines of commented BASIC code: yes, it is the lunar lander "video" game! Details of this project will be forthcoming.

The short paper summaries "allow you" to demonstrate that you've read and thought about the assigned readings. Readings are assigned, as shown in the schedule, each week of the class. You are obliged to write a short summary and analysis of each week's papers. The summary/analysis should be about 500 words long (total, per week, not per reading). I am not interested in reading a paraphrase of each paper's abstract. I am interested in reading your assessment of each paper: what points do you believe to be the important ones? Do you believe those points? Why or why not? What points did the author(s) not address that they should have? Since multiple papers are assigned you'll have to learn how to present incisive, cut-to-the-chase (CTTC) analyses in few words.

Your CTTC's on week i's topic are due as shown on the schedule. 

They must be submitted as follows:

Summary of Assessment:

Cut-to-the-chase summaries 30%
Development project 30%
Final exam 20%
Class attendance and participation 20%

No grades of incomplete (I) will be given for this course. 


The majority of the readings in the course will be papers available through the IEEE or ACM Digital Libraries. Occasionally, there will be chapters taken from books.

If you did not study software engineering as an undergraduate, the following books are recommended for background and reference.

For additional coverage of software engineering research, consult the reading list for the Phase II exam in software.

List of Papers and Book Chapters.

[ATB06] Thomas A. Alspaugh, Bill Tomlinson, and Eric Baumer. Using Social Agents to Visualize Software Scenarios. ACM Symposium on Software Visualization (SoftVis'06), pages 87-94, September 2006.

[Baj06] Sushil Bajracharya, Trung Ngo, Erik Linstead, Paul Rigor, Yimeng Dou, Pierre Baldi, Cristina Lopes. "Sourcerer: A Search Engine for Open Source Code." (in submission, 2006).

[B-L94] Berners-Lee, T., Cailliau, R., Luotonen, A., Nielsen, H. F., and Secret, A. 1994. The World-Wide Web. Commun. ACM 37, 8 (Aug. 1994), 76-82.

[Bro87] F.P. Brooks. No Silver Bullet: Essence and Accident in Software Engineering. IEEE Computer 20(4):10-19, April 1987.
(Also appears as Chapter 16 in F.P. Brooks. The Mythical Man-Month, 25th Anniversary Edition. Addison-Wesley, Reading, MA, 1995.)

[CC90] Chikofsky, E.J. Cross, J.H., II. "Reverse engineering and design recovery: a taxonomy"
IEEE Software, Volume: 7, Issue: 1, pp. 13-17, Jan 1990.

[CPR+89] L.A. Clarke, A. Podgurski, D. J. Richardson, and Steven J. Zeil. "A Formal Evaluation of Data Flow Path Selection Criteria". IEEE Transactions on Software Engineering, 15(11), November 1989, pp. 1318-1332.

[ELC+] J. Estublier, D. Leblang, G. Clemm, R. Conradi, A. van der Hoek, W. Tichy, D. Wiborg-Weber, Impact of the Research Community on the Field of Software Configuration Management, ACM Transactions on Software Engineering and Methodology, 14(4):2005, pages 1-48.

[FT02] Fielding, R. T. and Taylor, R. N. 2002. Principled design of the modern Web architecture. ACM Trans. Inter. Tech. 2, 2 (May. 2002), 115-150. Shorter version appeared as: [FT00] Fielding, R. T. and Taylor, R. N. 2000. Principled design of the modern Web architecture. In Proceedings of the 22nd international Conference on Software Engineering (Limerick, Ireland, June 04 - 11, 2000). ICSE '00. ACM Press, New York, NY, 407-416. DOI=

[FK00] A Finkelstein and J. Kramer, "Software Engineering: A Roadmap" in The Future of Software Engineering, edited by A. Finkelstein, ACM Press, 2000.

[GL85] Gould, J., Lewis, C. Designing for usability: key principles and what designers think, Communications of the ACM, Volume 28 Issue 3, March 1985, pp. 300-311.

[HeerNBH03] Jeffrey Heer, Alan Newberger, Chris Beckmann, and Jason I. Hong. liquid: Context-Aware Distributed Queries. Proceedings of UbiComp 2003: Ubiquitous Computing, 5th International Conference, Seattle, WA, USA, October 12-15, 2003.

[KLM+97] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C.V. Lopes, Jean-Marc Loingtier, John Irwin. Aspect-Oriented Programming, proceedings of the European Conference on Object-Oriented Programming (ECOOP, Finland), Springer-Verlag, June 1997.

[McIlroy68] M.D. McIlroy. "Mass Produced Software Components", in P. Naur and B. Randell, "Software Engineering, Report on
a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7th to 11th October 1968", Scientific Affairs Division, NATO, Brussels, 1969, 138-155.

[NE00] Bashar Nuseibeh and Steve Easterbrook. Requirements engineering: a roadmap. In 22nd International Conference on Software Engineering (ICSE '00), pp. 35-46. June 2000.

[Oreizy97] Oreizy, P.; Gorlick, M.M.; Taylor, R.N.; Heimhigner, D.; Johnson, G.; Medvidovic, N.; Quilici, A.; Rosenblum, D.S.; Wolf, A.L.; "An architecture-based approach to self-adaptive software" Intelligent Systems and Their Applications, IEEE [see also IEEE Intelligent Systems] Volume 14, Issue 3, May-June 1999 Page(s):54 - 62 Digital Object Identifier 10.1109/5254.769885

[PW92] D.E. Perry and A.L. Wolf. "Foundations for the Study of Software Architecture". ACM Software Engineering Notes, 17(4):40-52, October 1992.

[Red02] Redmiles, D. Supporting the End Users' Views, Working Conference on Advanced Visual Interfaces (AVI 2002, Trento, Italy), May 2002, pp. 34-42.

[SDA99] Daniel Salber, Anind K. Dey, and Gregory D. Abowd. The context toolkit: aiding the development of context-enabled applications. Proceedings of the 1999 Conference on Human Factors in Computing Systems, CHI 1999, Pittsburgh, PA, USA, May 15-20, 1999.

[SNvdH03] A. Sarma, Z. Noroozi, and A. van der Hoek, Palantír: Raising Awareness among Configuration Management Workspaces <>, Twenty-fifth International Conference on Software Engineering, May 2003, pages 444–453.

[Sca02a] W. Scacchi, Process Models in Software Engineering, in J. Marciniak (ed.), Encyclopedia of Software Engineering, 2nd. Edition, Wiley, 993-1005, 2002. (provides an overall introduction and survey of software process topics through 2001).

[Sca02b] W. Scacchi, Understanding the Requirements for Developing Open Source Software Systems, IEE Proceedings--Software, 149(1), 24-39, February 2002. (provides a comparative study of SE versus OSS requirements processes).

[Sca04] W. Scacchi, Free/Open Source Software Development Practices in the Computer Game Community, IEEE Software, 21(1), 59-67, January/February 2004. (focuses on OSS development processes applied to computer games).

[Sto06] Margaret-Anne Storey. "Theories, tools and research methods in program comprehension: past, present and future".
Software Quality Journal, Volume 14, Number 3, Pages 187-208, September, 2006.

[TMA+96] R. Taylor, N. Medvidovic, K. Anderson, E.J. Whitehead, J. Robbins. "A Component- and Message-Based Architectural Style for GUI Software," IEEE Transactions on Software Engineering, June 1996.

[TN92] I. Thomas and B.A. Nejmeh. Definitions of tool integration for environments. IEEE Software, 9(2):29-35, March 1992.

[Wey82] E.J. Weyuker. On testing non-testable programs, Computer Journal, 25(4):465-- 470, November 1982.


Course Evalutions. The window for fall quarter online evaluations will open at 7pm on Friday, November 24 and close at 11:59 p.m. on Sunday, December 3.

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.

(C) University of California, 2005, 2006. Portions adapted from T.A. Alspaugh; S. Sim; and a cast of thousands.