|
|||||
|
|||||
|
|||||
Electronic Mail: dsr@ics.uci.edu
Office: ICS2-209
Office Phone: (949) 824-6534
Fax: (949) 824-1715
Office Hours: Tuesdays and Thursdays 2:15 PM-3:15 PM; please send email to guarnatee an appointment.
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 knowledgable 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.
Week |
Date |
Topic |
Suggested Textbook |
|||
1 |
29 September |
Course Introduction Overview of Software Engineering |
Rosenblum |
|
[Bro87] | Ch. 1-3 |
1 October |
Software Processes |
Rosenblum |
|
[Ost87] [WR93] | Ch. 7, 8 | |
2 |
6 October |
Computer-Supported Cooperative Work and Workflow |
Redmiles |
|
[Gru94] [EN96] | Ch. 9 |
8 October |
Software Requirements |
Rosenblum |
Week 1 Summaries |
[Hen80] | ||
3 |
13 October |
High-Level Requirements |
King |
|
||
15 October |
User Interfaces and Hyperware |
Taylor |
Week 2 Summaries |
[TNB+95] | ||
4 |
20 October |
Software Architecture |
Rosenblum |
|
[PW92] [MR97] | |
22 October |
Distributed Component-Based Systems |
Rosenblum |
Week 3 Summaries |
[RW97] [DR98] | ||
5 |
27 October |
Design and Human-Computer Interaction |
Redmiles |
|
[PC86] [FGNR92] | Ch. 4 |
29 October |
Environments and Interoperability |
Taylor |
Week 4 Summaries |
[TM81] [Kad92] | ||
6 |
3 November |
Dynamic Architectures |
Oreizy |
|
||
5 November |
Extensible Software Systems |
Franz |
Week 5 Summaries |
[Fra97] | ||
7 |
10 November |
Formal Specification Methods |
Richardson |
|
[Par93] [Win90] | Ch. 5 |
12 November |
Verification and Validation |
Richardson |
Week 6 Summaries |
[ABC82] [YT89] | Ch. 6 | |
8 |
17 November |
Software Testing Theory and Regression Testing |
Rosenblum |
1-paragraph |
[Wey86] [RH96] | |
19 November |
Formal Analysis and Specification-Based Testing |
Richardson |
Week 7 Summaries |
[AG93] [Ric94] | ||
9 |
24 November |
Student Presentations (5 minutes each) |
Rosenblum |
|||
26 November |
Thanksgiving--NO CLASS | |||||
10 |
1 December |
Software Safety and Legal Issues |
Turner |
Week 8 Summaries | [Lev86] [Kan95] | |
3 December |
Student Presentations (5 minutes each) |
Rosenblum |
Week 9 Summaries |
|||
Finals |
Tuesday |
Final Exam (4-6 PM) |
Rosenblum |
Term Papers |
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) are also assigned to supplement the text as indicated in the course schedule (and these are subject to change by the lecturers).
[ABC82] W. Richards Adrion, Martha A. Branstad, and John C. Cherniavsky. "Validation, Verification, and Testing of Computer Software". ACM Computing Surveys, 14(2):159-192, June 1982.
[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.
[Bro87] Frederick P. Brooks. "No Silver Bullet: Essence and Accidents of Software Engineering". IEEE Computer, 20(4):10-19, April 1987.
[DR98] Elisabetta Di Nitto and David S. Rosenblum, "Exploiting ADLs to Specify Architectural Styles Induced by Middleware Infrastructures", submitted to the 21st International Conference on Software Engineering, August 1998.
[EN96] Clarence A. Ellis and Gary J. Nutt. "Workflow: The Process Spectrum". In Proceedings of the NSF Workshop on Workflow and Process Automation in Information Systems: State-of-the-Art and Future Directions, pp. 140-145, Athens, GA, May 1996.
[FGNR92] Gerhard Fischer, Andreas Girgensohn, Kumiyo Nakakoji, and David Redmiles. "Supporting Software Designers with Integrated Domain-Oriented Design Environments". IEEE Transactions on Software Engineering, 18(6):511-522, June 1992.
[Fra97] Michael Franz. "Dynamic Linking of Software Components". IEEE Computer, 30(3):74-81, March 1997.
[Gru94] Jonathan Grudin. "CSCW: History and Focus". IEEE Computer, 27(5):19-27, May 1994.
[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.
[Kad92] R. Kadia. "Issues Encountered in Building a Flexible Software Development Environment: Lessons Learned from the Arcadia Project". In Proceedings of ACM SIGSOFT '92: Fifth Symposium on Software Development Environments, pp. 169-180, December 1992.
[Kan95] Cem Kaner. "Software Negligence and Testing Coverage". The Software QA Quarterly, 2(2), 1995.
[Lev86] Nancy G. Leveson. "Software Safety: What, Why, and How". ACM Computing Surveys, 18(2):125-163, June 1986.
[MR97] Nenad Medvidovic and David S. Rosenblum. "Domains of Concern in Software Architectures and Architecture Description Languages". In Proceedings of the 1997 USENIX Conference on Domain Specific Languages, pp. 199-212, Santa Barbara, CA, October 1997.
[Ost87] Leon J. Osterweil. "Software Processes Are Software Too". In Proceedings of the 9th International Conference on Software Engineering, pages 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.
[RH96] Gregg Rothermel and Mary Jean Harrold. "Analyzing Regression Test Selection Techniques". IEEE Transactions on Software Engineering, 22(8):529-551, August 1996.
[Ric94] Debra J. Richardson. "TAOS: Testing with Analysis and Oracle Support". In Proceedings of the 1994 International Symposium on Software Testing and Analysis, pp. 138-153, Seattle, August 1994.
[RW97] David S. Rosenblum and Alexander L. Wolf. "A Design Framework for Internet-Scale Event Observation and Notification". In Proceedings of the 6th European Software Engineering Conference/5th ACM SIGSOFT Symposium on the Foundations of Software Engineering, pp. 344-360, Zurich, Switzerland, September 1997.
[TM81] W. Teitelman and L. Manister. "The Interlisp Programming Environment". IEEE Computer, 14(4):25-33, April 1981.
[TNB+95] Richard N. Taylor, Kari A. Nies, Gregory Alan Bolcer, Craig A. MacFarlane, Kenneth M. Anderson, and Gregory F. Johnson. "Chiron-1: A Software Architecture for User Interface Development, Maintenance, and Run-Time Support", ACM Transactions on Computer-Human Interaction, 2(2), June 1995.
[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.
[WR93] Alexander L. Wolf and David S. Rosenblum. "A Study in Software Process Data Capture and Analysis". In Proceedings of the Second International Conference on the Software Process, pp. 115-124, Berlin, Germany, February 1993.
[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.
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.