---
# System prepended metadata

title: 'Fall 2020 CSE709: Software Engineering Seminar'
tags: [cse709]

---

---
title: 'Fall 2020 CSE709: Software Engineering Seminar'
tags: cse709
---

# CSE709: Software Engineering Seminar

## Table of Contents

[TOC]

## Announcement

CSE709 in Fall 2020 will be an **asynchronous online** course, which means,
1. **The course materials (i.e., lectures) will be recorded and uploaded** so that they can be accessed by anytime and anywhere.
3. **There will not be any offline activities** regarding the course.
4. **We will not have midterm/final** exams. 
5. **There will be a paper presentation**. The paper list will be given for students to choose a paper related to Software Engineering (SE).
6. The course is P/F grading.

### Updates
* 10/12: Presentation recordings for 10/12 are uploaded.
* 10/05: Presentation recordings for 10/05 are uploaded.
* 09/28: Presentation recordings for 9/28 are uploaded to UBbox.
* 09/21: Presentation recording for 9/21 is available.
* 09/14: Presentation recording for 9/14 is available (see link under schedule tab).
* 09/07: Presentation paper list is available.
* The Zoom link for the real-time classes is sent over email (first day's class is at 3pm Monday, Aug 31).

## Contacting the Instructor

Prof. Weihang Wang
* Office: Davis 338G
* Email: weihangw@buffalo.edu
* Office Hours: By appointment

When you send an email regarding the class, please have ``[CSE709]`` in your email subject. For example, Subject: ``[CSE709] Questions for ...``

Due to the large volumn of the emails I receive, if you don't add ``[CSE709] ``to the subject, I may not be able to find your email.

## Topics
In this seminar, we will discuss research papers on software engineering, including dynamic program analysis, static program analysis, symbolic execution, and software testing. Topics that will be covered include program tracing, program profiling, slicing, delta debugging, software model checking, symbolic execution, fuzzing, and concolic testing, etc. 

Each student is expected to read one or two papers from a given paper list and present them. The presentation slides need to include the following sections: background/motivation, problem definition (what problem(s) the paper is trying to tackle), design of the technique that explains how the problem is solved, evaluation results, with figures/charts and tables, and the comparison of the two papers. Each presentation should take about one hour and half.
 

## Paper List 
*All papers are also accessible via [UBbox](https://buffalo.box.com/s/e42ykytrlljnjj74awlbx06o4psn31l0).*

**Program Tracing**
[1] Nicholas Nethercote and Julian Seward, Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation, PLDI’07
https://dl.acm.org/citation.cfm?id=1250746
[2] Xiangyu Zhang and Rajiv Gupta, Whole Execution Traces and Their Applications, MICRO'04
https://dl.acm.org/citation.cfm?id=1089012

**Program Profiling**
[3] Thomas Ball and James R. Larus, Efficient Path Profiling, MICRO'96
https://dl.acm.org/citation.cfm?id=243857
[4] Darko Marinov and Robert O'Callahan, Object Equality Profiling, OOPSLA'03
https://dl.acm.org/citation.cfm?id=949333

**Program Slicing**
[5] Mark Weiser, Program Slicing, ICSE’81
https://dl.acm.org/citation.cfm?id=802557
[6] Ben Xin and Xiangyu Zhang, Efficient Online Detection of Dynamic Control Dependence, ISSTA’07
https://dl.acm.org/citation.cfm?id=1273489

**Delta Debugging**
[7] Andreas Zeller, Yesterday, my Program Worked. Today, it Does Not. Why? FSE’99
https://link.springer.com/chapter/10.1007%2F3-540-48166-4_16
[8] Andreas Zeller and Ralf Hildebrandt, Simplifying and Isolating Failure-Inducing Input, IEEE Transactions on Software Engineering, 2002
https://dl.acm.org/citation.cfm?id=506206

**Static Program Analysis**
[9] Al Bessey, Ken Block, Ben Chelf, Andy Chou, Bryan Fulton, Seth Hallem, Charles Henri-Gros, Asya Kamsky, Scott McPeak, and Dawson Engler, A Few Billion Lines of Code Later: Using Static Analysis to Find Bugs in the Real World, CACM'10
https://cacm.acm.org/magazines/2010/2/69354-a-few-billion-lines-of-code-later/fulltext

**Software Model Checking**
[10] Edmund Clarke and Daniel Kroening and Karen Yorav, Behavioral Consistency of C and Verilog Programs Using Bounded Model Checking, DAC'03
http://www.kroening.com/papers/dac2003.pdf
[11] Willem Visser, Klaus Havelund, Guillaume Brat, and Seung Joon Park, Model Checking Programs, ASE'02
https://ti.arc.nasa.gov/m/tech/rse/publications/papers/ASE00/jpf2-ase.pdf
[12] Thomas Ball, Rupak Majumdar, Todd Millstein, and Sriram K. Rajamani, Automatic Predicate Abstraction of C Programs, PLDI'01
http://web.cs.ucla.edu/~todd/research/pldi01.pdf

**Symbolic Execution**
[13] Cristian Cadar, Daniel Dunbar, and Dawson Engler, KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs, OSDI'08
http://www.doc.ic.ac.uk/~cristic/papers/klee-osdi-08.pdf
[14] Cristian Cadar, Vijay Ganesh, Peter M. Pawlowski, David L. Dill, and Dawson R. Engler: EXE: Automatically Generating Inputs of Death. CCS’06.
https://www.doc.ic.ac.uk/~cristic/papers/exe-ccs-06.pdf

**Fuzzing**
[15] Christian Holler, Kim Herzig, and Andreas Zeller, Fuzzing with Code Fragments. USENIX Security 2012. 
https://www.usenix.org/system/files/conference/usenixsecurity12/sec12-final73.pdf
[16] Rebert, Alexandre; Cha, Sang Kil; Avgerinos, Thanassis; Foote, Jonathan; Warren, David; Grieco, Gustavo; Brumley, David (2014), Optimizing Seed Selection for Fuzzing, USENIX Security’14
https://www.usenix.org/system/files/conference/usenixsecurity14/sec14-paper-rebert.pdf

**Test Generation**
[17] C Pacheco, SK Lahiri, MD Ernst, and T Ball, Feedback-Directed Random Test Generation, ICSE'07
https://dl.acm.org/citation.cfm?id=1248841
[18] SaswatbAnand, Edmund K.bBurke, Tsong YuehbChen, JohnbClark, Myra B. Cohen, Wolfgang Grieskamp, Mark Harman, Mary Jean Harrold, Phil McMinn, An orchestrated survey of methodologies for automated software test case generation. Journal of Systems and Software, August 2013.
https://www.sciencedirect.com/science/article/pii/S0164121213000563?casa_token=_H2-sGRiO5kAAAAA:gbA7COmOlf7bJu2SI2EpBKwg9AwpheC99RmJn8PbIuk7gLys6OesLrwJrKlZdzLd-5btA41d

**Concolic Testing**
[19] Koushik Sen, Darko Marinov, and Gul Agha, CUTE: a concolic unit testing engine for C, FSE'05
https://dl.acm.org/citation.cfm?id=1081750

**Regression Testing**
[20] Atif M. Memon and Mary Lou Soffa, Regression testing of GUIs, FSE’11
https://dl.acm.org/citation.cfm?id=940088
[21] G. Rothermel ; R.H. Untch ; Chengyun Chu ; M.J. Harrold, Prioritizing test cases for regression testing, TSE 2001
https://ieeexplore.ieee.org/abstract/document/962562

**Mutation Testing**
[22] Yue Jia and Mark Harman, An Analysis and Survey of the Development of Mutation Testing, IEEE Transactions on Software Engineering, 2011
https://ieeexplore.ieee.org/abstract/document/5487526

**Derived Test Oracles**
[23] Earl T. Barr, Mark Harman, Phil McMinn, Muzammil Shahbaz, Shin Yoo, The Oracle Problem in Software Testing: A Survey, TSE 2014.
https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6963470&tag=1

**Fault Localization**
[24] James A Jones, Mary Jean Harrold, John Stasko, Visualization of test information to assist fault localization, ICSE’02
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.24.1461&rep=rep1&type=pdf



## Grading Policy 

Pass/Fail grade will be given. In order to get a Pass grade, 80% needs to be scored for paper presentation and class participation.

| Course Project | Percentage of Final Grade | Deadline |
| -------- | -------- | -------- | 
| Paper presentation     | 50%     | Friday 5pm (the Friday before scheduled presentation)
| Two-page paper review     | 50%     | November 29
| **Total**     | **100%**     | 


**The review template** is available on UBbox. You can access the template at:
https://buffalo.box.com/s/2r5fdvv92eg6sveeb9qo50t2avrcoo33

### Late policy:
- Presentation recording: 25% entire grade, can compensate with a second presentation.
- Paper review: 25% entire grade, can compensate with a second paper review.


## Academic Integrity (AI)

**Please do not share your work or copy others' work.** If you have technical difficulties, consult with the course instructor early enough. 

Failing to adhere to AI policies may result in **F or other severe consequences**.


## Accomodations

If you need any kind of special accommodations, including but not limited to disability, learning needs, illness, or personal circumstances, please contact us as soon as you are aware of these needs. We aim to be as accommodating and fair as possible.





---




