Administrative Information

Classroom: ICS 243

Course code: 36564

Lecture Period: Tuesday and Thursday, 3:30 PM ­ 4:50PM

Course Instructor: Professor Richard N. Taylor

Electronic Mail:
Office: ICS2 203
Office Phone: (949) 824-6429
Fax: (949) 824-1715
Office Hours: MW 3:30-4:30pm. But please send email to establish an appointment.

Course Overview

From the UCI Catalog:

221 Software Engineering (4). 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 221A.

This class is a graduate survey of software engineering topics. Each lecture will focus on a single topic, beginning with some background information about the topic and followed by an examination of one or more important issues with respect to that topic at the frontier of software engineering. Students requiring a more thorough exposition of background material should consult the course textbook, using the suggested readings in the course schedule as guidelines. At the end of the class, students should be knowledgeable about the fundamentals of software engineering, the key problems that are currently being pursued by researchers in the field, and the key approaches that are being proposed and investigated, as well as be familiar with the work of many of the leading researchers.

The vehicles for learning these topics are readings from the textbook, readings from the technical literature, lectures, and classroom discussion. The class is co-taught by the software faculty so that specialty topics may be presented in depth.

NOTE: In this course you are bound by the ICS policy on cheating, as well as UC Irvine's policy on academic honesty (which is also printed in the Schedule of Classes). All suspected incidents of academic dishonesty will be reported to the ICS Vice Chair for Graduate Affairs. In addition, if the instructor believes there is evidence confirming the occurrence of academic dishonesty, the student or students involved will be given an automatic F in the course, and a letter documenting the incident will be sent to the student and placed in the student's official academic record.

Unfortunately plagarism has been a problem in this class during the last 2 years. 10 students were "busted" 2 years ago; last year another 4 or 5 were identified. Don't become a statistic for next year's syllabus. Note that these were not small cases, they were cases of whole pages of copied material, sometimes page by page, sometimes paragraph by paragraph, or even sentence by sentence (e.g., weaving sentences from different papers together). Anything you literally copy at any time must be quoted and cited.

Schedule (Subject to Change)





Assignment Due

Paper Readings

Suggested Textbook


October 1

Course Introduction
Overview of Software Engineering
and NSB




Ch. 1-3

October 3

Software Architecture



[PW92] [TMA+96]



October 8

Component-Based Software




October 10

Architectures, Hypermedia, and Protocols


Week 1 Summaries


Ch. 4


October 15

*Software Process



[S02] [OST87]

Ch. 7

October 17



Week 2 Summaries

[BT98] (not required) [Nut96]



October 22

*Computer-Supported Cooperative Work(1)



[Gru94] [PMP98]


October 24

*CSCW (2) and Remote Collaboration Caution! 10.3 MB file!


Week 3 summaries


Ch. 8


October 29

*Configuration Management

van der Hoek




October 31

*Product-Line Architectures

van der Hoek

Week 4 Summaries

[HMR+01] [Ommering, ICSE 2002]



November 5

*Software Requirements



[Hen80] [AA01]

Ch. 5

November 7

*Formal Specification Methods


Week 5 Summaries

[vLW98] [HLK95]



November 12

*Interoperability and Middleware



[GAO95] [CRW00]

Ch. 6

November 14

*Human-Computer Interaction


Week 6 Summaries




November 19

*Aspect-Oreinted Programming



[KLM97] and optionally [TDBL00]


November 21

(no lecture - FSE conference)


Week 7 Summaries (turn in to the TA)


Ch. 6


November 26

*Software Testing Theory



[Wey82] [Wey86] [YT89]**


November 28

(no lecture ­ Thanksgiving holiday)






December 3

Student Presentations (5 minutes each)





December 5

Student Presentations (5 minutes each)


Week 8 & 9 Summaries




December 10th

Final Exam (4:00p.m - 6:00p.m.)


Term Papers due





Readings are assigned from the required textbook:

The following books are highly recommended for background on requirements specification and project management:

The following technical papers from the research literature (most of which are from the Software Phase II Reading List) were assigned last year to supplement the text as indicated in the course schedule. We will do a similar thing this year, the first version of the updated list will be posted "real soon now" but additional different papers will appear throughout the course. Copies of these papers and copies of all presentations will be made available in a folder in the file cabinet outside the 4th-floor Copy Center in the main ICS building. Do not take materials away from that area, and please try to keep the folder neat and tidy.

[AA01] Thomas A. Alspaugh and Annie I. Anton. Scenario networks for software specification and scenario management. NCSU Computer Science Technical Report TR-2001-15,, 2001.

[AG93] Joanne M. Atlee and John Gannon. "State-Based Model Checking of Event-Driven System Requirements". IEEE Transactions on Software Engineering 19(1):24-40, January 1993.

[BT98] G. Bolcer and R. Taylor, "Advanced Workflow Management Technologies", Software Process--Improvement and Practice, 4, 125-171, 1998.

[Bro87] Frederick P. Brooks. "No Silver Bullet: Essence and Accidents of Software Engineering". IEEE Computer 20(4):10-19, April 1987.

[CKI88] B. Curtis, H. Krasner and N. Iscoe. "A Field Study of the Software Design Process for Large Systems". Communications of the ACM 31(11):1268-1287, November 1988.

[CRW00] Antonio Carzaniga, David S. Rosenblum, and Alexander L. Wolf. "Achieving Scalability and Expressiveness in an Internet-Scale Event Notification Service". In Proceedings of the Nineteenth ACM Symposium on Principles of Distributed Computing, pp. 219-227, Portland, OR, July 2000.

[CW98] Reidar Conradi and Bernhard Westfechtel. "Version Models for Software Configuration Management". ACM Computing Surveys 30(2):232-282, June 1998.

[DR99] Elisabetta Di Nitto and David S. Rosenblum. "Exploiting ADLs to Specify Architectural Styles Induced by Middleware Infrastructures". In Proceedings of the 21st International Conference on Software Engineering, pp. 13-22, Los Angeles, CA, May 1999.

[FWA+98] R. Fielding, E.J. Whitehead, K. Anderson, G. Bolcer, P. Oreizy and R. Taylor. "Web-based Development of Complex Information Products". Communications of the ACM 41(8):84-92, August 1998.

[GAO95] David Garlan, Robert Allen, and John Ockerbloom. "Architectural Mismatch: Why Reuse Is So Hard". IEEE Software 12(6): 17-26, November 1995.

[Gru94] Jonathan Grudin. "CSCW: History and Focus". IEEE Computer 27(5):19-27, May 1994.

[HLK95] C. Heitmeyer, B. Labaw, and D. Kiskis. Consistency checking of SCR-style requirements specifications. In RE’95: Second IEEE International Symposium on Requirements Engineering, pages 56–63, March 1995.

[Hen80] Kathryn L. Heninger. "Specifying Software Requirements for Complex Systems: New Techniques and Their Application". IEEE Transactions on Software Engineering SE-6(1):2-13, January 1980.

[HR98] David Hilbert and David Redmiles. "An Approach to Large-Scale Collection of Application Usage Data Over the Internet". In Proc. 20th International Conference on Software Engineering, pp. 136-145, Kyoto, Japan, April 1998.

[KLM+97] Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes,
Jean-Marc Loingtier, John Irwin. "Aspect-Oriented Programming." Proceedings of the European Conference on Object-Oriented Programming (ECOOP), Finland. Springer-Verlag LNCS 1241. June 1997.

[McI68] M.D. McIlroy, "'Mass Produced' Software Components". In Software Engineering: A Report on a Conference Sponsored by the NATO Science Committee, P. Naur and B. Randell (eds.), pp. 138-155, Garmisch, Germany, October 1968.

[Nut96] G. Nutt. "The Evolution Towards Flexible Workflow Systems". Distributed Systems Engineering 3(4):276-294, December 1996.

[OHR00] Alessandro Orso, Mary Jean Harrold, and David S. Rosenblum."Component Metadata for Software Engineering Tasks". In Proc. 2nd International Workshop on Engineering Distributed Objects, Davis, CA, November 2000.

[OLK+00] R. van Ommering, F. van der Linden, J. Kramer and J. Magee. "The Koala Component Model for Consumer Electronics Software". IEEE Computer 33(3):78-85, March 2000.

[Ost87] Leon J. Osterweil. "Software Processes Are Software Too". In Proceedings of the 9th International Conference on Software Engineering, pp. 2-13, Monterey, CA, March 1987.

[Par93] D. L. Parnas. "Predicate Logic for Software Engineering". IEEE Transactions on Software Engineering 19(9):856-862, September 1993.

[PC86] D. L. Parnas and P. C. Clements. "A Rational Design Process: How and Why to Fake It". IEEE Transactions on Software Engineering SE-12(2):251-257, February 1986.

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

[RHR98] J. Robbins, D. Hilbert and D. Redmiles. "Extending Design Environments to Software Architecture Design". Automated Software Engineering 5(3):261-290, July 1998.

[S02] W. Scacchi, "Process Models in Software Engineering", in J. Marciniak (ed.), Encyclopedia of Software Engineering, (2nd. Edition), 993-1005, Wiley-Interscience, 2002.

[TDBL00] Peri Tarr, Maja D’Hondt, Lodewijk Bergmans, and Cristina Videira Lopes. "Workshop on Aspects and Dimensions of Concern: Requirements on, and Challenge Problems For Advanced Separation Of Concerns" Published in ECOOP’2000 Workshop Reader. Springer-Verlag LNCS 1964. 2000.

[TGC95] E. Tryggeseth, B. Gulla and R. Conradi. "Modelling Systems with Variability using the PROTEUS Configuration Language". In Proc. 5th International Workshop on Software Configuration Management (Springer-Verlag Lecture Notes in Computer Science 1005), pp. 216-240, Seattle, WA, April 1995.

[TMA+96] Richard N. Taylor, Nenad Medvidovic, Kenneth M. Anderson, E. James Whitehead, Jr., Jason E. Robbins, Kari A. Nies, Peyman Oreizy, and Deborah L. Dubrow. "A Component- and Message-Based Architectural Style for GUI Software". IEEE Transactions on Software Engineering 22(6):390-406, June 1996.

[vLW98] Axel van Lamsweerde and Laurent Willemet. Inferring declarative requirements
specifications from operational scenarios. IEEE Transactions on Software
Engineering, 24(12):1089–1114, December 1998.

[Wey82] Elaine J. Weyuker. "On Testing Non-Testable Programs". The Computer Journal 25(4): 465-470, November 1982.

[Wey86] Elaine J. Weyuker. "Axiomatizing Software Test Data Adequacy". IEEE Transactions on Software Engineering SE-12(12):1128-1138, December 1986.

[Win90] Jeannette M. Wing. "A Specifier's Introduction to Formal Methods". IEEE Computer 23(9):8-24, September 1990.

[YT89] Michal Young and Richard N. Taylor. "Rethinking the Taxonomy of Fault Detection Techniques". In Proceedings of the 11th International Conference on Software Engineering, pages 53-62, Pittsburgh, May 1989.

Assignments and Assessment

NOTE: There will be NO incompletes ("I" grades) given in this class. You must finish all work for the class by the end of the final exam.



Thomas Alspaugh


Paul Dourish

André van der Hoek

Alfred Kobsa

David F. Redmiles

Debra Richardson

Walt Scacchi

Richard N. Taylor



Department of Information and Computer Science
University of California, Irvine
Last updated November 26, 2002 16:45