(formerly ICS 221)
Fall Quarter 2007
Last update: December 6, 2007
(taylor [at] ics [dot] uci [dot] edu)
| After class, or by email appointment
Tuesday and Thursday 3:30 - 4:50 p.m., CS243
Description - Schedule - Grading - Readings - Policies
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. Note also that initially the hyperlinks are set to last year's lecture notes. They are being updated incrementally (i.e. just after the lectures are given) to correspond to the lecture slides used this year.
|Week||Date||Topic||Presented by||Readings||Assignment due|
|27 Th||Course introduction|
Overview of software engineering
|Book excerpt, Chapter 2|
CTTC for Wks 0 & 1
Design and Architecture
|3||16 Tu||Design and Architecture, continued||Taylor||
Book excerpt, Chapter 4
CTTC for Wk 2
Reqts. spec for lunar lander due. See email of 10/9/07 for detailed instructions.
|18 Th||Programming Languages in Software Engineering||Lopes
Book excerpt, Chapter 9
|CTTC for Wk 3. Note please omit McIlroy's paper from your CTTC, and you may choose to omit from your summary (but not your reading!) either [TMA+96] or [Baj06]. You do need to include Chapter 4. Thus your CTTC will cover 3 papers.|
|25 Th||Software Engineering aspects of Ubicomp||
| 5 ||30 Tu||Issues, Application, Project||Taylor||CTTC for Wk 4|
POSTPONED until December 4th
[FT02] (see note below for shorter version)
CTTC for Wk 5
Issues, Application, Project
||Design assignment for lunar lander due.|
|7||13 Tu||Program Comprehension||Sim
|CTTC for Wk 6|
|15 Th||Software Adaptation||Taylor|
Issues, Application, Project
|22 Th||Thanksgiving Holiday||
|9||27 Tu||Analysis & Testing||Ziv||[Wey82] [CPR+89]||
CTTC for Wk 8 & Wk 7
|29 Th||Software Engineering and HCI||Redmiles|
|10||December||4 Tu||van der Hoek||See above for November 1st.||CTTC for week 9|
|6 Th||Issues, Application, Project||Taylor|
|Exam||11 Tu||Exam from 4:00-6:00||Taylor||Final project installment due 12/13, by midnight|
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 <tbd> Details of this project will be forthcoming.
The short paper analyses "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 analysis of each week's papers. The 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:
|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,
(Also appears as Chapter 16 in F.P. Brooks. The Mythical Man-Month, 25th Anniversary Edition. Addison-Wesley, Reading, MA, 1995.)
[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= http://doi.acm.org/10.1145/337180.337228
[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.
[KMCA06] Ko, A.J. Myers, B.A. Coblenz, M.J. Aung, H.H. An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks. IEEE Transactions on Software Engineering, Vol. 32, No. 12 (Dec. 2006)
[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.
[Ost07] Osterweil, L. A Future for Software Engineering? Future of Software Engineering (FOSE '07) pp. 1-11. http://doi.ieeecomputersociety.org/10.1109/FOSE.2007.1
[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).
[Sca07] W. Scacchi, Free/Open Source Software Development: Recent Research Results and Methods, in M.V. Zelkowitz (ed.), Advances in Computers, 69, 243-295, 2007. http://www.ics.uci.edu/%7Ewscacchi/Papers/New/Draft_Chapter_Scacchi.pdf
[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.
[TvdH07] Richard N. Taylor and Andre van der Hoek. “Software Design and Architecture: The once and future focus of software engineering.” In Future of Software Engineering 2007. Edited by Lionel C. Briand and Alexander L. Wolf. pp. 226-243. IEEE Computer Society (2007). http://doi.ieeecomputersociety.org/10.1109/FOSE.2007.21
[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 online evaluation window for fall quarter will run from 7pm Friday, November 30 through 11:45pm Sunday, December 9.
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.