Fall 2016. CS 6704: Software Engineering Analytics and Automation

Instructor: Francisco Servant [fservant@vt.edu]
Office hours: After class, or by email appointment
Lectures: Tuesdays 8:00-10:40AM, Knowledge Works II, room 2225

Description

Software engineering is a highly complex endeavor. Software engineers today perform complex tasks that involve the creative creation and comprehension of complex information, such as: code structure, implementation rationale, dynamic software behavior, change implications, and development team dynamics. At the same time, software engineers also spend large amounts of time performing mechanical work — dealing with complex software development tools — to be able to perform their tasks.

The field of software engineering analytics and automation aims to improve the software engineering discipline in two ways: first, by performing analytics on the software development process to achieve an understanding of the problematic software engineering tasks and their efficiency bottlenecks; second, by developing automatic techniques that leverage such understanding to support software developers in performing their tasks more effectively and efficiently.

In this class, we will discuss the state-of-the-art research works in software engineering analytics and automation. The students will also work on research projects to develop novel techniques in this area.

Prerequisites

Graduate or senior standing in the Department of Computer Science and a prior course in software engineering, e.g., CS 4704.

Readings

The majority of the readings in the course will be papers available through the IEEE or ACM Digital Libraries. The instructor will provide all the necessary readings in Canvas.

Grading and Evaluation

Distribution of points:

There are three elements to your grade: a research project, short paper summaries (CTTC), and class attendance and participation. Each assignment will contribute to a different percentage of your grade:

CTTC 30%
Research Project 50%
Class Attendance and Participation 20%
Submission guidelines:

Assignments must be submitted as follows:

  • through Canvas. Use the folder for the corresponding assignment
  • as a single PDF (Adobe Acrobat) document
  • by 8pm Eastern time on the due date
Late submission policy:

Assignments will be turned in electronically through Canvas. Unexcused late assignments will be penalized 25% per 24-hour period.

Grading scale:
A 93% or higher
A- 90% or higher
B+ 87% or higher
B 83% or higher
B- 80% or higher
C+ 77% or higher
C 73% or higher
C- 70% or higher
D+ 67% or higher
D 63% or higher
D- 60% or higher
F 0% or higher

Cut-to-the-chase (CTTC) summaries

The short paper summaries will allow you to demonstrate that you’ve read and thought about the assigned readings. Readings are assigned, as shown in the schedule, each week of the class. You will write a short summary and analysis of each week’s papers. I am not interested in only reading a paraphrase of each paper’s abstract. I am interested in reading your assessment of each paper: what points do you believe to be the important ones? Do you believe those points? Why or why not? What points did the author(s) not address that they should have? Since multiple papers are assigned, you’ll have to learn how to present incisive, cut-to-the-chase (CTTC) analyses in few words.

Each week you will submit a single PDF file with your summary for every paper assigned for that week. Your comments should use at least half a page of a letter-sized document for each assigned paper.

Research project

You will work on a research project related to the topics covered in class. You may work individually or in groups of two people. Groups of two people are expected to deliver a more substantial contribution.

You are expected to design your own research project or select one of the projects proposed by the instructor. To help you design your project, you can look at the Mining challenge of the 2017 International Conference of Mining Software Repositories. You are encouraged to use the dataset proposed for the Mining Challenge if your project is based on analyzing software data. If you define your own project, you should discuss it with me during office hours before writing your proposal report.

You are encouraged to use Bitbucket for your source code and project report documents. Add me (username fservant) as your project member to facilitate my feedback.

All your reports should follow the ACM SIG Proceedings Templates.

Research project deliverables (and project grade percentage):
  • Project proposal report (15%) and presentation (10%)

    • Your project proposal should be at least 2 pages, and it should include:

      • Introduction: describing the problem, why the problem is important, your proposed solution, and how you expect your solution to improve the state of the art.

      • Related work: describing other published research related to the project that you are proposing. Other research can be related because: it motivates the need for your project, it tries to solve the same problem in a different way, it uses your proposed technique for other problems, etc.

    • Your project proposal presentation should include the same information, summarized in a 5-minute lightning talk.

  • Project progress presentation (20%)

    • Your project progress presentation will take 15 minutes, and it should include:

      • Problem description (updated from your project proposal)

      • Solution description (updated and extended from your project proposal)

      • Progress made so far

      • Planning for the remaining weeks

      • Potential roadblocks that you may encounter in the remaining weeks, and how you expect to overcome them

  • Final project report (40%) and presentation (15%)

    • Your final project report should be 10 pages (plus up to 2 separate pages for references), and it should include:

      • Introduction: describing the problem, why the problem is important, your proposed solution, and how you expect your solution to improve the state of the art.

      • Related work: describing other published research related to the project that you are proposing. Other research can be related because: it motivates the need for your project, it tries to solve the same problem in a different way, it uses your proposed technique for other problems, etc.

      • Approach: conceptual description of your solution

      • Implementation: technical description of the solution that you implemented

      • Evaluation: description of the experiments that you performed, and interpretation of your results.

      • Conclusion: Did you solve the problem? To what extent? For which cases?

      • References: Citations of all the research papers relevant to your project

    • Your final project presentation should take 15 minutes and include:

      • Short problem description (updated from your project progress presentation)

      • Short solution description (updated from your project progress presentation)

      • Challenges that you resolved along the way

      • Evaluation description and interpretation of your results

      • What did you learn? What would you have done differently? What other future wor could be performed, inspired by your project?

Schedule (likely to change)

Week Date Topic Meeting Type Papers introduced by Assignment
1 08/23/16 Introduction Lecture
08/25/16 Developer Needs Discussion
2 08/29/16 Submission by 8pm CTTC1
08/30/16 Software Development Analytics. Discussion Canceled Discussion
09/02/16 Submission by 8pm CTTC2
3 09/05/16 Submission by 8pm CTTC3 and Project teams
09/06/16 Software Development Automation Discussion
4 09/12/16 Submission by 8pm CTTC4
09/13/16 Project proposal presentations and Expertise Finding Presentations and Discussion
5 09/19/16 Submission by 8pm CTTC5 and Project proposal report
09/20/16 Project proposal presentations and Summarization Presentations and Discussion Paper 1: Peeratham, Paper 2: Frank Lykes, Paper 3: Khadijah
6 09/26/16 Submission by 8pm CTTC6
09/27/16 Effort Estimation Discussion Paper 1: Manh Tung, Paper 2: Matthew, Paper 3: Andrej
7 10/03/16 Submission by 8pm CTTC7
10/04/16 Collaboration Discussion Paper 1: Aakash, Paper 2: Shivam, Paper 3: Soumik
8 10/10/16 Submission by 8pm CTTC8
10/11/16 Code History Analysis Discussion Paper 1: Peeratham, Paper 2: Frank Lykes, Paper 3: Khadijah
9 10/18/16 Project progress presentations Presentations
10 10/24/16 Submission by 8pm CTTC9
10/25/16 API recommendations Discussion Paper 1: Manh Tung, Paper 2: Matthew, Paper 3: Andrej
11 10/31/16 Submission by 8pm CTTC10
11/01/16 Refactoring Discussion Paper 1: Aakash, Paper 2: Shivam, Paper 3: Soumik
12 11/07/16 Submission by 8pm CTTC11
11/08/16 Defect Prediction Discussion Paper 1: Peeratham, Paper 2: Frank Lykes, Paper 3: Khadijah
13 11/14/16 Submission by 8pm CTTC12
11/15/16 Software Visualization Discussion Paper 1: Manh Tung, Paper 2: Matthew, Paper 3: Andrej
14 11/22/16 Thanksgiving break. No class.
15 11/28/16 Submission by 8pm CTTC13
11/29/16 Software Development Practices Discussion Paper 1: Aakash, Paper 2: Shivam, Paper 3: Soumik
16 12/06/16 Final project presentations Presentations in class Final project presentation
Exams week 12/13/16 Submission by 11:59pm Final project report

Policies

Virginia Tech Honor Code:

The work you turn in must be your own. Consequences of cheating in this class: a letter in your academic file, and the course grade is lowered, most likely to F. Material that is copied from books or Web pages needs to be quoted and the source must be given. If you plagiarize, you run the severe risk of failing the class, in a most disgraceful manner.

Accommodations:

If you need special accommodations, please contact the instructor during the first week of classes.