Meeting
Times: Tuesday/Thursday 10:00-11:45
Meeting Place: 1456 Klaus
Advanced Computing Building
Instructor: Spencer
Rugaber; Personal
teaching philosophy
Teaching
Assistant: Yu Liu
| Team development projects | 40% |
| Assignments | 20% |
| Class Participation | 10% |
| Exam | 30% |
|
|
|
|
|
| 5/13 | Introduction Features (PDF) |
Batory, 2005 |
Swiki Feature Analysis |
| 5/15 | Reuse (PDF) |
Arango Classic |
|
| 5/20 | Feature Analysis presentations |
||
| 5/22 | Domain modeling (PDF) Application Generators (PDF) |
Cleaveland Smaragdakis and Batory |
Application Generator |
| 5/27 | Product lines (PDF) | Cohen
(1-32) |
|
| 5/29 | Application Generator Presentations | Project 1 | |
| 6/3 | Project planning discussion Planning (PDF) Estimation (PDF) Teams (PDF) |
||
| 6/5 | Aspect Oriented Programming (PDF) |
AspectJ paper |
|
| 6/10 | Reviews (PDF) |
||
| 6/12 | Testing (PDF) | ||
| 6/17 | Testing IEEE Test Planning Template (doc) Short form (doc) Reliability (PDF) |
Whittaker paper | |
| 6/19 | Mutation testing (PDF) In-class mutation exercise Instructions (txt) Overview (txt) Mutant types (txt) Fortran BubbleSort code (txt) |
||
| 6/24 | Project 1 demos |
||
| 6/26 | OO frameworks (PDF) |
Johnson and Foote Roberts and Johnson |
Project 2 |
| 7/1 | JUnit (PDF) Unit testing (PDF) |
Gamma and Beck | |
| 7/3 | Program proving (PDF1, PDF2) |
Proof assignment |
|
| 7/8 | Software Maintenance (PDF) Reverse Engineering (PDF) |
||
| 7/10 | Project 2 presentations |
||
| 7/15 | Introduction to Metaprogramming (PDF) Variations (PDF) C++ Inheritance (PDF) Templates (PDF) |
Components
and Generative Programming |
Project 3 |
| 7/17 | Template Uses (PDF) Generators (PDF) Metaprogramming (PDF) |
||
| 7/22 | Refactoring (PDF) Chris's refactoring slides (PDF) Video store multiversion code |
video.java Survey article |
|
| 7/24 | Policies (PDF) Pair programming (PDF) |
Alexandrescu Chapter 1 |