(formerly ICS 221)
Fall Quarter 2006
Last update: November 30, 2006
(taylor [at] ics [dot] uci [dot] edu)
| After class, or by email appointment
Tuesday and Thursday 8:00-9:20 a.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.
|Week||Date||Topic||Presented by||Readings||Assignment due|
|26 Tu||Course introduction|
Overview of software engineering
|3 Tu||Overview of SE, continued|
Issues, Application, Project
|Book excerpt, Chapter 2|
CTTC for Wk 1
|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)
|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|
|6 ||31 Tu||
van der Hoek
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|
|9||21 Tu||Analysis & Testing||Richardson||
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|
Issues, Application, Project
|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|
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:
|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.)
[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= http://doi.acm.org/10.1145/337180.337228
[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.