This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
courses:cisc879 [2007/05/11 12:22] giri |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== 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}} | ||
- | |||
- | |||
- | {{courses:presentation-refactoring-gsridhara.ppt|}}==== 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}} |