====== CISC-879 Software Tools ====== [[http://www.google.com/calendar/embed?src=fg61u88q1d8iamvtsflhe6eqf4%40group.calendar.google.com|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:** [[http://www.eclipse.org|Eclipse and its plugins]] {{courses:cisc879:eclipse-platform-whitepaper.pdf|Eclipse Platform White Paper}} \\ NO PDP Required Today === Speakers: === Share Eclipse demo and overview: Dave \\ Share Eclipse demo and overview: Emily \\ === Class Materials === {{section>courses:cisc879:ide&nofooter}} ===== 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:** [[http://cvsbook.red-bean.com/cvsbook.html|cvs online book]]; [[http://svnbook.red-bean.com/ |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 \\ [[http://subversion.tigris.org/|svn install]] \\ NO PDP Required Today === Speakers: === cvs demo: Colin \\ svn demo: Emily === Class Materials === {{section>courses:cisc879:vc_install&nofooter}} ==== 2/20 - Day 2: Behind the Scenes: Challenges and Strategies ==== === Preclass Prep: === **Readings:** \\ [[http://www.delorie.com/gnu/docs/cvs/cvs-paper.ps| CVS paper]]\\ [[http://portal.acm.org/ft_gateway.cfm?id=513042&type=html&coll=&dl=ACM&CFID=15151515&CFTOKEN=6184618| Subversion paper]] \\ Another interesting paper: \\ {{courses:cisc879:survey_software_merging.pdf|Survey of Merging Software}} === Speakers: === cvs paper: John \\ subversion paper: Brice === Class Materials === {{section>courses:cisc879:vc_strategies&nofooter}} ==== 2/22 - Day 3: Research and Configuration Management Systems ==== === Preclass Prep: === **Readings:** \\ {{courses:cisc879:impactconfigmanage05.pdf|Impact of Software Engineering Research on the Practice of Configuration Management, TOSEM Oct 05}} === Speakers: === paper: Lori \\ === Class Materials === {{section>courses:cisc879:vc_research&nofooter}} {{courses:cisc879:879impactpaper.ppt|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:** [[http://en.wikipedia.org/wiki/Javadoc| JavaDoc description]]; [[http://java.sun.com/j2se/javadoc/|JavaDoc tool]]; [[http://www.stack.nl/~dimitri/doxygen/ | Doxygen]] \\ NO PDP Required Today === Speakers: === JavaDoc Demo: Wes \\ Doxygen Demo: John === Class Materials === {{section>courses:cisc879:javadoc_install&nofooter}} ==== 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]]; \\ [[http://www.stack.nl/~dimitri/doxygen/arch.html| Doxygen Internals Manual]] \\ NO PDP Required Today === Speakers: === Share papers: Wes \\ Share papers: John === Class Materials === {{section>courses:cisc879:javadoc_research&nofooter}} ===== Software Testing and Verification ===== ==== 3/6 - Day 1: Overview and Challenges ==== === Preclass Prep: === **Readings:** Handout from Binder book; \\ {{courses:cisc879:unittest-zhu.pdf|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 === {{section>courses:cisc879:testing&nofooter}} {{courses:cisc879:general_testing_background.ppt| General Background on Software Testing}} ==== 3/8 - Day 2: Automatic Test Case Generation for Random Testing ==== === Preclass Prep: === **Readings:** {{courses:cisc879:p213-godefroid.pdf|DART: Directed Automated Random Testing, Godefroid, P., Klarlund, N., and Sen, K., PLDI 2005]];}} === Speakers: === Share paper: Nabeel \\ Share paper: Lori === Class Materials === {{section>courses:cisc879:dart&nofooter}} {{courses:cisc879:evaluation_of_dart.ppt| Slides for Evaluation of DART }} ==== 3/13 - Day 3: Automatic Test Case Generation ==== === Preclass Prep: === **Readings:** {{courses:cisc879:clarke76.pdf|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 === {{section>courses:cisc879:test_case_gen&nofooter}} ==== 3/15 - Day 4: Testing Tool Demos ==== === Preclass Prep: === **Readings:** * [[http://www.junit.org/|JUnit]] * [[http://members.pingnet.ch/gamma/junit.htm | A Tutorial on JUnit]] * [[http://junit.sourceforge.net/doc/cookstour/cookstour.htm| Tour Through How JUnit Works]] * [[http://junit.sourceforge.net/doc/testinfected/testing.htm| How to Use JUnit]] * [[http://emma.sourceforge.net/|EMMA Java Code Coverage Tool]] * [[http://www.cenqua.com/clover|Clover Coverage Tool]] NO PDP Required Today === Speakers: === * JUnit Demo: Nabeel * Clover Demo: Sara === Class Materials === {{section>courses:cisc879:coverage&nofooter}} * {{courses:cisc879:clover.pdf|Clover Slides (with animations, in PDF)}} ==== 3/20 - Day 5: Software Verification ==== === Preclass Prep: === **Readings:** [[http://bogor.projects.cis.ksu.edu/|Bogor Website]] \\ {{courses:cisc879:bogortechrepo.pdf|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 === {{section>courses:cisc879:verification&nofooter}} ==== 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: ** {{courses:cisc879:trackingproblems.pdf|Zeller's Slides}} === Speakers: === Speaker: Lori === Class Materials === {{section>courses:cisc879:issue_tracking&nofooter}} ==== 4/3 - Day 2: Demo of Bugzilla, gforge, and TRAC - goals, how to use, uses ==== === Preclass Prep: === **Readings: ** [[http://www.bugzilla.org/| bugzilla]] \\ [[http://gforge.org/| gforge ]] [[http://trac.edgewall.org/|Combining Bugzilla with Version Control - TRAC]];\\ [[http://springide.org/project|Example TRAC site]] === Speakers: === Bugzilla Demo: Aaron \\ gforge Demo: Geoff \\ TRAC Demo: Brice === Class Materials === {{section>courses:cisc879:issue_tracking_tools&nofooter}} \\ No PDP Form Due for this class. ===== Debugging ===== ==== 4/5 - Day 1: Delta Debugging - Demo and Theory ==== === Preclass Prep: === **Readings: ** [[http://www.st.cs.uni-sb.de/eclipse/| Eclipse Plugin]] \\ {{courses:cisc879:zellertse.pdf|Simplifying and Isolating Failure-Inducing Input, TSE 2002}} === Speakers: === Share Demo and Paper: Xia\\ Share Demo and Paper: Lori === Class Materials === {{section>courses:cisc879:dd1&nofooter}} {{courses:cisc879:zeller-tse02.ppt|Slides on Zeller's TSE Paper (Lori)}} ==== 4/10 - Day 2: Lightweight Delta Debugging and Beyond ==== === Preclass Prep: === **Readings: ** {{courses:cisc879:zellerecoop2004.pdf|Lightweight Defect Localization for Java, Zeller, ECOOP 2005}}\\ === Speakers: === Share first paper: Keyur \\ Share first paper: Krishna === Class Materials === {{section>courses:cisc879:dd2&nofooter}} ==== 4/12 - Day 3: Daikon - Debugging using Program Invariants ==== === Preclass Prep: === **Readings: ** {{courses:cisc879:ernstdaikon.pdf|Dynamically Discovering Likely Program Invariants to Support Program Evolution, Ernst etal, TSE 2001}} === Speakers: === Share paper: Wes \\ Share paper: Geoff === Class Materials === {{section>courses:cisc879:daikon&nofooter}} ==== 4/17 - Day 4: Liblit's Remote Sampling ==== === Preclass Prep: === **Readings: ** {{courses:cisc879:p141-liblit.pdf|Bug Isolation Via Remote Program Sampling, Liblit etal, PLDI 03}}\\ {{courses:cisc879:p15-liblit.pdf|Scalable Statistical Bug Isolation, Liblit, PLDI 05 - Cancelled}} === Speakers: === Share first paper: Arpita \\ Share first paper: Xia === Class Materials === {{section>courses:cisc879:liblit&nofooter}} ===== Resource Leakage Tools ===== ==== 4/19 - Day 1: Purify and Splint's Tool Demos and Descriptions ==== === Preclass Prep: === **Readings: ** [[http://www-306.ibm.com/software/awdtools/purify/ |Purify Website]] \\ [[http://www.mozilla.org/projects/xpcom/MemoryTools.html| Mozilla's Memory Tools]] \\ [[http://lclint.cs.virginia.edu/| Lint and Splint]] === Speakers: === Purify Demo: Keyur \\ Splint Tool Demo: Krishna === Class Materials === {{section>courses:cisc879:resource_leakage&nofooter}} No PDP Forms due today. ==== 4/24 - Day 2: Some Theory Behind Memory Leak Detection ==== === Preclass Prep: === **Readings: ** {{courses:cisc879:p31-jump.pdf|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 === {{section>courses:cisc879:memory_leakage&nofooter}} ===== Program Understanding ===== ==== 4/26 - Day 1: Krugle ==== === Preclass Prep: === **Readings:** \\ [[http://www.krugle.com | Krugle]] \\ [[http://corp.krugle.com/demos/Overview6.html | (demo)]] \\ {{courses:cisc879:poshyvanykarticle.pdf|Source Code Exploration with Google, Poshyvanyk et al, ICSM'06}} === Speakers: === Krugle Demo and Paper: Roli \\ No PDP Forms Due Today === Class Materials === {{section>courses:cisc879:krugle&nofooter}} ==== 5/1 - Day 2: Documentation and Code Relations ==== === Preclass Prep: === **Readings:**\\ {{courses:cisc879:antonioltse.pdf|Recovering Traceability Links between Code and Documentation, Antoniol et al, TSE 2002}} === Speakers: === Share paper: Geoff \\ Share paper: Brice === Class Materials === {{section>courses:cisc879:antoniol&nofooter}} ===== Program Analysis Tools ===== ==== 5/3 - Day 1: Static Slicing ==== === Preclass Prep: === **Readings: ** \\ [[http://www.grammatech.com/products/codesurfer/|Codesurfer for program slicing on C]] \\ [[http://www.research.ibm.com/people/t/tip/papers/jpl1995.pdf| Survey of Slicing ]] === Speakers: === Share Codesurfer Demo and paper: Aaron \\ Share Codesurfer Demo and paper: Keyur === Class Materials === {{section>courses:cisc879:static_slicing&nofooter}} ==== 5/8 - Day 2: Dynamic Slicing ==== === Preclass Prep: === **Readings: ** \\ [[http://jslice.sourceforge.net/| JSlice -- dynamic slicing for Java]] \\ {{courses:cisc879:icse03.pdf|Precise Dynamic Slicing, Zhang etal, ICSE 2003}} === Speakers: === Share JSlice Demo and Zhang Paper: Krishna \\ Share JSlice Demo and Zhang Paper: === Class Materials === {{section>courses:cisc879:dynamic_slicing&nofooter}} ===== Software Restructuring ===== ==== 5/10 - Day 1: Overview ==== === Preclass Prep: === **Readings:** \\ [[http://books.google.com/books?hl=en&lr=&id=1MsETFPD3I0C&oi=fnd&pg=RA2-PA1&sig=Q3er50z8aeBKrE8lxAY7dcYI7FE&dq=refactoring | The Refactoring textbook with partial preview]] \\ [[http://homepages.cwi.nl/~tourwe/articles/tse2004.pdf| A Survey of Software Refactoring]] \\ PDP Form only for the Survey paper. === Speakers: === Share Papers: Giri \\ Share Papers: Kishen === Class Materials === {{section>courses:cisc879:refactoring&nofooter}} {{courses:879-kishen-refactoring.ppt|A Survey of Software Refactoring - Kishen}} ==== 5/15 - Day 2: Tools for Refactoring ==== === Preclass Prep: === **Readings:** \\ [[http://www.eclipse.org | Eclipse's Java refactoring facilities]] \\ [[http://www.jetbrains.com/idea/ | IntelliJIdea's refactorings]] === Speakers: === Eclipse Refactoring Demo: Giri \\ IntelliJIdea Refactoring Demo: Kishen \\ No PDP Forms Due this Day === Class Materials === {{section>courses:cisc879:refactoring_tools&nofooter}} ===== CANCELLED - NOT ENOUGH TIME: ===== ==== Code Instrumentation and Profiling - Valgrind and PIN ==== === Preclass Prep: === **Readings: ** \\ [[http://valgrind.org| Valgrind website]] \\ [[http://valgrind.org/docs/iiswc2006.pdf| Building Workload Characterization Tools with Valgrind]] \\ [[http://rogue.colorado.edu/Pin/| PIN Website]] \\ {{courses:cisc879:pin-pldi05.pdf|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 === {{section>courses:cisc879:profiling&nofooter}}