CSE503: Software Engineering
David Notkin
University of Washington, Computer Science & Engineering
Winter 2008
Last Updated: 02/22/2008 03:42 PM
Recent changes:
- Alloy assignment.
- Feb 19 slides on Lackwit,
Daikon, etc. (better viewed in IE right now...another format coming)
- I am in Washington DC on Monday-Tuesday February 25-26 for the CRA Board
meeting. Tuesday's class will consist of watching a video of Michael
Jackson's keynote address from ICSE 1995.
- Alloy assignment will be (a) in groups, if you want (maximum of three),
(b) on the elevator specification, and (c) due March 6.
- Notes on analysis.
- Slides on formal methods and
model checking.
- Slides on design history
- More papers to read listed below.
- Summary of "open questions" and initial design slides.
- My research slides
and Marius' configuration research slides.
- Pro/con documents from debates posted below.
- Send me "votes" on the debate that you watched but did not
participate in.
- Remember: By January 22, each of you must individually email to us a set of
3-5 bullets on what you find are key open questions about software
engineering/software engineering research after the readings,
writings, and debates.
- Most strikeouts removed.
- cse503@cs.washington.edu
mailing list activated.
- Course has moved to CSE 203.
- We will only have two groups for the "debate" day -- the second
("crisis") and third ("empirical"); in class on Thursday
people will sign up for preferred groups and I'll make the final assignment
later Thursday by email.
- The day of the "debates", and the due day for the document, is
shifted to Thursday January 17 -- two days later. Some other dates
have been adjusted as well.
(Last things first) Final Examination: By University rule, an instructor is allowed
to dispense with a final examination at the scheduled time (10:30-11:50AM, March
17, 2008) only with unanimous consent of the class. If you prefer to
have a final examination for the entire class, you must let me know by
10:30AM before the third lecture (January 15, 2008).
Contact information and office hours: notkin@cs.washington.edu
, CSE 542, x5-3798. I prefer not to have specific office hours, but I am
happy to have drop-ins whenever my door is open, and I am usually able to set up
meetings on quite short notice to answer questions, have discussions, etc., with
individuals or groups. (If the class prefers to have regularly scheduled
office hours, I'm happy to do that.)
TA: Marius Nita (marius@cs.washington.edu)
Location and time: CSE 203, 10:30-11:50AM Tuesday and Thursday
Syllabus and required work:
Is software engineering really "engineering"? Should software
engineers be licensed? Is there really a software crisis? What is
software engineering research? How do we evaluate such research? Has
software engineering improved over the past 40 years? Why do software
systems fail so often? Why are they so costly? Isn't
"agile" or "aspect-oriented" or "end-user" or
"types" or something else actually the silver bullet? What are
some "cool" research results, "hot" industrial tools and
approaches, etc.? The goal of this course is to get you to develop your
own rational, thoughtful, well-reasoned answers to these questions -- I already
have my own points of view, of course!
The lecture schedule is divided into the following topics, which are by no
means intended to be a complete representation of the field. It is
also a fluid list -- in particular, if there is a strong feeling among the class
that there are other topics we ought to cover instead, I'll look seriously at
those ideas. And the specifics are subject to change, regardless.
- Overview (and debates): January 7, 9, 15
- Required readings -- for this set of readings, you needn't read each and every
page in these documents, but the core arguments and reasoning are
essential
- Fredrick P. Brooks, Jr. "No
Silver Bullet: Essence and Accidents of Software Engineering",
Computer, April 1987. This is also found in Brooks'
Mythical Man-Month (25th Anniversary Edition).
- The 1968 and 1969 NATO
Software Engineering Conferences (Naur and Randell, Randell
and Buxton, editors, respectively). These are long
documents, but quite easy (and fascinating) to read.
- The SWEBOK Guide, Chapter
1, "Introduction to the Guide" (found in several
formats at the site).
- David Notkin, Michael Gorlick, Mary Shaw. "An
Assessment of Software Engineering Body of Knowledge Efforts",
A Report to the ACM Council (May 2000).
- De Millo, R. A., Lipton, R. J., and Perlis, A. J. Social
processes and proofs of theorems and programs. Commun. ACM
22, 5 (May. 1979), 271-280. http://doi.acm.org/10.1145/359104.359106
- Walter F. Tichy, Paul Lukowicz, Lutz Prechelt, Ernst A. Heinz. Experimental
Evaluation in Computer Science: A Quantitative Study. Journal of
Systems and Software 28(1):9-18, January 1995.
- Required work (10% of
total course grade)
- The class will be divided into
three two groups, with each group
having two parts, and each part having at least two people. The groups will focus
on the following three two topics:
- One part of each group will produce a 3-5 page document arguing
the "for" side of the topic, and the other part of the
group will do the same for the "against" side of the
topic. These brief documents are expected to be based on your
readings (above and others, if you wish), scholarly, and to the
point; they are due by the beginning of class on January 17.
- On January 17, we will have three 30 minute debates on each of the
topics: in the debate (details of the format still to be decided),
the "for" and "against" parts of each group did
not
will
swap positions.
- By January 22, each of you must individually email to us a set of
3-5 bullets on what you find are key open questions about software
engineering/software engineering research after the readings,
writings, and debates.
- Process: January 17
- Project area overviews: January 22
- No required readings (subject to change)
- Presentations in class on areas of particular interest for research
projects (software configurations, mining software repositories, etc.)
- Required work
- Small group research project (50%
of total course grade)
- In groups of 2-4 (which you can form on your own, with my
approval), write a roughly one-page proposal for a small-scale
software engineering research project. This is due January 29,
but discussions (electronic and otherwise) with Marius and me
beforehand are highly recommended.
- All groups will make presentations to the rest of the class on
March 13.
- Write-ups, roughly in the style of a tech report or a
conference paper, are due on March 17 at noon.
- In general, members of a group will share the same grade,
although exceptions aren't excluded for appropriate situations.
- Design: January 24, 29, 31, February 5
- Parnas, D. L. On
the criteria to be used in decomposing systems into modules. Commun.
ACM 15, 12 (Dec. 1972), 1053-1058.
- David L. Parnas. Designing software for
ease of extension and contraction. IEEE Trans. Software Eng. SE-5, 2
(1979).
- Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda,
Cristina Videira Lopes, Jean-Marc Loingtier, and John Irwin.
Aspect-Oriented Programming.
Proceedings of the European Conference on Object-Oriented Programming (ECOOP),
Finland. Springer-Verlag LNCS 1241. June 1997.
- Erich Gamma, Richard Helm, Ralph E. Johnson, John M. Vlissides:
Design Patterns: Abstraction and
Reuse of Object-Oriented Design. ECOOP 1993: 406-431
- David Garlan and Mary Shaw.
An Introduction to
Software Architecture. CMU Tech Report, January 1994.
- Specification and Analysis: February 7, 12, 14
- There will be an assignment using Daniel Jackson's Alloy system, due
at the beginning of lecture on February 28 (20%
of total course grade)
- Daniel Jackson and Martin Rinard.
Software analysis: a
roadmap. ICSE '00: Proceedings of the Conference on The Future of
Software Engineering (2000).
- Testing: February 19, 21
- TBA: February 26 (Notkin in Washington DC for CRA Board meeting)
- Tools and environments: February 28, March 4, 6
- So, what did we learn?: March 11
- Project presentations: March 13
- The remaining 20% of the
course grade will be based on brief summaries/Q&A about 10 of the papers
assigned.