| Date |
Topic |
Slides |
Reading/Assignment |
| Aug. 05 | Course
Overview |
lecture1.pdf Prof. Aldrich's slides |
|
| Aug. 07 | Demo of
Eclipse JDT. Introduction to Java. |
Frameworks = components + patterns | |
| Aug. 12 | Introduction
to plugin projects |
Getting your workspace setup | |
| Aug. 14 | Command
pattern; class UpdateTestSuite.
|
Carry out steps in Chap. 3 of "Contributing to Eclipse". | |
| Aug. 19 | Composite pattern; class TestElement. Launching; class
JUnitLaunchConfigurationDelegate.
|
Read chapters 1 and 2 of GoF book, and chapters 1-8 of Eclipse book. Read the JUnit Cookbook and JUnit FAQ. | |
| Aug. 21 | Class canceled | ||
| Aug. 26 | Class timing: 2:30pm-4:30pm. Listening to launches, and building the model of test-suites and test-cases: Classes JUnitModel, JUnitModel.JUnitLaunchListener, TestRunSession, RemoteTestRunnerClient. | Assignment on design patterns. | |
| Aug. 28 | Class timing: 2:00pm-3:00pm. MVC. Introduction to the viewer TestRunnerViewPart. Method TestRunnerViewPart.createPartControl. | ||
| Sep. 2 | MVC. Introduction to the viewer
TestRunnerViewPart. Method TestRunnerViewPart.createPartControl.
Features provided by JFace: Converting model to view, notifying
clients of selection changes in the view in terms of the underlying
model elements. |
||
| Sep. 4 | Populating the popup menu in the
TestViewer. Various actions supported by TestViewer and
TestViewerPartControl. |
||
| Sep. 7 | Demonstration of iterators
assignment. |
||
| Sep. 9 | Discuss Ferret paper. |
||
| Sep. 11 | Discuss proposed UI to implement
Ferret. |
||
| Sep. 16 | Extensions
and extension points contributed by JUnit |
|
|
| Sep. 22 | Special
class |
Present detailed UI
design, and high-level architecture of Ferret implementation. |
|
| Sep. 23 | Extension
points contributed by JUnit. Listening to resource changes. |
||
| Sep. 25 | Discussion
of plugin design for course project. |
||
| Sep. 30, Oct. 7, 9 | No
classes |
||
| Oct. 14 | Checking
Framework Interactions with Relationships. C. Jaspan and
J. Aldrich. In ECOOP, July 2009. (You may skip the details of Section 4 in
case you are short of time.) |
Presentation by
Raghavan. |
|
| Oct. 16 | Components,
frameworks, patterns. Ralph Johnson.
In Proc. Symp. on Softw. Reusability, 1997. |
Presentation by Ravi. |
|
| Oct. 21 | Design Fragments
Make Using Frameworks Easier. G. Fairbanks, et al.
In OOPSLA, 2006. |
Presentation by Sudha. |
|
| Oct. 23 | Behavioral
subtyping using invariants and constraints. B. H. Liskov and J.
M. Wing, 1999 (a previous version of this paper appeared in TOPLAS,
November 1994). |
Presentation by Arnab. |
|
| Oct. 28 | Role model based
framework design and integration. D. Riehle and T. Gross.
In OOPSLA, 1998. |
Presentation by Raghavan. |
|
| Nov. 4 | Contract soundness for
object-oriented languages. R. B. Findler and M. Felleisen. In
OOPSLA, 2001. |
Presentation by Ravi. |
|
| Nov. 11 |
Separation logic, abstraction and inheritance. M. J. Parkinson and
G. M. Bierman.
In
POPL, 2008. |
Presentation by Arnab. |
|
| Nov. 13 | Practical
API protocol checking with access permissions. K. Bierhoff, N. E. Beckman, and J. Aldrich. In
ECOOP, 2009. |
Presentation by Sudha. |
|
| Nov. 18 | Final demo of class
project. |
||
| Nov. 20 | jStar: towards
practical verification for java. D. Distefano and M. J.
Parkinson. In OOPSLA, 2008. |
Presentation by Raghavan. |
Computer science topics pertinent to verification of object-oriented and framework-based applications: Type states; behavioral subtyping; modelling languages; property verification - logical reasoning on pre- and post-conditions, model checking, type inference, and abstract interpretation.