CSEP504: Advanced Topics in Software Systems
- Lecture M 6:30-9:30PM
in CSE 305 and by video through the UW CSE PMP program
- Staff
- Instructor David
Notkin
(notkin@cs)
- I will
generally try to be available for 10-15 minutes before class, try to
stick around after for questions, to answer email, and to take calls
about the course (206-685-3798).
- Mailing list csep504a_wi10@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 (and you are responsible for looking at your
.u
email directly or via forwarding or however you
prefer.
- Schedule (lecture
slides, lecture videos)
- January 4: Introduction and Software Architecture I
- January 11: Software Architecture II
- January 18: no class, MLK holiday
- January 25: Software Architecture III (Yuriy Brun lectures,
Notkin in Atlanta for dissertation proposal)
- February 1: Tools I
- February 8: Tools II
- February 15: no class, Presidents' Day holiday
- February 22: Tools III (Reid Holmes lectures, Notkin en route
to Mysore, India @ ISEC 2010)
- March 1: TBA I
- March 8: TBA II
- March 15: final lecture or final
- Assigned Work
- Structured, 200-400 word
reports on your choice of 10 assigned papers during the quarter (20% of
grade, 2% each). The following suggested lengths are
guidelines: you can use the space differently. But I-IV must be
addressed explicitly. You must do these individually.
- 1-2 sentences: what is the major claim of the paper?
- 2-3 sentences: what is the form of the evidence supporting
the claim?
- 2-3 sentences: what are the strongest points of the paper?
- 2-3 sentences: what are the weakest points of the paper?
- Remainder: other comments/questions about the work.
- Due dates (they can come in earlier, and they don't have to
submitted two at a time); submit using the following Catalyst dropbox
(you'll need your UW NetID)
- 1st and 2nd: due 11PM Sunday January 17th
- 3rd and 4th: due 11PM Sunday January 31th
- 5th and 6th: due 11PM Sunday February 14th
- 7th and 8th: due 11PM Sunday February 28th
- 9th and 10th: due 11PM Sunday March 14th
- Two state-of-the-research
reports (60% of the grade, 30% each). These are secondary
research reports on topics that you select – and we approve – within
the scope of the three parts of the course, with identification of
pertinent papers and materials (perhaps with help from us), perhaps
some hands-on experience for some kinds of topics, and a written,
scholarly report on the topic and your analysis of it, complete with
citations, open questions, etc. 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-12 conference pages) is fine, but I'm flexible within
reason. Due dates are yet to be decided. There will be an
earlier due date (for each report) for the agreement upon a topic, a
first-cut at papers to read, identification of the group (if any),
etc. The reports will be posted for comment by the staff and
other students in the course (details forthcoming).
- Report #1: (a) project proposal approved by email by Tuesday
January 26, 8PM; (b) report due Sunday February 7, 11PM.
- Report #2: (a) proposal Tuesday February 23, 8PM; (b) report
due Sunday March 14, 11PM. (I will be in India on the proposal
due date; we may have to work out details about the approvals.)
- Class participation during lecture
and on online
forums (10%).
- 10% to be decided.
- 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; I often remote login to do this. (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.
- Software architecture readings (you are expected to read all of
these, except as noted -- even with only 10 selected for reports) --
more may be posted for architecture
- Dewayne E. Perry and Alexander L. Wolf. "Foundations for the
Study of Software Architecture." ACM SIGSOFT Software Engineering
Notes, 17:4 (October 1992).
http://doi.acm.org/10.1145/141874.141884
- David Garlan and Mary Shaw. An introduction to software
architecture. (CMU
Tech
Report)
- Mary Shaw and Paul Clements, "The Golden Age of Software
Architecture" IEEE Software, 23(2):31-39, (March/April 2006). http://doi.ieeecomputersociety.org/http://dx.doi.org/10.1109/MS.2006.58
- Jeffrey O. Kephart and David M. Chess, "The Vision of
Autonomic Computing." IEEE Computer, 36(1):41-50, (January 2003) http://doi.ieeecomputersociety.org/10.1109/MC.2003.1160055
- [Skim only] Leonard M. Adleman. "Molecular computation of
solutions to
combinatorial problems." Science. (November 1994)
11;266(5187):1021-1024 (Science reprint)
- Yuriy Brun, "Arithmetic Computation in the Tile Assembly
Model: Addition and Multiplication." Theoretical Computer Science,
378(1):17-31 (June 2007). http://dx.doi.org/10.1016/j.tcs.2006.10.025
- [Structured report not allowed; and I haven't read this yet]
Grady Booch. Architecture as a Shared Hallucination. IEEE
Software 27,1 pp.96-95, Jan.-Feb. 2010. http://doi.ieeecomputersociety.org/10.1109/MS.2010.4
- Garlan, D., Allen, R., and Ockerbloom, J. 1995. Architectural
Mismatch: Why Reuse Is So Hard. IEEE Softw. 12, 6 (Nov. 1995), 17-26. http://dx.doi.org/10.1109/52.469757
- Betty H.C. Cheng, Rogério de Lemos, Holger Giese,
Paola Inverardi, and Jeff Magee (Dagstuhl Seminar Organizer Authors) Software Engineering for Self-Adaptive Systems:
A Research Roadmap (2009).
- Software tools readings -- more may be added.
- How Software
Developers Use Tagging to Support Reminding and Refinding. Storey,
Ryall, Singer, Myers, Cheng, Muller. TSE. 2009. http://doi.ieeecomputersociety.org/10.1109/TSE.2009.15
- Using task context to improve programmer productivity.
Kersten and Murphy. FSE. 2006. http://doi.acm.org/10.1145/1181775.1181777
- Hipikat: A project memory for software development. Čubranic,
Murphy, Booth and Singer. IEEE TSE. 2005. http://doi.ieeecomputersociety.org/10.1109/TSE.2005.71
- Easing program comprehension by sharing navigation data.
DeLine, Czerwinski, Robertson. VL/HCC. 2005. http://doi.ieeecomputersociety.org/10.1109/VLHCC.2005.32
- NavTracks: Supporting Navigation in Software Maintenance.
Singer, Elves, and Storey. ICSM. 2005. http://dx.doi.org/10.1109/ICSM.2005.66
- Murphy, Notkin, and Sullivan. Software Reflexion Models:
Bridging the Gap Between Design and Implementation. IEEE TSE.
2001. http://doi.ieeecomputersociety.org/10.1109/32.917525
- The
Programmer's Apprentice: A Research Overview. Rich and Waters.
Computer. 1988. http://dx.doi.org/10.1109/2.86782
- No Silver
Bullet Essence and Accidents of Software Engineering. Brooks. Computer.
1987. http://dx.doi.org/10.1109/MC.1987.1663532
- 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.