Table of Contents

CISC-879 Software Tools

Course Calendar

Getting Started

2/6 - Day 1: Introductions and Overview

2/8 - Day 2: How-To's: Read Papers, Do Demos, Give Paper Presentations, Write Reviews

Integrated Development Environments

2/13 - Day 1: Eclipse

Preclass Prep:

Readings: Eclipse and its plugins Eclipse Platform White Paper
NO PDP Required Today

Speakers:

Share Eclipse demo and overview: Dave
Share Eclipse demo and overview: Emily

Class Materials

  • Example

Version Control/Software Configuration Management

2/15 - Day 1: Demos of cvs and svn: goals, how to install and use, different uses

Preclass prep:

Readings: cvs online book; svn online book
Do this week also: install cvs or svn for your collaborative research project/paper files
Notes: cvs is already installed on stimpy, just need to follow steps to set up a server
svn install
NO PDP Required Today

Speakers:

cvs demo: Colin
svn demo: Emily

Class Materials

Slides
Major SVN Differences
CVS SVN
revision numbers per file per filesystem tree
conflict resolution user responsible for remembering can't commit until conflicts resolved
authentication login to do anything (read/write), even for anonymous operations login as operations require
Basic SVN Commands

Create a repository

svnadmin create [repository]

For CVS (assumes $CVSROOT defined and exists):

cvs init

Import files into repository

svn import [local path] [URL] -m ""

Note that subversion doesn't automatically create a new directory in your repository for you, you need to tell it in the URL exactly what directory you want the new files to be imported to. Also, if you cd into the folder you want to add as a new project, you can leave out the [local path].

Example

svn import file:///home/gibson/repository/trivia -m "Initial import"

Compare with CVS:

cvs [-d cvs repository:/usa/gibson/cvs/] import -m 'Initial' [module:trivia] [vendor tag:CISGSA] [tag:start]

URL schemas:

  • file (local)
  • svn (svnserve servers)
  • svn+ssh (svnserve tunneled through ssh)

Checking out a project

svn co URL [local dir]

where the locat directory is optional: default is the URL directory.

Committing changes

svn ci -m "Message"

Adding, removing
Almost identical to cvs.

Get revision history

svn log [URL]

Checkout previous version
Append -r [revision number] to the co command. To figure out what revision number you'd like to check out, just look at the log.

Diffing with a previous version
With current working copy

svn diff -r N

Compare revisions N-M

svn diff -r N:M

2/20 - Day 2: Behind the Scenes: Challenges and Strategies

Preclass Prep:

Readings:
CVS paper
Subversion paper
Another interesting paper:
Survey of Merging Software

Speakers:

cvs paper: John
subversion paper: Brice

Class Materials

2/22 - Day 3: Research and Configuration Management Systems

Preclass Prep:

Readings:
Impact of Software Engineering Research on the Practice of Configuration Management, TOSEM Oct 05

Speakers:

paper: Lori

Class Materials

Lori's slides from presentation on Impact paper above

Documentation Generation

2/27 - Day 1: Demos of JavaDocs and Doxygen -- goals, how to install and use, different uses

Preclass prep:

Readings: JavaDoc description; JavaDoc tool; Doxygen
NO PDP Required Today

Speakers:

JavaDoc Demo: Wes
Doxygen Demo: John

Class Materials

3/1 - Day 2: Behind the Scenes: Challenges and Strategies

Preclass Prep:

Readings: http://java.sun.com/j2se/1.5.0/docs/guide/javadoc/index.html;
Doxygen Internals Manual
NO PDP Required Today

Speakers:

Share papers: Wes
Share papers: John

Class Materials

Software Testing and Verification

3/6 - Day 1: Overview and Challenges

Preclass Prep:

Readings: Handout from Binder book;
Software Unit Test Coverage and Adequacy, Hong Zhu, Patrick A. V. Hall, John H. R. May, ACM Computing Surveys, Dec 1997, Vol 29, No. 4

Another useful quick overview of coverage for backup:
http://searchsoftwarequality.techtarget.com/originalContent/0,289142,sid92_gci1244258,00.html

Speakers:

Share Zhu paper: Colin
Share Zhu paper: Arpita

Class Materials

General Background on Software Testing

3/8 - Day 2: Automatic Test Case Generation for Random Testing

Preclass Prep:

Readings:

DART: Directed Automated Random Testing, Godefroid, P., Klarlund, N., and Sen, K., PLDI 2005]];

Speakers:

Share paper: Nabeel
Share paper: Lori

Class Materials

Slides for Evaluation of DART

3/13 - Day 3: Automatic Test Case Generation

Preclass Prep:

Readings: A System to Generate Test Data and Symbolically Execute Programs", L. A. Clarke, TSE, Sept 1976;

Speakers:

Share paper: Nabeel
Share paper: Xia

Class Materials

3/15 - Day 4: Testing Tool Demos

Preclass Prep:

Readings:

NO PDP Required Today

Speakers:

Class Materials

3/20 - Day 5: Software Verification

Preclass Prep:

Readings: Bogor Website
Bogor: A Flexible Framework for Creating Software Model Checkers, June 2006. Robby, Matthew B. Dwyer, John Hatcliff. In the Proceedings of Testing: Academic & Industrial Conference - Practice And Research Techniques

Speakers:

Bogor Demo: Arpita
Bogor paper: Roli

Class Materials

Bogor Demobogor-roli-1.ppt Bogor_Roli_Paper_Presentation

3/22 - Quest

Preclass Prep:

See the Course website for the Quest study guide. The quest should take 30 minutes.

3/27 - 3/29 Spring Break

Issue Tracking

4/3 - Day 1: Overview of Tracking Problems and Challenges

Preclass Prep:

Readings: Zeller's Slides

Speakers:

Speaker: Lori

Class Materials

4/3 - Day 2: Demo of Bugzilla, gforge, and TRAC - goals, how to use, uses

Preclass Prep:

Readings: bugzilla
gforge Combining Bugzilla with Version Control - TRAC;
Example TRAC site

Speakers:

Bugzilla Demo: Aaron
gforge Demo: Geoff
TRAC Demo: Brice

Class Materials


No PDP Form Due for this class.

Debugging

4/5 - Day 1: Delta Debugging - Demo and Theory

Preclass Prep:

Readings: Eclipse Plugin
Simplifying and Isolating Failure-Inducing Input, TSE 2002

Speakers:

Share Demo and Paper: Xia
Share Demo and Paper: Lori

Class Materials

Slides on Zeller's TSE Paper (Lori)

4/10 - Day 2: Lightweight Delta Debugging and Beyond

Preclass Prep:

Readings:

Lightweight Defect Localization for Java, Zeller, ECOOP 2005

Speakers:

Share first paper: Keyur
Share first paper: Krishna

Class Materials

4/12 - Day 3: Daikon - Debugging using Program Invariants

Preclass Prep:

Readings: Dynamically Discovering Likely Program Invariants to Support Program Evolution, Ernst etal, TSE 2001

Speakers:

Share paper: Wes
Share paper: Geoff

Class Materials

4/17 - Day 4: Liblit's Remote Sampling

Preclass Prep:

Readings: Bug Isolation Via Remote Program Sampling, Liblit etal, PLDI 03
Scalable Statistical Bug Isolation, Liblit, PLDI 05 - Cancelled

Speakers:

Share first paper: Arpita
Share first paper: Xia

Class Materials

Resource Leakage Tools

4/19 - Day 1: Purify and Splint's Tool Demos and Descriptions

Preclass Prep:

Readings: Purify Website
Mozilla's Memory Tools
Lint and Splint

Speakers:

Purify Demo: Keyur
Splint Tool Demo: Krishna

Class Materials

No PDP Forms due today.

4/24 - Day 2: Some Theory Behind Memory Leak Detection

Preclass Prep:

Readings: Cork: Dynamic Memory Leak Detection, for Garbage-Collected Languages, Maria Jump and Kathryn McKinley, POPL 2007

Speakers:

Share paper: Aaron
Share paper: Colin

Class Materials

Program Understanding

4/26 - Day 1: Krugle

Preclass Prep:

Readings:
Krugle
(demo)
Source Code Exploration with Google, Poshyvanyk et al, ICSM'06

Speakers:

Krugle Demo and Paper: Roli

No PDP Forms Due Today

Class Materials

5/1 - Day 2: Documentation and Code Relations

Preclass Prep:

Readings:
Recovering Traceability Links between Code and Documentation, Antoniol et al, TSE 2002

Speakers:

Share paper: Geoff
Share paper: Brice

Class Materials

Program Analysis Tools

5/3 - Day 1: Static Slicing

Preclass Prep:

Readings:
Codesurfer for program slicing on C
Survey of Slicing

Speakers:

Share Codesurfer Demo and paper: Aaron
Share Codesurfer Demo and paper: Keyur

Class Materials

5/8 - Day 2: Dynamic Slicing

Preclass Prep:

Readings:

JSlice -- dynamic slicing for Java
Precise Dynamic Slicing, Zhang etal, ICSE 2003

Speakers:

Share JSlice Demo and Zhang Paper: Krishna
Share JSlice Demo and Zhang Paper:

Class Materials

Software Restructuring

5/10 - Day 1: Overview

Preclass Prep:

Readings:
The Refactoring textbook with partial preview
A Survey of Software Refactoring

PDP Form only for the Survey paper.

Speakers:

Share Papers: Giri
Share Papers: Kishen

Class Materials

A Survey of Software Refactoring - Kishen

5/15 - Day 2: Tools for Refactoring

Preclass Prep:

Readings:
Eclipse's Java refactoring facilities
IntelliJIdea's refactorings

Speakers:

Eclipse Refactoring Demo: Giri
IntelliJIdea Refactoring Demo: Kishen

No PDP Forms Due this Day

Class Materials

CANCELLED - NOT ENOUGH TIME:

Code Instrumentation and Profiling - Valgrind and PIN

Preclass Prep:

Readings:
Valgrind website
Building Workload Characterization Tools with Valgrind
PIN Website
Pin: Building Customized Program Analysis Tools with Dynamic Instrumentation, Luk etal, PLDI 2005

Speakers:

Valgrind Demo: ?
Share PIN Demo and Paper: ?
Share PIN Demo and Paper: ?

Class Materials