This is an old revision of the document!


Table of Contents

CISC-879 Software Tools

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:

Speakers:

paper: Lori

Class Materials

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:

Speakers:

Share papers: Wes
Share papers: John

Class Materials

Software Testing and Verification

3/6 - Day 1: Overview and Challenges

Preclass Prep:

Speakers:

Share Zhu paper: Colin
Share Zhu paper: Arpita

Class Materials

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

Preclass Prep:

Speakers:

Share paper: Nabeel
Share paper: Lori

Class Materials

3/13 - Day 3: Automatic Test Case Generation

Preclass Prep:

Speakers:

Share paper: Nabeel
Share paper: Xia

Class Materials

3/15 - Day 4: Testing Tool Demos

Preclass Prep:

Speakers:

  • JUnit Demo: Nabeel
  • Clover Demo: Sara

Class Materials

3/20 - Day 5: Software Verification

Preclass Prep:

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:

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:

Speakers:

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

Class Materials

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

Preclass Prep:

Speakers:

Share first paper: Keyur
Share first paper: Krishna

Class Materials

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

Preclass Prep:

Speakers:

Share paper: Wes
Share paper: Geoff

Class Materials

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

Preclass Prep:

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:

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:

Speakers:

Share paper: Aaron
Share paper: Colin

Class Materials

Program Understanding

4/26 - Day 1: Krugle

Preclass Prep:

Speakers:

Krugle Demo and Paper: Roli

No PDP Forms Due Today

Class Materials

5/1 - Day 2: Documentation and Code Relations

Preclass Prep:

Speakers:

Share paper: Geoff
Share paper: Brice

Class Materials

Program Analysis Tools

5/3 - Day 1: Static Slicing

Preclass Prep:

Speakers:

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

Class Materials

5/8 - Day 2: Dynamic Slicing

Preclass Prep:

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:

Speakers:

Share Papers: Giri
Share Papers: Kishen

Class Materials

5/15 - Day 2: Tools for Refactoring

Preclass Prep:

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:

Speakers:

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

Class Materials