CS6330/CS4342
Software Generation, Testing, and Maintenance
Summer 2008

Meeting Times: Tuesday/Thursday 10:00-11:45
Meeting Place: 1456 Klaus Advanced Computing Building

Instructor: Spencer Rugaber; Personal teaching philosophy

Office: Klaus Advanced Computing Building 2336
E-mail:
Phone: 404 894-8450
Office Hours: TBS

Teaching Assistant: Yu Liu

Office: CoC Common Area(Old building)
E-mail: ericliu.gatech@gmail.com
Office Hours: Monday, Wednesday 3:50-5:20

Newsgroup: git.cc.class.cs6330
Swiki: http://swiki.cc.gatech.edu:8080/cs6330-su08

Course Objectives

Prerequisites

Course Evaluation


Team development projects 40%
Assignments 20%
Class Participation 10%
Exam 30%

Syllabus

Note that Readings should be completed before class on the day listed. Assignments are due before class on the day listed on the individual Assignments pages.


Date
Subject
Readings
Assignments
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  

Readings

Resources

Books

Web Sites

Background Reading

Testing

Refactoring