CSE P503,
Spring 2009: Principles of Software Engineering
UW CSE Professional Masters Program
Extension policy! Sent this by email, but not everybody got it --
sorry! I have had a few
requests for extensions on the Alloy
assignment. I will now create a late policy: everybody in
the class
has four late days over the quarter, which can be applied (as full
days) to any
combination of assignments. After those are gone, 5% penalty per
day.
- Lecture Th 6:30-9:30PM
in EEB 031
- Instructor David Notkin
(notkin@cs)
- Office hours: I will
generally try to be available for the 30 minutes before class, try to
stick around after for questions, to answer email, and to take calls
about the course (x5-3798).
- TA Suporn Pongnumkul
(suporn@...)
- Mailing list csep503a_sp09@u.washington.edu
- Membership
will
be automatically managed based on official class lists
- Postings from other than your .u email account may be delayed
until approved for posting
- Class
wiki You will need a CSENetID to access this wiki; PMP students
should already have one and GNM students will be getting one by Friday
April 3, 2009, via Dave Rispoli. (If you are in the PMP and have
forgotten yours, check with Dave about how to resurrect the
information.)
- Readings The readings for the course are
listed
below.
- Access to many of the readings is through DOI's (digital object identifiers),
most commonly into the ACM and IEEE Digital Libraries, which usually
will require you to be logged in from a UW IP address for licensing
reasons. (Also see http://lib.washington.edu/help/proxytools.html
for a way -- so it says -- for accessing these resources from a non-UW
IP address.) Some of the readings may be available elsewhere on the
Internet.
- There is no text book for the course. Here are some books that have
been recommended or required in software engineering courses elsewhere.
- Read prior to lecture on
- April 9, 2009 (specifications)
- April 16, 2009 (Alloy and bounded model checking)
- April 23, 2009 (design)
- Examinations By
University rule, an instructor is allowed
to dispense with a final examination at the scheduled time
(6:30-8:20PM, Thursday June 11, 2009) with unanimous consent of the
class. If you prefer to
have a final examination for the entire class, you must let me
know by
the 6:00PM before the second lecture (April 9, 2009).
- Lectures Notes will
generally be linked to the date in the calendar below after the lecture.
- Assigned work Barring the need for a final, there four
major
assignments in the course, each worth 25% of the total grade. For
projects done in groups, the very
strong expectation is that a single grade will be shared equally among
all
participants in the group.
- Essay on software
engineering. Due 6:00PM on Thursday April 16, 2009. You
are to write a 5-10 page articulate, well-reasoned essay, with
appropriate citations about one of the three topics listed below.
(I recommend that you skim the materials for each of the first and
third topics, for your own interest as well as to help you pick a
topic.) You will submit the essay on the wiki, visible to all
participants in
the class; one-fifth of your grade for the essay will depend on
comments you make (as of Wednesday
April 22, 2009 at 6PM) via the wiki on essays written by
your classmates. The three topics are:
- Consider the 1968 and 1969 NATO Software
Engineering Conferences. (These 40 year-old documents are
long but quite easy and fascinating to read.) Characterize issues
that (a) have been solved, (b) are no longer material, and (c) are
still pertinent but remain unsolved. Also identify current
technologies, methodologies, etc. (if any) that are argued to address
the pertinent-but-not-yet-solved issues.
- Consider three or four "software disasters" not discussed
in class (some basic web searching will identify a number of
these). Describe each of them with some care and provide a
thoughtful analysis of the core causes of each disaster. Pick
disasters for which there is a non-trivial analysis. Conclude the
essay with an assessment of the way these disasters are generally
presented in comparison to your own analysis.
- Consider the SWEBOK Guide,
Chapter 1, "Introduction to the Guide" (found in several formats at the
site) and "An
Assessment of Software Engineering Body of Knowledge Efforts", A
Report to the ACM Council (May 2000, by Notkin, Gorlick and
Shaw).
Thoughtfully argue that the SWE Body of Knowledge guide is or is not an
appropriate basis for the licensing of software engineers: citations to
supporting documents is essential. (Note, too, that
Notkin-Gorlick-Shaw report is nearly a decade old, which is a long,
long time; in other words, don't just mimic that report.)
- Alloy assignment. Due
6:00PM on Thursday April 30, 2009.
http://alloy.mit.edu/community/ for downloads, etc. Can be done
in groups.
- State-of-the-research
report. Due 6:00PM on Thursday May 21, 2009. This is a
secondary research report that requires the definition of a topic, and
approval by me, identification of pertinent papers and materials
(perhaps with help from me), perhaps some hands-on experience for some
kinds of
topics, and finally a scholarly report on the topic and your analysis
of it,
complete with citations, open questions, etc. The list of potential
topics is enormous, but perhaps a few examples might help:
state-of-the-research in ... symbolic execution, random testing, code
searching, reliability models, software inspections, program slicing,
automatic
theorem proving, clone analysis, ….. On the whole, the
following papers from an ICSE 2000 "future of software engineering"
track are in roughly the style I'd like http://www.informatik.uni-trier.de/~ley/db/conf/icse/future2000.html is
the whole list (in the ACM Digital
Library) Some are much better than
others, and the part that looks to the future could/should be reduced
with an
added focus on current status. But still, the feel is
reasonable. As for length, roughly the
same as these (10 conference pages) is fine, but I'm flexible within
reason. Submitted through the wiki, and commenting is once again
expected (but I won't grade for it directly).
- Assignment 4. Due 6:00PM on Monday June 8, 2009. A
choice of
- Proposed
curriculum per last week’s email
- A shorter (5 page) additional research paper on a different
topic (no approval is needed, but be reasonable)
- An Alloy model for something you work on and want to
understand
better (no need to break NDA)
- Academic misconduct is a
very serious offense and will be dealt with through
the departmental, college and university processes. Copying others'
work, including from this or
previous quarters or from publicly available sources without
attribution, is considered cheating. If in doubt about what might
constitute cheating, send the instructor
email describing the situation. For more details see the CSE Academic
Misconduct web page.
Portions of the CSE P503 Web
may
be reprinted or adapted for academic nonprofit purposes, providing the
source is accurately quoted and duly credited. The CSE P503 Web: ©
1993-2009, Department of Computer Science and Engineering, University
of Washington.