Students must hand in a short review of every paper that is assigned. To help
us take the best advantage of our short time together in lecture, reading a
lecture's papers and doing the reviews must be completed before the lecture.
Each review consists of the following parts:
- A one-paragraph summary of the paper, plus answers to the following
questions:
- To which general class(es) of software is the technology best suited?
e.g. consumer products, desktop applications, mission- or safety-critical
software, &c
- In which part of the development cycle should the technology be applied?
- How did the author(s) validate the technology?
- Rob Seater and Greg Dennis, "Alloy 2.0 Tutorial" (This is an interactive web site).
- MIT Software Design Group, "Micromodels of software: Lightweight modelling and analysis with Alloy" (Alloy Reference Manual) [PDF].
You should go through the Alloy tutorial, which includes downloading and running
the Alloy tool. We'll be using Alloy in Assignment 1, so the tutorial
will give you needed practice. (If you have problems downloading or
running Alloy, please post a message to the mailing list, since other
students will likely have the same problem.) You should also skim the
reference manual, which covers the language constructs in more
detail. Both the tutorial text and reference manual have bugs and
omissions, but we can work around them.
Again, treat both documents as a single reading to review.
- Daniel Jackson. "Railway safety". (A quick note on modeling) [PDF].
- Sarfraz Khurshid and Daniel Jackson. "Exploring the Design of an Intentional Naming Scheme with an Automatic Constraint Analyzer." 15th IEEE International Conference on Automated Software Engineering (ASE 2000), September 2000. [PDF]
- Mana Taghdiri. "Analyzing multicast key management schemes". Master's Thesis, Massachusetts Institute of Technology, 2002. [PDF]
You don't need to read the entire master's thesis cover to cover. Concentrate on Chapter 4 and skim Chapters 5 and 6. You should read these papers not for their subject matter but as examples of uses of Alloy (and as validation of Alloy as a tool).
- P. Maggi and R. Sisto, "Using SPIN to verify security properties of cryptographic protocols," 9th Spin Workshop [PDF]
- Shin Nakajima and Tesuo Tamai, "Behavioral analysis of the Enterprise JavaBeans(tm) component architecture", 8th Spin Workshop [PDF].
- Cedric Fournet, Tony Hoare, Sriram K. Rajamani, and Jakob Rehof. "Stuck-free conformance." To appear in CAV 2004. (See me for a copy.)
- Zing language specification. [Doc]
- Zing user's manual. [Doc]
- C.A.R. Hoare, "An axiomatic basis for computer programming," Communications of the ACM 12(10):576-580. [PDF]
- Edsger W. Dijkstra, "Guarded commands, nondeterminacy and formal derivation of programs," Communications of the ACM 18(8):453-457. [PDF]
- Cormac Flanagan, K. Rustan M. Leino, Mark Lillibridge, Greg Nelson, James B. Saxe, and Raymie Stata, "Extended static checking for Java", Proceedings of PLDI 2002 [PS]
- Lilian Burdy, Yoonsik Cheon, David R. Cok, Michael D. Ernst, Joseph R. Kiniry, Gary T. Leavens, K. Rustan M. Leino, and Erik Poll, "An overview of JML tools and applications" [PDF]
- D.L. Parnas, "On the criteria to be used in decomposing systems into modules", Communications of the ACM 15(12):1053-1058. [PDF]
- P. Tarr, H. Ossher, W. Harrison, S.M. Sutton, Jr. "N Degrees of Separation: Multi-Dimensional Separation of Concerns", ICSE 1999. [PDF] Read only chapter 1 and 2.
- G. Kiczales et al. "An Overview of AspectJ", ECOOP 2001. [PDF] Read chapter 1-3 and skim other chapters.
-
Coad, "Object-oriented patterns", CACM 35(9)[PDF]
- Garlan, Jha, Notkin and Dingel, "Reasoning about implicit invocation", ICSE '98[PDF]
- Charles Mann, "Why software is so bad", MIT Technology Review, Jul/Aug 2002.
- Lev Nachmanson, Margus Veanes, Wolfram Schulte, Nikolai TIllmann, and Wolfgang Grieskamp, "Optimal strategies for testing nondeterministic systems," ISSTA 04 [PS].
- Tom Ball, "A theory of predicate-complete test coverage and generation," Microsoft Research Tech Report MSR-TR-2004-28, [PDF]